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


数据分析sql入门篇-sql表的操作(上篇):创建表 查看表结构 表信息」主要对数据库中「表的操作」中的创建表、查看表结构、查看表的详细建表信息等一系列的基本操作进行了一些基本介绍,文章中也给出了一些简单的案例。本篇文章主要对mysql中「表的操作」中的修改表系列做一个全面的介绍,通过学习,可以对mysql中修改表名、修改字段名、修改字段的数据类型、增加字段、删除字段、修改字段备注、修改字段的顺序进行一个全面的了解。

修改表:

语法:

ALTER TABLE <表名> [修改选项]

说明:

1)[修改选项]为需要修改的表的内容,可以为“表名”、“字段名称”、“字段类型”等。

下面分别介绍一些常用的修改表的操作,具体如下:

修改表名、修改字段名、修改字段的数据类型、增加字段、删除字段、修改字段备注、修改字段的顺序。

(1)修改表名:

语法:

ALTER TABLE <旧表名> RENAME [TO] <新表名>;

说明:

1)[]中的内容是可选填的,可以不写to。

案例:将已存在的class表名修改为tb_class。

具体操作如下:

先查看已有的表class,使用如下sql语句:

show tables;

结果如下:

数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改表名前

再将已存在的class表名修改为tb_class,sql语句如下:

alter table class rename to tb_class;

再次查看表,运行结果如下:

数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改表名后

(2)修改字段名:

语法:

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

说明:

1)修改表中字段名称用的是change,不是modify,请注意;

2) <新数据类型>不能为空,如果不需要修改字段的数据类型,可以设置跟原数据类型一样。

案例:将表tb_class中的字段名称id改为stu_id,同时将数据类型由int改为varcha(25)。

具体操作如下:

先查看修改前tb_class表的结构:

代码如下:

desc tb_class;
数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改字段id前的表结构

再执行如下代码,将表tb_class中的字段名称id改为stu_id,同时将数据类型由int改为varcha(25):

alter table tb_class change id stu_id varchar(25);

再查看修改字段名称后tb_class表的结构:

desc tb_class;
数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改字段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;
数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改数据类型前

数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改数据类型后

(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;
数据分析sql入门篇-sql表的操作(下篇1):修改表系列

原表结构

执行如下代码,可以在表tb_class中的name字段后新增一个数据类型为char(25)的字段sex:

alter table tb_class add sex char(25) after name;

结果如下:

数据分析sql入门篇-sql表的操作(下篇1):修改表系列

增加字段后表结构

已经成功的在表tb_class新增加一个数据类型为char(25)的字段sex,并放置在特定的字段name后。

(5)删除字段:

语法:

ALTER TABLE <表名> DROP <字段名>;

案例:删除表tb_class中的字段sex。

具体操作如下:

alter table tb_class drop sex;
数据分析sql入门篇-sql表的操作(下篇1):修改表系列

删除字段前

数据分析sql入门篇-sql表的操作(下篇1):修改表系列

删除字段后

(6)修改字段备注:

语法:

1)修改表的注释:

alter table <表名> comment '修改后的表的注释';

2)修改表中字段的注释

alter table <表名> modify column <字段名> <字段类型> comment '修改后的字段注释';

案例1:修改表tb_class的注释为’学生班级表’。

具体操作如下:

先查看表tb_class的的详细建表信息:

show create table tb_studentG
数据分析sql入门篇-sql表的操作(下篇1):修改表系列

表tb_class原注释

通过查询结果可知,表tb_class原注释为’班级表’。

执行如下代码,修改表tb_class的注释为’学生班级表’:

alter table tb_class comment '学生班级表';

结果如下:

数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改后表tb_class注释

案例2:修改表tb_class的字段class的注释为’班级’。

具体操作如下:

先查看表tb_class的的详细建表信息:

show create table tb_studentG
数据分析sql入门篇-sql表的操作(下篇1):修改表系列

表中原注释查询结果

通过查看表的详细建表信息可知,原来表中字段class没有注释。

执行如下代码,为表tb_class中字段class添加注释为’班级’:

alter table tb_class modify column class varchar(255) comment '班级';

结果如下:

数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改字段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;
数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改字段顺序前

数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改字段顺序后

案例2:将表tb_class中的字段name放在字段stu_id之后。

具体操作如下:

执行如下代码,可以将字段name放在字段stu_id之后:

alter table tb_class modify name varchar(255) after stu_id;
数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改字段顺序前

数据分析sql入门篇-sql表的操作(下篇1):修改表系列

修改字段顺序后

在上一篇文章「数据分析sql入门篇-sql表的操作(上篇):创建表 查看表结构 表信息」的基础上,本篇文章进一步对「表的操作」中的「修改表」系列进行了详细的语法介绍和解析,为了方便理解,也给出了一系列案例,这些命令作为了解数据库的入门基础都是必不可少的,如果正在学习数据库,可以收藏起来以备不时之需,欢迎小伙伴们留言,一起讨论,共同进步。

下篇文章将会对「表的操作」中的清空表、删除表等一些基本的数据库操作做进一步的介绍,敬请期待呀。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论