MySQL修改字段名
MySQL 中修改表字段名的语法规则如下:
示例1:将数据表 tb_dept1 中的 location 字段名称改为 loc,数据类型保持不变,SQL 语句如下:
示例2:将数据表 tb_dept1 中的 loc 字段名称改为 location,同时将数据类型变为 VARCHAR(60),SQL 语句如下:
由于不同类型的数据在机器中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据记录,因此当数据库表中已经有数据时,不要轻易修改数据类型。
ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;
细节说明:- “旧字段名”指修改前的字段名;
- “新字段名”指修改后的字段名;
- “新数据类型”指修改后的数据类型,如果不需要修改字段的数据类型,将新数据类型设置成与原来一样即可,但数据类型不能为空。
示例1:将数据表 tb_dept1 中的 location 字段名称改为 loc,数据类型保持不变,SQL 语句如下:
ALTER TABLE tb_dept1 CHANGE location loc VARCHAR(50);
使用 DESC 查看表 tb_dept1,会发现字段的名称已经修改成功,结果如下:mysql> DESC tb_dept1; +----------+---------------+---------+--------+---------+-------+ | Field | Type | Null | Key |Default | Extra | +----------+---------------+---------+--------+---------+-------+ | id | int | NO | PRI | NULL | | | name | varchar(30) | YES | | NULL | | | loc | varchar(50) | YES | | NULL | | +----------+---------------+---------+--------+---------+-------+
示例2:将数据表 tb_dept1 中的 loc 字段名称改为 location,同时将数据类型变为 VARCHAR(60),SQL 语句如下:
ALTER TABLE tb_dept1 CHANGE loc location VARCHAR(60);
使用 DESC 查看表 tb_dept1,会发现字段的名称和数据类型均已经修改成功,结果如下: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 | | +----------+---------------+---------+--------+-------------+-------+
温馨提示
CHANGE 也可以只修改数据类型,实现和 MODIFY 同样的效果,方法是将 SQL 语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。由于不同类型的数据在机器中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据记录,因此当数据库表中已经有数据时,不要轻易修改数据类型。