一:区别

DROP

DROP TABLE :删除内容和定义,并释放空间。执行drop语句,删除内容,删除表结构;

TRUNCATE

TRUNCATE TABLE:只清空表中的数据,删除内容、释放空间但不删除表结构,不能删除行数据;

DELETE

DELETE FROM  TABLE (WHERE  列名 = 值)

只删除内容、不释放空间、不删除表结构;但是delete既可以对行数据进行删除,也可以对整表数据进行删除。

二:注意

1、DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存,以便进行进行回滚操作。

2、执行速度一般来说:DROP>TRUNCATE>DELETE

3、DELETE语句是数据库操作语言(dml),这个操作会放到 rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执行的时候将被触发。

4、TRUNCATE、DROP是数据库定义语言(ddl),操作立即生效,原数据不放到 rollback segment 中,不能回滚,操作不触发trigger。

5、TRUNCATE语句执行以后,id标识列还是按顺序排列,保持连续;而delete语句执行后,ID标识列不连续