Mysql之删除操作浅析

本文详细介绍了MySQL中删除数据的三种方式:DELETE、TRUNCATE和DROP。DELETE用于按条件删除部分或全部数据,但不重置自增列;TRUNCATE无条件删除所有数据并重置自增列;DROP则会删除整个表及其结构,无法恢复。在执行速度上,DROP最快,TRUNCATE次之,DELETE最慢。了解这些区别有助于选择合适的删除操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在mysql中,删除的方式有3种,分别为delete、truncate、drop,下面对3种方式进行简单的分析其特点和使用的场景。
1、delete
delete用于删除表的部分或全部数据,使用语法如下

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

其中[]中的内容为可选命令。
示例

# 删除学生表中id为1的学生
delete from student where id = 1;
# 删除学生表中年龄最大的5名学生
delete from student order by age desc limit 5;

在innodb引擎中,delete操作并不是真正的把数据删除了,而是给数据打上删除标记。在使用delete删除数据之后并不会重置自增列为初始值。
在这里插入图片描述
2、truncate
truncate是用来删除表中全部数据,使用语法如下

truncate table table_name

示例

# 删除学生表中全部记录
truncate table student;

truncate在使用上和delete的最大区别是,delete可以使用条件删除部分数据,而truncate不能添加条件,只能删除全部数据。truncate是DDL语句,即数据定义语言,用来维护存储数据的结构指令,而delete语句是DML语句,即数据操作语言,用来对数据进行操作的。truncate本质上是新建了一个表结构,再把原表删除掉,所以truncate是DDL语言,而非DML语言。truncate在innodb引擎中会重置自增列为初始值。

3、drop
drop删除整张表的行数据和表结构,语法如下

drop table table_name [,table_name]

示例

# 删除学生表
drop table student;

4、三者区别

  • 数据恢复:delete删除的数据可以恢复,而truncate和drop不可以;
  • 执行速度:drop>truncate>delete;
  • 数据删除:drop是删除整张表包括数据和表结构,而truncate和delete只是删除了行数据;
  • 重置自增列:在innodb引擎中,truncate可以重置自增列,而delete不能重置自增列;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值