您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

ALTER 命令修改表

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

数据表;

查看建表的 语句;

表字段数据类型;

新增、、表字段;

1. 数据表

表命令很简单:

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

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

2. 查看建表 语句

表字段类型命令 :

 命令 : SHOW CREATE table_name;

执行结果如下图:

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

CREATE TABLE `new_student` (
  `id` int() unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar() NOT NULL DEFAULT '无名',
  `age` int() unsigned NOT NULL DEFAULT '0',
  `id_number` varchar() 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() CHARACTER 
SET utf8 COLLATE utf8_general_ci 
NOT NULL DEFAULT '无名' AFTER `id`;

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

执行结果如下图 :

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` () UNSIGNED NOT NULL DEFAULT  COMMENT '性别 : 1:男 2:女' AFTER `id_number`;

执行结果如下图:

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

5. 表字段

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

ALTER TABLE `new_student` DROP COLUMN `sex`;

执行结果如下图:

6. 表字段

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

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

执行结果如下图:

7. 表字段认值

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

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

执行结果如下图:

8.小结

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


联系我
置顶