一文读懂Mysql的Delete和Drop的概念和差异

1. 基本知识

DELETE和DROP都是用于删除数据的命令,但两者的用途和效果有所不同

DELETE 命令用于删除表中的记录,可以删除特定条件匹配的行,也可以删除所有行

  • 删除特定条件的记录:
DELETE FROM table_name WHERE condition;
  • 删除所有记录:
DELETE FROM table_name;

示例代码如下:

-- 删除满足条件的记录
DELETE FROM employees WHERE age > 30;

-- 删除所有记录
DELETE FROM employees;

实战截图如下:

在这里插入图片描述

主要的特点如下:

  • 保留表结构:仅删除表中的数据,不影响表结构和索引
  • 可选条件:可以使用 WHERE 子句来指定删除哪些记录
  • 事务支持:可以在事务中进行,可以回滚(ROLLBACK)以撤销操作
  • 性能考虑:删除大量记录时,DELETE 可能比较慢(逐行删除数据,并在每行删除时记录在日志中)

DROP 命令用于删除数据库对象,如表、数据库等
完全移除表或其他对象及其所有数据

  • 删除表:DROP TABLE table_name;

  • 删除数据库:DROP DATABASE database_name;

示例代码:

-- 删除一个表
DROP TABLE employees;

-- 删除一个数据库
DROP DATABASE company_db;

主要的特点如下:

  • 删除表及其数据:DROP TABLE 会删除整个表以及表中的所有数据
  • 删除其他数据库对象:可删除索引、视图等其他数据库对象
  • 不可恢复:无法回滚,一旦执行,所有数据和表结构都会被永久删除
  • 性能:通常比 DELETE 更快,因为它直接删除表及其内容,而不逐行记录删除操作

2. 总结

需要删除表中的某些记录或者清空表时,但希望保留表结构用于后续数据插入,选择DELETE
需要彻底删除表或数据库,不再需要其结构和数据时,选择DROP

两者的总结表如下:

特性DELETEDROP
作用对象表中的记录整个表、数据库或其他数据库对象
数据保留删除指定记录,保留表结构删除表及所有数据
可选条件可以使用 WHERE 子句指定条件无条件,删除整个表
事务支持支持,在事务中可以回滚不支持,操作立即生效,不可回滚
执行速度较慢,特别是删除大量记录时较快,直接删除表及其所有内容
索引和约束保留索引和约束删除索引和约束
主要用途删除特定记录或清空表数据,但保留表结构删除整个表或数据库,连同数据和结构一起删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码农研究僧

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

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

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

打赏作者

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

抵扣说明:

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

余额充值