SQL: Structured Query Language,结构化查询语言
一、分类
- 数据定义语言(Data Definition Language, DDL),例如:create、drop、alter等
DDL用于创建、管理数据库中的对象。DDL语句可以创建、修改、删除数据库、表、索引、视图、存储过程和其他对象。例如:
create table、drop table、alter table
create view、drop view
create index、drop index
create procedure、drop procedure、alter procedure
create trigger、drop trigger、drop trigger
- 数据操作语言(Data Manipulation Language, DML),例如:select、insert、update、delete等
DML语句用于处理数据,包括数据检索、在表中插入行、修改值、删除行等。
- 数据控制语言(Data Control Language, DCL),例如:grant、revoke、commit、rollback等
DCL语句用于控制用户和数据库对象的安全权限。一些对象有不同的权限集,可以给特定的用户或者用户组授予或者拒绝这些权限。
1、数据定义语言(DDL)
语句 | 描述 |
---|---|
create | 用来创建新对象,包括数据库、表、视图、过程、触发器和函数等常见数据库对象 |
alter | 用来修改已有对象的结构。根据用途的不同,这些对象使用alter语句的语法也不同 |
drop | 用于删除已有的对象。有些对象是无法删除的,因为它们是与模式绑定的 |
2、数据操纵语言(DML)
语句 | 描述 |
---|---|
insert | 将数据插入到数据库对象中的指令,可以插入数据的数据库对象有数据表和可更新查看表两种 insert into 表名 (字段1, 字段2, 字段3,...) values (值1, 值2, 值3, ...) |
update | 根据指定条件,将匹配条件的数据表中的数据更新为新的数值 update 表名 set 字段1 = 值1, 字段2 = 值2, 字段3 = 值3, ... [ where 指定条件 ] |
delete | 根据指定条件,将匹配条件的数据表中的数据删除 delete from 表名 [ where 指定条件 ] |
select | 查看数据表内字段数据的指令 select 字段名[, 字段名 ... ] from 表名 [ where 指定条件 ] |
3、数据控制语言(DCL)
语句 | 描述 |
---|---|
grant | 授予用户或角色权限集合 |
deny | 显式的控制权限集合 |
revoke | 撤销对象上的权限集合 |
二、运算符
运算符分为算数运算符、逻辑运算符、位运算符、一元运算符、赋值运算符、比较运算符和字符串运算符等
1、算数运算符
符号 | 描述 |
---|---|
+ | 加,int类型的数字相加,也可以将数字以天为单位和日期相加 |
- | 减 |
* | 乘 |
/ | 除,如果相除两数均为整数,结果只保留整数部分 |
% | 取模,返回两数相除的余数 |
2、逻辑运算符
运算符 | 描述 |
---|---|
all | 如果一组的比较都为true,那么结果为true |
and | 如果两个布尔表达式都是true,那么结果为true |
any | 如果一组的比较中任何一个为true,那么结果为true |
between | 如果操作数在某个范围之内,那么结果为true |
exists | 如果子查询包含一些行,那么结果为true |
in | 如果操作数等于表达式列表中的一个,那么结果为true |
like | 如果操作数与一种模式相匹配,那么结果为true |
not | 对任何其他布尔运算符的值取反 |
or | 如果两个布尔表达式中的一个为true,那么结果为true |
some | 如果在一组比较中,有些为true,那么结果为true |
3、比较运算符
运算符 | 描述 |
---|---|
=(等于) | 等于 |
>(大于) | 大于 |
<(小于) | 小于 |
>=(大于等于) | 大于等于 |
<=(小于等于) | 小于等于 |
<>(不等于) | 不等于 |
!=(不等于) | 不等于(非ISO标准) |
!<(不小于) | 不小于(非ISO标准) |
!>(不大于) | 不大于(非ISO标准) |
4、位运算符
运算符 | 描述 |
---|---|
&(位与) | 位与(两个操作数) |
|(位或) | 位或(两个操作数) |
^(位异或) | 位异或(两个操作数) |
5、一元运算符
一元运算符只对一个表达式执行操作,该表达式可以是numeric数据类型类别中的任何一种数据类型
运算符 | 描述 |
---|---|
+(正) | 数值为正 |
-(负) | 数值为负 |
~(位非) | 返回数字的非 |
三、运算符优先级
当一个表达式中的两个运算符有相同的运算符优先级时,将按照它们在表达式中的位置对其从左到右进行求值
级别 | 运算符 |
---|---|
1 | ~(位非) |
2 | *(乘)、/(除)、%(取模) |
3 | +(正)、-(负)、加(+)、+(连接)、-(减)、&(位与)、^(位异或)、|(位或) |
4 | =、>、<、>=、<=、<>、!=、!>、!< |
5 | not |
6 | and |
7 | all、any、between、in、like、or、some |
8 | =(赋值) |