详解mysql修改表知识点 mysql修改表结构对表中记录的影响

数据分析sql入门篇-sql表的操作(上篇):创建表 查看表结构 表信息」主要对数据库中「表的操作」中的创建表、查看表结构、查看表的详细建表信息等一系列的基本操作进行了一些基本介绍,文章中也给出了一些简单的案例 。本篇文章主要对mysql中「表的操作」中的修改表系列做一个全面的介绍,通过学习,可以对mysql中修改表名、修改字段名、修改字段的数据类型、增加字段、删除字段、修改字段备注、修改字段的顺序进行一个全面的了解 。
修改表:语法:
ALTER TABLE <表名> [修改选项]说明:
1)[修改选项]为需要修改的表的内容,可以为“表名”、“字段名称”、“字段类型”等 。
下面分别介绍一些常用的修改表的操作,具体如下:
修改表名、修改字段名、修改字段的数据类型、增加字段、删除字段、修改字段备注、修改字段的顺序 。
(1)修改表名:语法:
ALTER TABLE <旧表名> RENAME [TO] <新表名>;说明:
1)[]中的内容是可选填的,可以不写to 。
案例:将已存在的class表名修改为tb_class 。
具体操作如下:
先查看已有的表class,使用如下sql语句:
show tables;结果如下:

详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改表名前
再将已存在的class表名修改为tb_class,sql语句如下:
alter table class rename to tb_class;再次查看表,运行结果如下:
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改表名后
(2)修改字段名:语法:
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;说明:
1)修改表中字段名称用的是change,不是modify,请注意;
2) <新数据类型>不能为空,如果不需要修改字段的数据类型,可以设置跟原数据类型一样 。
案例:将表tb_class中的字段名称id改为stu_id,同时将数据类型由int改为varcha(25) 。
具体操作如下:
先查看修改前tb_class表的结构:
代码如下:
desc tb_class;
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改字段id前的表结构
再执行如下代码,将表tb_class中的字段名称id改为stu_id,同时将数据类型由int改为varcha(25):
alter table tb_class change id stu_id varchar(25);再查看修改字段名称后tb_class表的结构:
desc tb_class;
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改字段id后的表结构
(3)修改字段的数据类型:语法:
ALTER TABLE <表名> MODIFY <字段名> <数据类型>;说明:
1)<字段名> 指需要修改数据类型的字段;
2)<数据类型>指修改后的新数据类型;
3)修改字段的数据类型用的是modify,修改字段名用的是change,不要弄混淆了 。
案例:将表tb_class中的字段名stu_id的数据类型由varchar(25)改为int 。
具体操作如下:
执行如下代码,可以将stu_id的数据类型由varchar(25)改为int:
alter table tb_class modify stu_id int;
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改数据类型前
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改数据类型后
(4)增加字段:在实际工作中,随着业务的变化,有时候需要在已经建好的表中增加新的字段,mysql支持在已建好的表中的特定位置新增加字段操作的 。
语法:
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在的字段名];说明:
1)[FIRST|AFTER 已存在的字段名]用于指定新增加的字段在表中的位置,FIRST将新增加的字段放在表的第一列,AFTER将新增加的字段放在指定的已存在的字段后面;
2)[FIRST|AFTER 已存在的字段名]为可选项,如果不指定位置,默认将新添加的字段放在表的最后一列;
3) [约束条件] 为可选项,可不填 。
案例:在表tb_class中的name字段后新增一个数据类型为char(25)的字段sex 。
具体操作如下:
先查看表tb_class的结构:
desc tb_class;
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
原表结构
执行如下代码,可以在表tb_class中的name字段后新增一个数据类型为char(25)的字段sex:
alter table tb_class add sex char(25) after name;结果如下:
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
增加字段后表结构
已经成功的在表tb_class新增加一个数据类型为char(25)的字段sex,并放置在特定的字段name后 。
(5)删除字段:语法:
ALTER TABLE <表名> DROP <字段名>;案例:删除表tb_class中的字段sex 。
具体操作如下:
alter table tb_class drop sex;
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
删除字段前
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
删除字段后
(6)修改字段备注:语法:
1)修改表的注释:
alter table <表名> comment '修改后的表的注释';2)修改表中字段的注释
alter table <表名> modify column <字段名> <字段类型> comment '修改后的字段注释';案例1:修改表tb_class的注释为’学生班级表’ 。
具体操作如下:
先查看表tb_class的的详细建表信息:
show create table tb_studentG
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
表tb_class原注释
通过查询结果可知,表tb_class原注释为’班级表’ 。
执行如下代码,修改表tb_class的注释为’学生班级表’:
alter table tb_class comment '学生班级表';结果如下:
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改后表tb_class注释
案例2:修改表tb_class的字段class的注释为’班级’ 。
具体操作如下:
先查看表tb_class的的详细建表信息:
show create table tb_studentG
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
表中原注释查询结果
通过查看表的详细建表信息可知,原来表中字段class没有注释 。
执行如下代码,为表tb_class中字段class添加注释为’班级’:
alter table tb_class modify column class varchar(255) comment '班级';结果如下:
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改字段class注释后的查询结果
(7)修改字段顺序:语法:
可以用以下两种方法都可以实现更改字段顺序 。
1)ALTER TABLE <表名>MODIFY <字段1> <数据类型> FIRST;2)ALTER TABLE <表名>MODIFY <字段1> <数据类型> AFTER <字段2>;说明:
1)将字段名为<字段1>,数据类型为<数据类型>的字段放在表的开头;
2)将字段名为<字段1>,数据类型为<数据类型>的字段放置于字段<字段2>后面 。
案例1:将表tb_class中的字段name放在表的开头 。
具体操作如下:
执行如下代码,可以将字段name放在表的开头:
alter table tb_class modify name varchar(255) first;
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改字段顺序前
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改字段顺序后
案例2:将表tb_class中的字段name放在字段stu_id之后 。
具体操作如下:
执行如下代码,可以将字段name放在字段stu_id之后:
alter table tb_class modify name varchar(255) after stu_id;
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改字段顺序前
详解mysql修改表知识点 mysql修改表结构对表中记录的影响

文章插图
修改字段顺序后
在上一篇文章「数据分析sql入门篇-sql表的操作(上篇):创建表 查看表结构 表信息」的基础上,本篇文章进一步对「表的操作」中的「修改表」系列进行了详细的语法介绍和解析,为了方便理解,也给出了一系列案例,这些命令作为了解数据库的入门基础都是必不可少的,如果正在学习数据库,可以收藏起来以备不时之需,欢迎小伙伴们留言,一起讨论,共同进步 。
【详解mysql修改表知识点 mysql修改表结构对表中记录的影响】下篇文章将会对「表的操作」中的清空表、删除表等一些基本的数据库操作做进一步的介绍,敬请期待呀 。

    推荐阅读