參考:
一:用法和區別
drop:drop table 表名
刪除內容和定義,並釋放空間。執行drop語句,將使此表的結構一起刪除。
truncate (清空表中的資料):truncate table 表名
刪除內容、釋放空間但不刪除定義(也就是保留表的資料結構)。與drop不同的是,只是清空表資料而已。
truncate不能刪除行資料,雖然只刪除資料,但是比delete徹底,它只刪除表資料。
delete:delete from 表名 (where 列名 = 值)
與truncate類似,delete也只刪除內容、釋放空間但不刪除定義;但是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標識列不連續
delete和drop truncate的區別
1.truncate和不帶where子句的delete 以及drop都會刪除表內的資料。2.drop truncate都是ddl語句 資料定義語言 執行後會自動提交。1.truncate 和 delete 只刪除資料不刪除表的結構 定義 drop 語句將刪除表的結構被依賴的約束 constrain ...
drop truncate和delete的區別
delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。truncate table 則一次性地從表中刪除所有的資料並不把單獨的刪除操作記錄記入日誌儲存,刪除行是不能恢復的。並且在刪除的過程中不會啟用與表有關的刪除觸發器。執行速度快。...
drop truncate和delete的區別
1 delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中儲存以便進行進行回滾操作。truncate table 則一次性地從表中刪除所有的資料並不把單獨的刪除操作記錄記入日誌儲存,刪除行是不能恢復的。並且在刪除的過程中不會啟用與表有關的刪除觸發器。執行速度...