MySQL数据库ALTER操作详解:修改、重命名、删除与添加字段

橘子海
橘子海
发布时间:2026-10-15| 4人浏览过
原创

MySQL中的ALTER TABLE命令是日常数据库维护中最常用的DDL(数据定义语言)之一。无论是优化字段结构、调整数据约束,还是重构表名称,ALTER语句都能以最低成本完成。本文将通过创建测试表,逐一演示如何修改字段顺序、重命名列、变更数据类型、删除或新增字段以及重命名整个表,附带代码示例与执行结果验证。

准备环境

为了直观演示ALTER语句的效果,我们需要先构建两个具有关联关系的测试表:offices(部门表)和employees(员工表)。其中employees表包含外键约束引用offices表,用于模拟真实业务场景。

CREATE TABLE offices (
    officeCode INT(10) NOT NULL UNIQUE,
    city VARCHAR(50) NOT NULL,
    address VARCHAR(50) NOT NULL,
    country VARCHAR(50) NOT NULL,
    PRIMARY KEY(officeCode)
);

CREATE TABLE employees (
    employeeNumber INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
    lastName VARCHAR(50) NOT NULL,
    firtName VARCHAR(50) NOT NULL,
    officeCode INT(10) NOT NULL,
    sex VARCHAR(5),
    CONSTRAINT office_fk FOREIGN KEY(officeCode) REFERENCES offices (officeCode)
);

常用操作案例

第1步:修改字段位置并调整长度

目的:将字段调整到指定位置,同时修正字符长度限制。
工具:ALTER TABLE ... MODIFY ... AFTER
动作:在employees表中,将lastName字段移动到firtName字段之后,并将其长度从50缩减为25。

ALTER TABLE employees MODIFY lastName VARCHAR(25) AFTER firtName;

完成状态:执行后再次查看表结构,确认lastName已位于firtName之后,且属性更新成功。

第2步:重命名字段

目的:将现有字段名更改为更具语义化的名称。
工具:ALTER TABLE ... CHANGE
参数:需同时提供旧字段名和新字段名及数据类型。
动作:将sex字段更名为employee_sex。

ALTER TABLE employees CHANGE sex employee_sex VARCHAR(5);

完成状态:表中不再存在名为sex的列,取而代之的是employee_sex。

第3步:修改字段数据类型与非空约束

目的:优化存储空间并确保数据完整性。
工具:ALTER TABLE ... MODIFY
动作:将employee_sex的数据类型从VARCHAR(5)改为更紧凑的CHAR(1),并设置非空约束(NOT NULL)。

ALTER TABLE employees MODIFY employee_sex CHAR(1) NOT NULL;

完成状态:检查该列信息,Null列显示为“NO”,表明新值不可为空,数据类型变更生效。

第4步:删除冗余字段

目的:清理无用列以减少存储开销。
工具:ALTER TABLE ... DROP
动作:移除已变更过类型的employee_sex字段。

ALTER TABLE employees DROP employee_sex;

完成状态:表结构中该字段消失,查询该列会提示不存在。

第5步:新增数据列

目的:为表扩展维度,增加新的业务字段。
工具:ALTER TABLE ... ADD
动作:为employees表增加一个city字段,类型为VARCHAR(10)。

ALTER TABLE employees ADD city VARCHAR(10);

完成状态:表结构末尾出现新列city,默认允许存入空值。

第6步:修改表名

目的:根据项目规范或重构需求重新标识数据表。
工具:ALTER TABLE ... RENAME TO
动作:将employees表重命名为employees_info。

ALTER TABLE employees RENAME employees_info;

完成状态:原表名employees失效,新表名employees_info可在后续查询中使用。

总结

掌握了上述基于ALTER TABLE的六类操作,即可从容应对绝大多数表结构的变更需求。在实际生产环境中执行这些命令时,建议先在测试库运行验证,特别是涉及大规模数据表的DROP或MODIFY操作前,务必做好备份以防意外。以上就是MySQL数据库ALTER操作的详细内容,更多关于MySQL数据库基本操作的资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。