全球云服务器测评

Linux常见问题解决方案

mysql的三种删除方式,mysql,mysql安装,mysql卸载

2025-06-04 | 分类: Linux常见问题解决方案 | 查看: 4

在 MySQL 中,删除的方法总共有 3 种:delete、truncate、drop,而三者的用法和使用场景又完全不同

1.detele 可用于删除表的部分或所有数据,它的使用语法如下:


delete from table_name [where...] [order by...] [limit...]

PS:[] 中的命令为可选命令,可以被省略。

delete 操作并不是真的把数据删除掉了,而是给数据打上删除标记,标记为删除状态,使用 rollback 回滚操作,数据就会恢复

2.truncate 执行效果和 delete 类似,也是用来删除表中的所有行数据的,它的使用语法如下:


truncate [table] table_name

truncate 在使用上和 delete 最大的区别是,delete 可以使用条件表达式删除部分数据,而 truncate 不能加条件表达式,所以它只能删除所有的行数据

drop 和前两个命令只删除表的行数据不同,drop 会把整张表的行数据和表结构一起删除掉,它的语法如下:


DROP [TEMPORARY] TABLE [IF EXISTS] tbl_name [,tbl_name]

三者的区别

数据恢复方面:delete 可以恢复删除的数据,而 truncate 和 drop 不能恢复删除的数据。

执行速度方面:drop > truncate > delete。

删除数据方面:drop 是删除整张表,包含行数据和字段、索引等数据,而 truncate 和 drop 只删除了行数据。

添加条件方面:delete 可以使用 where 表达式添加查询条件,而 truncate 和 drop 不能添加 where 查询条件。

重置自增列方面:在 InnoDB 引擎中,truncate 可以重置自增列,而 delete 不能重置自增列。

delete、truncate 可用于删除表中的行数据,而 drop 是把整张表全部删除了,删除的数据包含所有行数据和字段、索引等数据,其中 delete 删除的数据可以被恢复,而 truncate 和 drop 是不可恢复的,但在执行效率上,后两种删除方式又有很大的优势,所以要根据实际场景来选择相应的删除命令,当然 truncate 和 drop 这些不可恢复数据的删除方式使用的时候也要小心。


目前有0 条留言

发表留言