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;

我们获得以下表作为输出 −

Changing Column type Using Client Program

我们还可以使用客户端程序更改列类型。

Syntax

Example

以下是这些程序 −