一、SQL
1.SQL-Structured Query Language 结构化查询语言,数据库的查询和程序设计语言,由ISO标准化组织发布。
2.SQL是面向集合的操作,只描述需求,不考虑过程,如何完成由DBMS负责解决。
3.SQL包括DDL语言和DML语言
①create table 、alter table、drop table和truncate table等属于DDL语言。
②insert、update、delete和select等属于DML语言
二、最常用的运算符和函数
1.算术运算符:+,-,*,/;
2.赋值运算符: =;
3.字符串连接符: ||;
4.模运算(求余运算)函数:mod(被除数,除数)。
5.逻辑运算符
运算符 |
含义 |
AND |
连接两个布尔表达式并两者都为TRUE时返回TRUE |
OR |
连接两个布尔表达式并且其中之一为TRUE时返回TRUE |
NOT |
对任何布尔表达式取反 |
IN |
操作数等于表达式列表之一时返回TRUE |
BETWEEN |
操作数在某个范围之内时返回TRUE |
LIKE |
操作数与字符串模式相匹配时返回TRUE |
EXISTS |
当查询结果不为空时返回TRUE |
三、SQL通配符
字符串通配符
通配符 |
含义 |
% |
指定位置有零个或多个字符 |
_ |
指定位置有1个字符 |
示例:
①搜索所有以‘tom’开始的名字,可以指定搜索条件 LIKE ‘tom%’;
②搜索书名中第3个字符为‘k’的记录,可以指定搜索条件 LIKE ‘__k%’;
③搜索地名中包括‘西’的记录,可以指定搜索条件为 LIKE ‘%西%’。
四、select语句
1.select语句是从关系型数据库中提取记录的 SQL 语句,SELECT 语句并不更新表中的任何数据。
2.select语句可以是简单的“select * from 表名”,从某个表或视图中查询全部记录的全部字段,也可以附加大量的查询子句。
例如:select [distinct] <结果字段列表> from<表/视图名>
[where <查询条件>]
[group by<分组字段>]
[having<分组筛选条件>]
[order by <排序字段>[desc|asc]]
[for update]
3.在 select语句的结果字段列表、查询条件以及分组筛选条件中可以使用字段的直接值进行运算,也可以使用列值的计算结果。
五、insert语句
1.insert语句向表中添加一个新行,语法格式如下:
insert into table_or_view [(column_list)] values(value_list)
2.insert 语句向表中批量添加多个新行,语法格式如下:
insert into table_or_view [(column_list)] select 子句
3.insert 语句将 一行或多行插入指定的表或视图。column_list 是列名的列表,列名以逗号分隔,用于指定为其提供数据的列。如果未指定 ,表或视图中的所有列都将接收到数据。 当 column_list 未指定表或视图中的所有列时,系统会将默认值(如果为列定义了默认值)或 NULL 插入未在列表中指定的任一列。未在列表中指定的所有列必须允许空值或分配了默认值。 4.insert 语句不指定标识类型列的值,因为 Oracle 数据库实例将为这些列生成值。
六、update语句
1.update语句可以更改表或视图中单行、行组或所有行的数据值。引用某个表或视图的 UPDATE 语句每次只能更改一个基表中的数据 。
update table_or_view set column_name = { expression | DEFAULT | NULL } , column_name = { expression | DEFAULT | NULL } , …… where search_condition
2.update语句包括以下主要子句:
①set:包含要更新的列和每个列的新值的列表(用逗号分隔),格式为 column_name = expression。表达式提供的值包含多个项目,如常量、从其他表或视图的列中选择的值或使用复杂的表达式计算出来的值。
②where:指定搜索条件,该搜索条件定义源表和视图中可以为 SET 子句中的表达式提供值的行。
七、delete语句
①delete语句可删除表或视图中的一行或多行,delete 语法形式为:
delete table_or_view where search_condition
②参数 table_or_view 指定要从中删除行的表或视图。table_or_view 中所有符合 WHERE 搜索条件的行都将被删除。如果没有指定 WHERE 子句,将删除 table_or_view 中的所有行。
③任何已删除所有行的表仍会保留在数据库中。delete语句只从表中删除行,要从数据库中删除表,可以使用 drop table语句。
八、merge语句-合并记录行语句
merge语句利用源表中的数据将目标表中的数据更新,即可以通过设置指定匹配条件,更新或插入的字段。
九、truncate语句
1.truncate语句属于DDL语句
功能:删除表中的所有行,而不记录操作日志。
2.truncate table 在功能上与没有 where子句的 delete语句相同;但是,truncate table速度更快,使用的系统资源和事务日志资源更少。
语法:truncate table table_name
示例:删除全部记录而不记录操作日志 truncate table report.