MySQL常用SQL语句整理:表结构修改与约束管理
在MySQL数据库的日常维护和开发中,经常需要对已存在的表结构进行调整,例如修改字段名称、更改字符集编码或调整数据约束。掌握标准且安全的SQL语法对于避免数据损坏和确保业务连续性至关重要。
常见表结构变更操作
第1步:重命名数据表
当表名不符合新的命名规范或需要优化时,可以使用 RENAME TABLE 命令。此操作会原子性地替换表名,减少锁定时间。
-- 将 t_softwareport 重命名为 software_port
rename table t_softwareport to software_port;
第2步:建立外键约束
为了保持数据完整性,通常需要在子表中建立指向父表的外键。以下示例演示了如何在 software_port 表中添加外键,关联到 software_process 表的ID字段,并设置更新和删除时的限制行为(restrict)。
-- 建立外键约束 fk_software_port_softwareprocessid
alter table software_port
add constraint fk_software_port_softwareprocessid
foreign key (softwareprocessid)
references software_process (id)
on delete restrict on update restrict;
第3步:删除指定列
若某些字段不再需要,可以一次性从表中移除多列。以下命令展示了如何从 software_type 表中删除 upid 和 orderid 两列。
-- 删除 upid 和 orderid 列
alter table software_type drop column upid, drop column orderid;
第4步:修改列名及属性
使用 CHANGE 关键字可以同时修改列的名称和数据类型/属性。注意,CHANGE 后面需要同时提供旧列名和新列名。以下操作将 software_process 表中的 software_id 列更名为 softwareid,并确保其为不可空的整数类型。
-- 将 software_id 改为 softwareid,类型为 int(11) NOT NULL
alter table software_process
change software_id softwareid int(11) not null;
第5步:更改列的字符编码
在涉及中文或多语言数据的系统中,可能需要统一或修正列的字符集和排序规则。以下示例将 cms_contentbody 表中的 offical_site_name 列设置为 utf8 字符集和 utf8_unicode_ci 排序规则。
-- 修改 offical_site_name 列的编码为 utf8 和 utf8_unicode_ci
alter table cms_contentbody
modify column offical_site_name varchar(30)
character set utf8 collate utf8_unicode_ci not null;
第6步:增加新列
当业务需求扩展时,需向现有表中添加新字段。可以通过 ADD COLUMN 定义名称、类型及约束条件(如唯一性)。以下命令为 cms_flash 表添加了名为 name 的非空唯一字符串列。
-- 增加 name 列,要求非空且唯一
alter table cms_flash
add name varchar(30) not null unique;
以上就是MySQL SQL语句积累:表结构修改与约束管理的详细内容,更多关于数据库维护优化的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













