ALTER 与 UPDATE、DROP 与 DELETE区别

在 MySQL 中,ALTERUPDATEDROPDELETE 是两组容易混淆的命令,它们的作用和使用场景有本质区别:

1. ALTERUPDATE 的区别

两者都用于"修改",但修改的对象完全不同:

命令 作用对象 功能描述 示例
ALTER 数据库对象结构(表、列等) 修改数据库或表的结构(如添加/删除列、修改字段类型、重命名表等) ALTER TABLE users ADD COLUMN age INT;(给 users 表添加 age 列)
UPDATE 表中的数据 修改表中已有记录的数据(不改变表结构) UPDATE users SET age = 20 WHERE id = 1;(更新 id=1 的用户年龄)

核心区别
ALTER 操作的是"表的结构"(元数据),而 UPDATE 操作的是"表中的数据"(内容)。

2. DROPDELETE 的区别

两者都用于"删除",但删除的对象和效果不同:

命令 作用对象 功能描述 示例
DROP 数据库对象(表、库、索引等) 彻底删除整个数据库对象(如删除表、库、索引),释放所有相关资源 DROP TABLE users;(删除整个 users 表,包括结构和数据)
DELETE 表中的数据 删除表中部分或全部记录 (保留表结构),可以配合 WHERE 条件 DELETE FROM users WHERE age < 18;(删除 age<18 的用户记录)

其他重要区别

  • 恢复性DELETE 删除的数据可以通过事务回滚(ROLLBACK)恢复;DROP 是立即释放资源,无法回滚。
  • 性能DROP TABLEDELETE FROM table(删除全表数据)速度快,因为 DROP 直接删除表结构,而 DELETE 需要逐行删除记录。
  • 自增列DELETE 全表数据后,自增列(AUTO_INCREMENT)的计数器不会重置;DROP 表后重建,计数器会重置。

总结

  • 改结构用 ALTER,改数据用 UPDATE
  • 删对象(表/库)用 DROP,删记录用 DELETE

使用时需特别注意 DROPDELETE 的危险性,避免误操作导致数据丢失。

相关推荐
网络笨猪2 小时前
# Nginx企业级全套配置\+排错手册
运维·nginx
Yupureki3 小时前
《Linux网络编程》8.网络层IP原理
linux·运维·服务器·网络·ip
阿波罗尼亚3 小时前
数据库序列(Sequence)
数据库
yyuuuzz3 小时前
aws亚马逊入门常见认知误区
运维·服务器·网络·云计算·github·aws
Junsir大斗师3 小时前
Nginx服务器代理Postgresql-16后端数据库
数据库·nginx
Je1lyfish3 小时前
CMU15-445 (2025 Fall/2026 Spring) Project#3 - QueryExecution
linux·c语言·开发语言·数据结构·数据库·c++·算法
DeepFlow 零侵扰全栈可观测3 小时前
运动战:AI 时代 IT 运维的决胜之道——DeepFlow 业务全链路可观测性的落地实践
运维·网络·人工智能·arcgis·云计算
林叔聊渠道分销4 小时前
saas产品运营案例 | 联盟营销计划如何帮助企业提高销售额?
运维·产品运营·sass·流量运营·用户运营
m0_596749095 小时前
如何防止SQL拼接漏洞_使用PDO对象实现安全的SQL交互
jvm·数据库·python
老纪的技术唠嗑局6 小时前
深度解析 LLM Wiki / Obsidian-Wiki / GBrain:Agent 时代知识的“自组织”与“自进化”
大数据·数据库·人工智能·算法