MySQL添加字段(附带示例)
随着业务需求的变化,可能需要在已经存在的表中添加新的字段。一个完整字段包括字段名、数据类型、完整性约束。
MySQL 添加字段的语法格式如下:
MySQL 添加字段的语法格式如下:
ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST | AFTER 已存在字段名];
细节说明:- “新字段名”为需要添加的字段的名称;
- FIRST 为可选参数,其作用是将新添加的字段设置为表的第一个字段;
- AFTER 为可选参数,其作用是将新添加的字段添加到指定的“已存在字段名”的后面。
提示:“FIRST”或“AFTER已存在字段名”用于指定新增字段在表中的位置,如果 SQL 语句中没有这两个参数,则默认将新添加的字段设置为数据表的最后一列。
1) 添加无完整性约束条件的字段
【示例1】在数据表 tb_dept1 中添加一个没有完整性约束的 INT 类型的字段 managerId(部门经理编号),SQL 语句如下:ALTER TABLE tb_dept1 ADD managerId INT;使用 DESC 查看表 tb_dept1,会发现在表的最后添加了一个名为 managerId 的 INT类型的字段,结果如下:
mysql> DESC tb_dept1; +-------------+---------------+----------+--------+-----------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------------+----------+--------+-----------+-------+ | id | int | NO | PRI | NULL | | | name | varchar(30) | YES | | NULL | | | location | varchar(60) | YES | | NULL | | | managerId | int | YES | | NULL | | +-------------+---------------+----------+--------+-----------+-------+
2) 添加有完整性约束条件的字段
【示例2】在数据表 tb_dept1 中添加一个不能为空的 VARCHAR(12) 类型的字段 column1,SQL 语句如下:ALTER TABLE tb_dept1 ADD column1 VARCHAR(12) not null;使用 DESC 查看表 tb_dept1,会发现在表的最后添加了一个名为 column1 的 VARCHAR(12) 类型且不为空的字段,结果如下:
mysql> DESC tb_dept1; +-----------+-------------+------+------+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+-------------+------+------+---------+-------+ | id | int | NO | PRI | NULL | | | name | varchar(30) | YES | | NULL | | | location | varchar(60) | YES | | NULL | | | managerId | int | YES | | NULL | | | column1 | varchar(12) | NO | | NULL | | +-----------+-------------+------+------+---------+-------+
3) 在表的第一列添加一个字段
【示例3】在数据表 tb_dept1 中添加一个 INT 类型的字段 column2,SQL 语句如下:ALTER TABLE tb_dept1 ADD column2 INT FIRST;使用 DESC 查看表 tb_dept1,会发现在表第一列添加了一个名为 column2 的 INT 类型字段,结果如下:
mysql> DESC tb_dept1; +-------------+---------------+----------+--------+-------------+--------+ | Field | Type | Null | Key | Default | Extra | +-------------+---------------+----------+--------+-------------+--------+ | column2 | int | YES | | NULL | | | id | int | NO | PRI | NULL | | | name | varchar(30) | YES | | NULL | | | location | varchar(60) | YES | | NULL | | | managerId | int | YES | | NULL | | | column1 | varchar(12) | NO | | NULL | | +-------------+---------------+----------+--------+-------------+--------+
4) 在表的指定列之后添加一个字段
【示例4】在数据表 tb_dept1 中 name 列后添加一个 INT 类型的字段 column3,SQL 语句如下:ALTER TABLE tb_dept1 ADD column3 INT AFTER name;使用 DESC 查看表 tb_dept1,结果如下:
mysql> DESC tb_dept1; +------------+----------------+----------+--------+------------+--------+ | Field | Type | Null | Key | Default | Extra | +------------+----------------+----------+--------+------------+--------+ | column2 | int | YES | | NULL | | | id | int | NO | PRI | NULL | | | name | varchar(30) | YES | | NULL | | | column3 | int | YES | | NULL | | | location | varchar(60) | YES | | NULL | | | managerId | int | YES | | NULL | | | column1 | varchar(12) | NO | | NULL | | +------------+----------------+----------+--------+------------+--------+可以看到,tb_dept1 表中增加了一个名称为 column3 的字段,其位置在指定的 name 字段后面,添加字段成功。