(推荐教程:mysql视频教程)
在 mysql 中,alter table 语句可以改变原有表的结构,例如增加或删减列、更改原有列类型、重新命名列或表等。
其语法格式如下:
alter table <表名> [修改选项]
修改选项的语法格式如下:
{ add column <列名> <类型>
| change column <旧列名> <新列名> <新列类型>
| alter column <列名> { set default <默认值> | drop default }
| modify column <列名> <类型>
| drop column <列名>
| rename to <新表名>
| character set <字符集名>
| collate <校对规则名> }
修改字段数据类型
修改字段的数据类型就是把字段的数据类型转换成另一种数据类型。在 mysql 中修改字段数据类型的语法规则如下:
alter table <表名> modify <字段名> <数据类型>
其中:
表名:指要修改数据类型的字段所在表的名称;
字段名:指需要修改的字段;
数据类型:指修改后字段的新数据类型。
示例:
在 test 数据库中新建 student 数据表,sql 语句和运行结果如下:
mysql> use test;database changedmysql> create table student ( -> id int(4), -> name varchar(20), -> sex char(1));query ok, 0 rows affected (0.09 sec)
使用 desc 查看 student 表结构,sql 语句和运行结果如下:
mysql> desc student;+-------+-------------+------+-----+---------+-------+| field | type | null | key | default | extra |+-------+-------------+------+-----+---------+-------+| id | int(4) | yes | | null | || name | varchar(20) | yes | | null | || sex | char(1) | yes | | null | |+-------+-------------+------+-----+---------+-------+3 rows in set (0.01 sec)
使用 alter table 修改表 student 的结构,将 name 字段的数据类型由 varchar(20) 修改成 varchar(30),sql 语句和运行结果如下所示。
mysql> alter table student -> modify name varchar(30);query ok, 0 rows affected (0.15 sec)records: 0 duplicates: 0 warnings: 0mysql> desc student;+--------+-------------+------+-----+---------+-------+| field | type | null | key | default | extra |+--------+-------------+------+-----+---------+-------+| id | int(11) | yes | | null | || name | varchar(30) | yes | | null | || sex | char(1) | yes | | null | |+--------+-------------+------+-----+---------+-------+6 rows in set (0.00 sec)
语句执行后,发现表 student 中 name 字段的数据类型已经修改成 varchar(30),修改成功。
以上就是mysql怎么更改表中某字段的数据类型?的详细内容。
