Mysql 简明教程
MySQL - Change Column Type
在 MySQL 中,用户可以灵活地修改字段的数据类型。当您最初为新数据库表中的列设置了错误的数据类型,或者需要调整特定列中值的存储大小时,这将非常有用。
您可以使用 ALTER TABLE 命令修改或更新 MySQL 表中的列类型。
The MySQL ALTER TABLE Command
ALTER TABLE 命令用于修改与数据库表相关的任何数据。这些数据可以是表中的记录或表定义本身。更改列的数据类型是可以使用 ALTER TABLE 命令执行的此类修改之一。
有两种方法可以更改列的数据类型:ALTER TABLE… MODIFY 命令和 ALTER TABLE… CHANGE 命令。
The MySQL ALTER TABLE… MODIFY Command
您可以将 MODIFY 方法与 ALTER TABLE 语句结合使用来更改列/字段数据类型。
Syntax
以下是使用 ALTER TABLE… MODIFY 命令更改列类型时的基本语法 -
ALTER TABLE table_name MODIFY column_name new_datatype;
Example
假设您已使用以下查询创建了一个名为“test_table”的表 -
CREATE TABLE test_table (
field1 INT,
field2 VARCHAR(100),
field3 DATE,
PRIMARY KEY(field1)
);
若要检查表是否已成功创建,请使用 DESC 命令,如下所示 -
DESC test_table;
这将显示表结构,如下所示 -
现在,假设您想将 'field2' 的数据类型从 VARCHAR(100) 更改为 TEXT 以使其更简洁。您可以使用 ALTER TABLE… MODIFY 查询来执行此操作,如下所示 -
ALTER TABLE test_table MODIFY field2 TEXT;
以下是所获得的输出 −
Query OK, 0 rows affected (0.04 sec)
Records: 0 Duplicates: 0 Warnings: 0
若要检查列数据类型是否已成功更改,请使用 DESC 命令,如下所示 -
DESC test_table;
这将显示修改后的表结构,如下所示 -
The MySQL ALTER TABLE… CHANGE Command
您还可以将 CHANGE 方法与 ALTER TABLE 语句结合使用来修改列的数据类型。此方法用于在创建表之后修改与表相关的所有数据。
CHANGE 和 MODIFY 方法之间的唯一区别在于,MODIFY 方法不能重命名列,而 CHANGE 方法可以。
Syntax
以下是使用 ALTER TABLE… CHANGE 命令更改列类型的基本语法 −
ALTER TABLE table_name CHANGE column_name column_name new_datatype;
在使用 CHANGE 方法时,您必须记住在查询中两次指定列名称。
Example
在此示例中,我们使用 ALTER TABLE 命令中的 CHANGE 方法更改了“test_table”中“field3”的数据类型。首先,让我们使用 DESC 命令观察表的当前定义 −
DESC test_table;
以下是产生的表 −
现在,使用 ALTER TABLE… CHANGE 方法,更改“field3”的列类型 −
ALTER TABLE test_table CHANGE field3 field3 VARCHAR(20);
上述代码的输出如下:
Query OK, 0 rows affected (0.03 sec)
Records: 0 Duplicates: 0 Warnings: 0
您可以使用 DESC 命令验证列数据类型是否已更改,如下所示 −
DESC test_table;
我们获得以下表作为输出 −