美文网首页MySQL 入门教程
12《MySQL 教程》 ALTER 命令修改表

12《MySQL 教程》 ALTER 命令修改表

作者: 木子教程 | 来源:发表于2022-03-21 19:54 被阅读0次

本小节介绍如何对已经建好的数据表进行修改,其中包括对字段的修改和表名称的修改。在实际工作中,有时候原来设计的表可能不太合理,例如:用户名字段原本设计的只有 10 个字符的长度,但是有很多的用户希望开放用户名长度限制,这个时候就需要我们对表进行修改操作,让数据表更加合理。我们从以下几个角度来看下如何修改数据表:

  • 修改数据表名称;
  • 查看建表的 SQL 语句;
  • 修改表字段数据类型;
  • 新增、修改、删除表字段;

1. 修改数据表名称

修改表名称命令很简单:

命令 : ALTER TABLE 旧的表名 RENAME TO 新的表名;

我们使用这条命令将 item_name 数据库中的 student 表修改成 new_student,执行结果如下图:

5e8c9608096dccf708960714.jpg

2. 查看建表 sql 语句

修改表字段类型命令 :

 命令 : SHOW CREATE table_name;

执行结果如下图:


5e8c964c09e7323510030732.jpg

如上图所示 “new_student” 为表名,建表语句为:

CREATE TABLE `new_student` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL DEFAULT '无名',
  `age` int(10) unsigned NOT NULL DEFAULT '0',
  `id_number` varchar(18) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Tips:其中 “student” 为表名称,“id”、“name”、“age”、"id_number"为字段名称,跟在字段名称后面的是字段的数据类型,“UNSIGNED” 表示无符号,"AUTO_INCREMENT"表示自增,"PRIMARY KEY (id)"表示设置 “id” 为业务主键,"NOT NULL DEFAULT ‘无名’“表示默认不为空。且默认值为"无名”。

3. 修改表字段数据类型

修改表字段数据类型命令,以上面 “new_student” 表的 “name” 字段为例,varchar 类型修改为 char类型 :

ALTER TABLE `new_student` 
MODIFY COLUMN `name` char(50) CHARACTER 
SET utf8 COLLATE utf8_general_ci 
NOT NULL DEFAULT '无名' AFTER `id`;

其中 “CHARACTER SET utf8 COLLATE utf8_general_ci” 为新字段类型的字符集和编排方式,默认值为 “无名”,"AFTER id" 表示跟在 id 字段后面。

执行结果如下图 :

5e8c966909316f1b12480845.jpg

Tips:参照上面修改命令格式,将 name 字段数据类型改为 int 命令:
ALTER TABLE new_student MODIFY COLUMN name int(10) NOT NULL DEFAULT '无名' AFTER id;。

4. 新增表字段

新增数据表的字段命令,以新增性别字段为例:

 ALTER TABLE `new_student` 
ADD COLUMN `sex` tinyint(2) UNSIGNED NOT NULL DEFAULT 1 COMMENT '性别 : 1:男 2:女' AFTER `id_number`;

执行结果如下图:

5e8c968809ebc4a413530859.jpg

Tips:其中COMMENT '性别 : 1:男 2:女' 表示该字段的注释说明;。

5. 删除表字段

删除表字段命令如下,以删除上面性别字段为例 :

ALTER TABLE `new_student` 
DROP COLUMN `sex`;

执行结果如下图:

5e8c96bf0900e60f11740776.jpg

6. 修改表字段名称

修改表字段数据类型命令,以 name 字段改为 new_name 为例:

ALTER TABLE `new_student` 
CHANGE COLUMN `name` `new_name` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '无名' AFTER `id`;

执行结果如下图:


5e8c962809f09a9e13620834.jpg

7. 修改表字段默认值

修改表字段默认值命令,以修改 new_name 字段默认值为例 :

ALTER TABLE `new_student` 
MODIFY COLUMN `new_name` char(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '小花' AFTER `id`;

执行结果如下图:

5e8c96eb0928d3d313600808.jpg

8.小结

本小节介绍了如何修改表字段名称、修改字段数据类型、删除表字段、修改表字段名称、修改表字段默认值,需要注意的是,ALTER TABLE 操作的性能对于大表来说会存在问题,因此在实际生产环境中,ALTER TABLE 操作需要谨慎,MySQL 执行大部分修改表结构的方法是用新的结构创建一个空白表,从表汇总查出所有数据插入新表,这样操作对于大数据量的表来说可能需要花费很长时间,所以操作大表之前需要谨慎一些。

相关文章

  • 12《MySQL 教程》 ALTER 命令修改表

    本小节介绍如何对已经建好的数据表进行修改,其中包括对字段的修改和表名称的修改。在实际工作中,有时候原来设计的表可能...

  • HBase Shell

    Create 创建表命令 Alter修改表命令 Put添加、修改数据

  • 如何修改mysql数据库表?

    当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令。 1、 变更表的字段信息: 删...

  • Mysql-Alter命令-修改表结构

    一、新增列 新增ID列 first 表示设置该列为表的第一列 新增普通列 after 表示新增的列在已存在的某一列...

  • HIVE语句

    DDL(data definition) CREATE、ALTER、DROP…… 创建表 修改表 显示命令 操作:...

  • mysql数据库表增添字段,删除字段、修改字段的排列等操作,还不

    修改表指的是修改数据库之后中已经存在的数据表的结构。mysql使用alter table语句修改表。常用的修改表的...

  • MySQL

    修改用户 mysql> alter user root@'localhost' identified by '12...

  • mysql 添加列,修改列,删除列

    【原文出处】MySQL 添加列,修改列,删除列 ALTER TABLE:添加,修改,删除表的列,约束等表的定义。查...

  • mysql修改

    1.修改表结构 语法: mysql> alter table 库名.表名 执行动作 在表格中添加新字段 mysql...

  • mysql-表级别操作

    创建表 查看表信息 修改表信息 alter table tb_name 命令 增加字段:add 修改列类型:mod...

网友评论

    本文标题:12《MySQL 教程》 ALTER 命令修改表

    本文链接:https://www.haomeiwen.com/subject/lkitjrtx.html