Mysql 温故知新系列【表字段维护】

「这是我参与11月更文挑战的第 4 天,活动详情查看:2021最后一次更文挑战

Mysql 温故知新系列 【表创建】 - 掘金 (juejin.cn) 这篇文章中,讲到了如何创建表,在建表时,有哪些常规的操作,如定义自增主键,唯一字段,非空属性,携带默认值,以及指定外键。但这些操作,是我们建表时提前规划好的,实际上,我们会在对字段做增减以及修改等操作,这就是本章的目的

表维护

字段添加

在结尾追加

1
sql复制代码alter table <表名> add <新字段名><数据类型>[约束条件];

这种方式,字段会添加到表的最后

image.png

在开头添加

1
sql复制代码alter table <表名> add <新字段名> <数据类型> [约束条件] first;

mysql 默认是在表的最后添加新的字段,我们可以使用关键字 first 将添加的字段限定在表的字段的第一行

image.png

添加在表的任意位置

除上两种方式,mysql 还支持在表中间任意位置插入新字段。这需要使用关键字 after 指定新字段插入表中现有字段的哪一个后边

1
sql复制代码alter table <表名> add <新字段名> <数据类型> [约束条件] after <已经存在的字段名>;

image.png

字段删除

在新项目中,我们设计的表经过多次字段添加,以及长时间的运行后,会有一些字段不再使用

处于优化表结构的目的,我们需要移除这些冗余的字段,相关命令如下:

1
sql复制代码alter table table_name drop column field

image.png

前面测试插入的 uuid 列已经移除

字段修改

重命名字段

1
sql复制代码alter table <表名> change <旧字段名> <新字段名> <新数据类型> [约束条件];

image.png

uname -> username,并且还修改了他的默认值

字段调整

1
sql复制代码alter table <表名> modify <字段名> <数据类型>

image.png

不仅修改了长度,还修改了默认值,并添加了唯一约束

追加外键

1
2
3
4
sql复制代码alter table <表名> add foreign key [自定义外键名](<表中外键字段>) references <关联表>(<关联表主键>);

-- 示例
alter table user add foreign key [fk_user_dept_id](dept_id) references dept(id);

删除外键

1
2
3
4
sql复制代码alter table <表名> drop foreign key <外键约束名>

-- 以上一步添加的外键 fk_user_dept_id 为例
alter table user drop foreign key fk_user_dept_id;

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%