[TOC] #### 1. delete 命令 --- **命令格式** ```sql delete from 表名 [刪除條件]; ``` 刪除表中的所有數(shù)據(jù) ```sql delete from 表名; ``` 刪除表中符合匹配條件的數(shù)據(jù) ```sql delete from 表名 刪除條件; ``` **使用示例** ```sql -- 刪除 user 表中的所有數(shù)據(jù) delete from user; -- 刪除 user 表中 id 字段值為 1 的數(shù)據(jù) delete from user where id = 1; -- 刪除 user 表 以 id 字段降序排列時(shí)的前 5 條數(shù)據(jù) delete from user order by id desc limit 5; ``` #### 2. truncate 命令 --- **命令格式** ```sql truncate [table] 表名; ``` **使用示例** 刪除 user 表中的所有數(shù)據(jù),并且重置自動(dòng)增長(zhǎng)的值 ```sql truncate user; truncate table user; ``` #### 3. delete、truncate 的區(qū)別 --- **一、delete 刪除數(shù)據(jù)的速度慢,truncate 刪除數(shù)據(jù)的速度快** **二、delete 支持事務(wù),可以進(jìn)行事務(wù)回滾;truncate 不支持事務(wù),不能執(zhí)行事務(wù)回滾** **三、delete 支持帶條件的刪除,可以只刪除某一條數(shù)據(jù);truncate 則不行,只能用于刪除表中的所有數(shù)據(jù)** **四、delete 刪除不會(huì)重置自動(dòng)增長(zhǎng)(auto_increment),truncate 則會(huì)重置自動(dòng)增長(zhǎng)的值,重新以 1 開始** **五、delete 可以觸發(fā) `觸發(fā)器`,truncate 則不行**