MySQL数据库ALTER操作详解:修改、重命名、删除与添加字段
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数据库基本操作的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









