# 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:

  1. 属于DDL
  2. 不可回滚
  3. 不可以接where
  4. 表的内容和结构都被删除
  5. 删除的速度快

truncate table:

  1. 属于DDL
  2. 不可回滚
  3. 不可以接where
  4. 只删除表的内容
  5. 删除的速度快

delete from:

  1. 属于DML
  2. 可以回滚
  3. 可以接where
  4. 表的结构还在,表的内容是否在要取决于where执行的情况
  5. 删除的速度慢,需要逐行删除

使用场景:

  • 当不再需要一张表的时候,就用drop命令
  • 只想删除表中部分数据行时,用delete命令,并且需要带上where子句
  • 保留表的结构但是删除所有的数据要用truncate命令