[TOC] #### 1. delete 命令 --- **命令格式** ```sql delete from 表名 [删除条件]; ``` 删除表中的所有数据 ```sql delete from 表名; ``` 删除表中符合匹配条件的数据 ```sql delete from 表名 删除条件; ``` **使用示例** ```sql -- 删除 user 表中的所有数据 delete from user; -- 删除 user 表中 id 字段值为 1 的数据 delete from user where id = 1; -- 删除 user 表 以 id 字段降序排列时的前 5 条数据 delete from user order by id desc limit 5; ``` #### 2. truncate 命令 --- **命令格式** ```sql truncate [table] 表名; ``` **使用示例** 删除 user 表中的所有数据,并且重置自动增长的值 ```sql truncate user; truncate table user; ``` #### 3. delete、truncate 的区别 --- **一、delete 删除数据的速度慢,truncate 删除数据的速度快** **二、delete 支持事务,可以进行事务回滚;truncate 不支持事务,不能执行事务回滚** **三、delete 支持带条件的删除,可以只删除某一条数据;truncate 则不行,只能用于删除表中的所有数据** **四、delete 删除不会重置自动增长(auto_increment),truncate 则会重置自动增长的值,重新以 1 开始** **五、delete 可以触发 `触发器`,truncate 则不行**