mysql怎么更改表中某字段的数据类型?

来自:互联网
时间:2020-10-23
阅读:

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 changed
mysql> 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: 0
mysql> 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),修改成功。

返回顶部
顶部