如何更改MySQL表的列的数据类型?

您可以为此使用Modify命令。让我们首先创建一个表。

mysql> create table DemoTable
(
   StudentId varchar(200) not null,
   StudentName varchar(20),
   StudentAge int,
   StudentAddress varchar(20),
   StudentCountryName varchar(20)
);

现在检查表的描述。

mysql> desc DemoTable;

这将产生以下输出-

+--------------------+--------------+------+-----+---------+-------+
| Field              | Type         | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+-------+
| StudentId          | varchar(200) | NO   |     | NULL    |       |
| StudentName        | varchar(20)  | YES  |     | NULL    |       |
| StudentAge         | int(11)      | YES  |     | NULL    |       |
| StudentAddress     | varchar(20)  | YES  |     | NULL    |       |
| StudentCountryName | varchar(20)  | YES  |     | NULL    |       |
+--------------------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

这是将数据类型从varchar更改为BIGINT的查询-

mysql> alter table DemoTable modify StudentId BIGINT(10) UNSIGNED NOT NULL DEFAULT 0;
Records: 0 Duplicates : 0 Warnings : 0

上面,我们已将“ StudentId”列的数据类型从varchar(200)更改为BIGINT(10)。让我们再次检查表的描述。

mysql> desc DemoTable;

这将产生以下输出-

+--------------------+---------------------+------+-----+---------+-------+
| Field              | Type                | Null | Key | Default | Extra |
+--------------------+---------------------+------+-----+---------+-------+
| StudentId          | bigint(10) unsigned | NO   |     | 0       |       |
| StudentName        | varchar(20)         | YES  |     | NULL    |       |
| StudentAge         | int(11)             | YES  |     | NULL    |       |
| StudentAddress     | varchar(20)         | YES  |     | NULL    |       | 
| StudentCountryName | varchar(20)         | YES  |     | NULL    |       |
+--------------------+---------------------+------+-----+---------+-------+
5 rows in set (0.00 sec)