删除数据 delete、truncate 命令
1. delete 命令
命令格式
delete from 表名 [删除条件];
删除表中的所有数据
delete from 表名;
删除表中符合匹配条件的数据
delete from 表名 删除条件;
使用示例
-- 删除 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 命令
命令格式
truncate [table] 表名;
使用示例
删除 user 表中的所有数据,并且重置自动增长的值
truncate user;
truncate table user;
3. delete、truncate 的区别
一、delete 删除数据的速度慢,truncate 删除数据的速度快
二、delete 支持事务,可以进行事务回滚;truncate 不支持事务,不能执行事务回滚
三、delete 支持带条件的删除,可以只删除某一条数据;truncate 则不行,只能用于删除表中的所有数据
四、delete 删除不会重置自动增长(auto_increment),truncate 则会重置自动增长的值,重新以 1 开始
五、delete 可以触发 触发器
,truncate 则不行