常用基础 - 添加/删除/修改字段

  • 作者:KK

  • 发表日期:2018.06.02


即使前期设计好了数据表,相关业务功能也已经开发完毕,但后期还是经常有需要修改数据表的,当然我们是尽可能使用工具来修改,然而命令都是需要知道的,总有用得上的时候,起码留个印象吧。

添加字段

ALTER TABLE 表名 ADD 字段名 字段描述;

示例:ALTER TABLE user ADD age TINYINT(3) NOT NULL COMMENT '年龄';

  • 添加时设定默认值

    ALTER TABLE user ADD age TINYINT(3) NOT NULL DEFAULT 0 COMMENT '年龄';,关键词DEFAULT 0

添加字段并位置指定字段之后

ALTER TABLE 表名 ADD 字段名 字段描述 AFTER 指定字段名;

添加到 name 字段之后的示例:ALTER TABLE user ADD age TINYINT(3) NOT NULL COMMENT '年龄' AFTER name;


修改字段

ALTER TABLE 表名 MODIFY COLUMN 字段名 字段描述;

  • 完全修改字段:ALTER TABLE user MODIFY COLUMN age VARCHAR(3) NOT NULL DEFAULT 99 COMMENT '年龄2';

  • 修改字段名称:ALTER TABLE user CHANGE COLUMN username user_name


调整现有字段的位置

ALTER TABLE 表名 CHANGE 要修改的字段名 新的字段名 类型定义 注释 AFTER 哪个字段之后

示例:ALTER TABLE user CHANGE age age VARCHAR(3) NOT NULL DEFAULT 0 COMMENT '年龄' AFTER name;

其实是重新定义这个字段,包括修改它的名字、类型和注释等,但是如果你在修改过程中只声明age VARCHAR(3) NOT NULL而没有注释的话,那这个字段被修改后就会失去注释了,所以要完整定义哦。


删除字段

ALTER TABLE 表名 DROP 字段名

示例:ALTER TABLE user DROP age


练习

/*建表*/
CREATE TABLE user(
    name VARCHAR(10),
    birthday DATE
);

/*查询这张表的摘要,表确实建好了*/
DESC user

/*添加字段*/
ALTER TABLE user ADD age TINYINT(3) NOT NULL COMMENT '年龄';

/*查询这张表的摘要,多了age字段,注意类型是TINYINT*/
DESC user

/*修改字段类型*/
ALTER TABLE user MODIFY COLUMN age VARCHAR(3) NOT NULL COMMENT '年龄2';

/*查询这张表的摘要,age变成了VARCHAR类型*/
DESC user

/*删除字段*/
ALTER TABLE user DROP age;

/*查询这张表的摘要,age没有了*/
DESC user

/*练习完把表删掉吧*/
DROP TABLE user;