上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语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。
由于不同类型的数据在机器中存储的方式及长度并不相同,修改数据类型可能会影响到数据表中已有的数据记录,因此当数据库表中已经有数据时,不要轻易修改数据类型。