1.数据定义语言
DDL(Data Definition Language)
面向的对象:数据库和表
关键字:create、alter、drop、truncate(删除当前表再新建一个相同的表)
2.数据操纵语言
DML(Data Manipulation Language)
面向的对象:记录(行)
关键字:insert、update、delete
注意:
开发中很少使用delete,删除有物理删除和逻辑删除,其中逻辑删除可以通过给表添加一个字段(isDel),若值为1,代表删除;若值为0,代表没有删除。
此时,对数据的删除操作就变成了update操作了。
truncate和delete的区别:
truncate是删除表,再重新创建这个表。属于DDL,delete是一条一条删除表中的数据,属于DML。
3.数据查询语言
DQL(Data Query Language)
面向的对象:表、字段
语句顺序:select (distinct)…from…join…on…where…group by…having…order by…limit
执行顺序:from…on…join…where…group by…having…select(distinct)…order by…limit
where和having的区别:
1.WHERE子句用来筛选 FROM 子句中指定的操作所产生的行,在执行分组之前进行应用;GROUP BY子句用来分组 WHERE 子句的输出;HAVING子句用来从分组的结果中筛选行,在执行分组之后进行应用。
2.where子句中的条件表达式having都可以跟,而having子句中的有些表达式where不可以跟;having子句可以用集合函数(sum、count、avg、max和min),而where子句不可以。
3.where可以用于select、update、delete和insert语句中;having只能用于select语句中。
4.数据控制语言
DCL(Data Control Language)
面向的对象:用户、权限、事务。
关键字:grant,revoke
5.事务处理语言
DPL
事务处理语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION、COMMIT和ROLLBACK。
6.指针控制语言
CCL
它的语句,像DECLARE CURSOR、FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。
以梦为马,以汗为泉,不忘初心,不负韶华。