数据分析sql入门篇-sql表的操作(上篇):创建表 查看表结构 表信息」主要对数据库中「表的操作」中的创建表、查看表结构、查看表的详细建表信息等一系列的基本操作进行了一些基本介绍,文章中也给出了一些简单的案例。本篇文章主要对mysql中「表的操作」中的修改表系列做一个全面的介绍,通过学习,可以对mysql中修改表名、修改字段名、修改字段的数据类型、增加字段、删除字段、修改字段备注、修改字段的顺序进行一个全面的了解。
语法:
ALTER TABLE <表名> [修改选项]
说明:
1)[修改选项]为需要修改的表的内容,可以为“表名”、“字段名称”、“字段类型”等。
下面分别介绍一些常用的修改表的操作,具体如下:
修改表名、修改字段名、修改字段的数据类型、增加字段、删除字段、修改字段备注、修改字段的顺序。
语法:
ALTER TABLE <旧表名> RENAME [TO] <新表名>;
说明:
1)[]中的内容是可选填的,可以不写to。
案例:将已存在的class表名修改为tb_class。
具体操作如下:
先查看已有的表class,使用如下sql语句:
show tables;
结果如下:
修改表名前
再将已存在的class表名修改为tb_class,sql语句如下:
alter table class rename to tb_class;
再次查看表,运行结果如下:
修改表名后
语法:
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
说明:
1)修改表中字段名称用的是change,不是modify,请注意;
2) <新数据类型>不能为空,如果不需要修改字段的数据类型,可以设置跟原数据类型一样。
案例:将表tb_class中的字段名称id改为stu_id,同时将数据类型由int改为varcha(25)。
具体操作如下:
先查看修改前tb_class表的结构:
代码如下:
desc tb_class;
修改字段id前的表结构
再执行如下代码,将表tb_class中的字段名称id改为stu_id,同时将数据类型由int改为varcha(25):
alter table tb_class change id stu_id varchar(25);
再查看修改字段名称后tb_class表的结构:
desc tb_class;
修改字段id后的表结构
语法:
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支持在已建好的表中的特定位置新增加字段操作的。
语法:
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;
原表结构
执行如下代码,可以在表tb_class中的name字段后新增一个数据类型为char(25)的字段sex:
alter table tb_class add sex char(25) after name;
结果如下:
增加字段后表结构
已经成功的在表tb_class新增加一个数据类型为char(25)的字段sex,并放置在特定的字段name后。
语法:
ALTER TABLE <表名> DROP <字段名>;
案例:删除表tb_class中的字段sex。
具体操作如下:
alter table tb_class drop sex;
删除字段前
删除字段后
语法:
1)修改表的注释:
alter table <表名> comment '修改后的表的注释';
2)修改表中字段的注释
alter table <表名> modify column <字段名> <字段类型> comment '修改后的字段注释';
案例1:修改表tb_class的注释为’学生班级表’。
具体操作如下:
先查看表tb_class的的详细建表信息:
show create table tb_studentG
表tb_class原注释
通过查询结果可知,表tb_class原注释为’班级表’。
执行如下代码,修改表tb_class的注释为’学生班级表’:
alter table tb_class comment '学生班级表';
结果如下:
修改后表tb_class注释
案例2:修改表tb_class的字段class的注释为’班级’。
具体操作如下:
先查看表tb_class的的详细建表信息:
show create table tb_studentG
表中原注释查询结果
通过查看表的详细建表信息可知,原来表中字段class没有注释。
执行如下代码,为表tb_class中字段class添加注释为’班级’:
alter table tb_class modify column class varchar(255) comment '班级';
结果如下:
修改字段class注释后的查询结果
语法:
可以用以下两种方法都可以实现更改字段顺序。
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;
修改字段顺序前
修改字段顺序后
案例2:将表tb_class中的字段name放在字段stu_id之后。
具体操作如下:
执行如下代码,可以将字段name放在字段stu_id之后:
alter table tb_class modify name varchar(255) after stu_id;
修改字段顺序前
修改字段顺序后
在上一篇文章「数据分析sql入门篇-sql表的操作(上篇):创建表 查看表结构 表信息」的基础上,本篇文章进一步对「表的操作」中的「修改表」系列进行了详细的语法介绍和解析,为了方便理解,也给出了一系列案例,这些命令作为了解数据库的入门基础都是必不可少的,如果正在学习数据库,可以收藏起来以备不时之需,欢迎小伙伴们留言,一起讨论,共同进步。
下篇文章将会对「表的操作」中的清空表、删除表等一些基本的数据库操作做进一步的介绍,敬请期待呀。