在mysql表中,可以使用“alter table 表名 change 旧字段名 新字段名 数据类型;”语句来修改字段名称;使用“alter table 表名 modify 字段名 新数据类型;”语句来修改字段数据类型。
(推荐教程:mysql视频教程)
修改字段名称
mysql 中修改表字段名的语法规则如下:
alter table 表名 change 旧字段名 新字段名 数据类型;
其中:
旧字段名:指修改前的字段名;
新字段名:指修改后的字段名;
数据类型:指修改后的数据类型,如果不需要修改字段的数据类型,可以将数据类型设置成与原来一样,但数据类型不能为空。
例 1
使用 alter table 修改表 tb_emp1 的结构,将 col1 字段名称改为 col3,同时将数据类型变为 char(30),sql 语句和运行结果如下所示。
mysql> alter table tb_emp1 -> change col1 col3 char(30);query ok, 0 rows affected (0.76 sec)records: 0 duplicates: 0 warnings: 0mysql> desc tb_emp1;+--------+-------------+------+-----+---------+-------+| field | type | null | key | default | extra |+--------+-------------+------+-----+---------+-------+| col3 | char(30) | yes | | null | || id | int(11) | yes | | null | || name | varchar(30) | yes | | null | || deptid | int(11) | yes | | null | || salary | float | yes | | null | |+--------+-------------+------+-----+---------+-------+5 rows in set (0.01 sec)
change 也可以只修改数据类型,实现和 modify 同样的效果,方法是将 sql 语句中的“新字段名”和“旧字段名”设置为相同的名称,只改变“数据类型”。
提示:由于不同类型的数据在机器中的存储方式及长度并不相同,修改数据类型可能会影响数据表中已有的数据记录,因此,当数据表中已经有数据时,不要轻易修改数据类型。
修改字段数据类型
修改字段的数据类型就是把字段的数据类型转换成另一种数据类型。在 mysql 中修改字段数据类型的语法规则如下:
alter table 表名 modify 字段名 新数据类型;
其中:
表名:指要修改数据类型的字段所在表的名称;
字段名:指需要修改的字段;
新数据类型:指修改后字段的新数据类型。
例 2
使用 alter table 修改表 tb_emp1 的结构,将 name 字段的数据类型由 varchar(22) 修改成 varchar(30),sql 语句和运行结果如下所示。
mysql> alter table tb_emp1 -> modify name varchar(30);query ok, 0 rows affected (0.15 sec)records: 0 duplicates: 0 warnings: 0mysql> desc tb_emp1;+--------+-------------+------+-----+---------+-------+| field | type | null | key | default | extra |+--------+-------------+------+-----+---------+-------+| col1 | int(11) | yes | | null | || id | int(11) | yes | | null | || name | varchar(30) | yes | | null | || col2 | int(11) | yes | | null | || deptid | int(11) | yes | | null | || salary | float | yes | | null | |+--------+-------------+------+-----+---------+-------+6 rows in set (0.00 sec)
语句执行后,发现表 tb_emp1 中 name 字段的数据类型已经修改成 varchar(30),修改成功。
以上就是mysql表中怎么修改字段?的详细内容。