# SQL语句种类
- DDL(Data Definition Language):数据定义语言,定义对数据库对象(库、表、列、索引)的操作,比如有
create、drop、alter、rename、truncate等命令; - DML(Data Manipulation Language):数据操作语言,定义对数据库记录的操作,代表指令有
insert、delete、update、select等命令; - DCL(Data Control Language):数据控制语言,定义对数据库、表、字段、用户的访问权限和安全级别。代表指令有
grant、revoke、commit、rollback、savepoint等命令。
# DEOP、DELETE和TRUNCATE的区别
drop table:
- 属于DDL
- 不可回滚
- 不可以接
where - 表的内容和结构都被删除
- 删除的速度快
truncate table:
- 属于DDL
- 不可回滚
- 不可以接
where - 只删除表的内容
- 删除的速度快
delete from:
- 属于DML
- 可以回滚
- 可以接
where - 表的结构还在,表的内容是否在要取决于
where执行的情况 - 删除的速度慢,需要逐行删除
使用场景:
- 当不再需要一张表的时候,就用
drop命令 - 只想删除表中部分数据行时,用
delete命令,并且需要带上where子句 - 保留表的结构但是删除所有的数据要用
truncate命令