1、相同点:
使用 drop 、delete、 truncate 都会删除表中的内容;
drop table 表名;
delete from 表名(后面不跟 where语句,也会删除表中所有数据);
truncate table 表名。
2、不同点:
delete 属于DML,当不commit时时不生效的;
truncate 和 drop 直接生效的,不能回滚;
truncate 和 delete 不删除表的结构,只是删除表中的内容;
drop语句将删除表的结构;
truncate 会释放占用空间,而drop 和 delete不会。
速度:drop>truncate>dalete
3、
综上所述可以得到一个问题,使用drop 和 truncate相对delete是危险的,当使用drop 和 truncate 时不能回滚。delete相对安全,可以回滚,并且commit以后才会提交,并且不会删除表结构,也不会释放表所占用的空间。