MySQL中的删除:drop,delete,truncate的区别和联系

MySQL中drop,delete,truncate都可以用于删除,那么它们之间的区别是什么呢?首先我们先来学习一下这三个命令。注:本篇文章主要介绍对于表的删除

一、drop命令

drop是DDL(数据定义语言),用于整张表的删除,删除的时候不仅删除了表中的数据,还删除了表结构。(也就是使用drop删除表后,数据库中便查询不到该表)
语法:drop table 表名;
drop删除表

注:drop命令后不可使用where等命令。

二、delete命令

delete是DML(数据操作语言),用于对表中数据的删除,不会删除表结构,也就是说即使你使用delete from 表名;将表中所有数据都删除了,该表依然存在。
delete的删除原理:在InnoDB数据库引擎下,将要删除的数据添加一个删除标记,该表的实际大小不会产生变化。
语法:delete from 表名 where 字段名 = 值;(where后面的语句可以不要,表示删除整张表的数据)
![delete删除表中元素](https://img-blog.csdnimg.cn/2484ae57261e4d169789852bb76b4889.png)

三、truncate命令

truncate是DDL(数据定义语言),使用该命令可以删除表中所有数据,但不会删除表结构。但是该命令不能添加查询条件。
truncate的删除原理是重新创建一个表(不包含数据),然后将原来的表删除。
语法:truncate table 表名;
在这里插入图片描述

四、drop VS delete VS truncate

4.1 相同点

  1. 都可以删除整张表中的数据

4.2 不同点

  1. 删除的范围:drop(删除表中所有数据及表结构)>truncate(删除表中所有数据)>=delete(删除表中所有数据或部分数据)
  2. 查询条件:delete可以使用查询条件进行表中数据删除,drop和truncate不可以
  3. 命令类型:delete属于DML,drop和truncate属于DDL
  4. 数据能否恢复:delete删除的数据可以恢复,但是drop和truncate删除的数据不能恢复
  5. 执行效率:drop>truncate>delete
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值