在 MySQL 中,ALTER TABLE
语句用于修改现有的表结构。MODIFY
和 CHANGE
是 ALTER TABLE
语句中的两个常用选项,它们都用于修改列的定义,但有一些关键的区别。
MODIFY
- 用途:
MODIFY
主要用于修改现有列的定义,比如改变数据类型、默认值、是否允许 NULL 等。 - 语法:
ALTER TABLE table_name MODIFY COLUMN column_name new_definition;
- 示例:
在这个例子中,ALTER TABLE employees MODIFY COLUMN salary DECIMAL(10, 2) NOT NULL;
salary
列的数据类型被修改为DECIMAL(10, 2)
,并且设置为不允许NULL
。
CHANGE
- 用途:
CHANGE
不仅用于修改现有列的定义,还可以用于重命名列。 - 语法:
ALTER TABLE table_name CHANGE COLUMN old_column_name new_column_name new_definition;
- 示例:
在这个例子中,ALTER TABLE employees CHANGE COLUMN salary base_salary DECIMAL(10, 2) NOT NULL;
salary
列被重命名为base_salary
,同时数据类型也被修改为DECIMAL(10, 2)
,并且设置为不允许NULL
。
对比总结
-
修改列定义:
MODIFY
只能修改列的定义(数据类型、默认值等)。CHANGE
既可以修改列的定义,也可以重命名列。
-
语法区别:
MODIFY
语法中不需要指定列的新名称。CHANGE
语法中必须指定列的新名称(即使名称没有变化)。
-
使用场景:
- 如果你只需要修改列的属性(如数据类型、默认值等),并且不需要改变列名,可以使用
MODIFY
。 - 如果你需要修改列名或者同时修改列名和属性,则必须使用
CHANGE
。
- 如果你只需要修改列的属性(如数据类型、默认值等),并且不需要改变列名,可以使用
通过理解这些区别,你可以根据具体需求选择合适的选项来修改表结构。
本文来自博客园,作者:del88,转载请注明原文链接:https://www.cnblogs.com/del88/p/18565664
分类:
SQL-MySql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2014-11-24 淘宝菜鸟测试
2011-11-24 初认识ListView
2011-11-24 StringGrid Options 属性
2011-11-24 StringGrid的按列取值、按行取值、按列赋值、按行赋值