MySQL 8.x从入门到精通(视频教学版)
上QQ阅读APP看书,第一时间看更新

2.5.3 修改字段名

MySQL中修改表字段名的语法规则如下:

     ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

其中,“旧字段名”指修改前的字段名;“新字段名”指修改后的字段名;“新数据类型”指修改后的数据类型,如果不需要修改字段的数据类型,将新数据类型设置成与原来一样即可,但数据类型不能为空。

【例2.18】将数据表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.19】将数据表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语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。

由于不同类型的数据在机器中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据记录,因此当数据库表中已经有数据时,不要轻易修改数据类型。