![f21b89a06208d149e1227caaca2c6024.png](https://i-blog.csdnimg.cn/blog_migrate/f625f4146fa065321aa979e3aecbadb4.jpeg)
比较drop、delete、truncate
一:删除内容:
delete是DML语句,可以选择删除部分数据,也可以删除全部数据。
drop是DDL语句,删除表结构及所有数据,同时删除表的结构所依赖的约束,触发器,索引。
truncate也是DDL语句,删除的是表中全部的数据,不能选择删除部分数据,不删除表结构。
二:回滚:
delete删除的数据可以回滚,drop和truncate无法回滚。
三:释放空间:
drop和truncate会释放空间,delete删除不会。
四:执行速度:
一般来说: drop> truncate > delete。
五:安全性:
小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及。
六:相同点:
drop,truncate都是DDL语句,执行后会自动提交。
truncate和不带where子句的delete, 以及drop都会删除表内的数据。
![bd0f09eb73b9a8e897c000a81ded8a20.png](https://i-blog.csdnimg.cn/blog_migrate/46d3cfb75d451646db8f243704506bb5.jpeg)