魏晓东 发表于 2024-9-5 22:03:54

一文读懂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;
实战截图如下:
https://img-blog.csdnimg.cn/direct/35565e22ba334057a8c0b9ef6590eda0.png
主要的特点如下:


[*]保存表结构:仅删除表中的数据,不影响表结构和索引
[*]可选条件:可以使用 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 子句指定条件无条件,删除整个表事件支持支持,在事件中可以回滚不支持,操作立即生效,不可回滚实行速率较慢,特别是删除大量记录时较快,直接删除表及其全部内容索引和约束保存索引和约束删除索引和约束主要用途删除特定记录或清空表数据,但保存表结构删除整个表或数据库,连同数据和结构一起删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 一文读懂Mysql的Delete和Drop的概念和差异