drop truncate delete 程度從強到弱
1、drop table tb
drop將表格直接刪除,沒有辦法找回
2、truncate (table) tb
truncate 刪除表中的所有數據,不能與where一起使用
3、delete from tb (where)
delete 刪除表中的數據(可制定某一行)
truncate和delete的區別
① 事務:truncate是不可以rollback的,但是delete是可以rollback的;
原因:truncate刪除整表數據(ddl語句,隱式提交),delete是一行一行的刪除,可以rollback
② 效果:truncate刪除后將重置索引(自增長id從零開始) ,delete不會刪除索引
③ truncate 不能觸發任何Delete觸發器。
④ delete 刪除可以返回行數
TRUNCATE語句和DELETE語句的區別
1、delete語句,是DML語句,truncate語句通常被認為是DDL語句。
2、delete語句,后面可以跟where子句,通常指定where子句中的條件表達式,只刪除滿足條件的部分記錄,而truncate語句,只能用於刪除表中的所有記錄。
3、truncate語句,刪除表中的數據后,向表中添加記錄時,自動增加字段的默認初始值重新從1開始,而使用delete語句,刪除表中所有記錄后,向表中添加記錄時,自動增加字段的值,為刪除時該字段的最大值加1,也就是在原來的基礎上遞增。
4、delete語句,每刪除一條記錄,都會在日志中記錄,而使用truncate語句,不會在日志中記錄刪除的內容,因此,truncate語句的執行效率比delete語句高。