MySQL中,如何使用SQL语句来修改表中某一个字段的数据类型呢?我们同样使用alter table 这一SQL语句来解决这个问题。

修改字段类型的语法为:alter table <表名> change <字段名> <字段名> <字段的新类型>。

现在我们来尝试把test表中的t_name字段的数据类型由varchar(20)改为varchar(50),并且设置它不能为空值。

1、首先查看一下当前test表的结构

mysql> describe test;

+------------+-------------+------+-----+---------+-------+

| Field      | Type        | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| t_id       | int(11)     | YES  |     | NULL    |       |

| t_name     | varchar(20) | YES  |     | NULL    |       |

| t_password | char(32)    | YES  |     | NULL    |       |

| t_birth    | date        | YES  |     | NULL    |       |

+------------+-------------+------+-----+---------+-------+

4 rows in set (0.00 sec)

2、使用alter table语句来修改字段类型,这里注意,因为我们不修改字段的名称,所以SQL语句中会出现两个t_name,这并不是写错了。后面“t_name varchar(50) not null”这一段跟一个普通创建字段的语法是一样一样的。

mysql> alter table test change t_name t_name varchar(50) not null;

Query OK, 3 rows affected (0.23 sec)

Records: 3  Duplicates: 0  Warnings: 0

3、查看修改过后的结果

mysql> describe test;

+------------+-------------+------+-----+---------+-------+

| Field      | Type        | Null | Key | Default | Extra |

+------------+-------------+------+-----+---------+-------+

| t_id       | int(11)     | YES  |     | NULL    |       |

| t_name     | varchar(50) | NO   |     | NULL    |       |

| t_password | char(32)    | YES  |     | NULL    |       |

| t_birth    | date        | YES  |     | NULL    |       |

+------------+-------------+------+-----+---------+-------+

4 rows in set (0.02 sec)

从结果可以看出来,Type已经变成varchar(50) ,而且Null下面也变成NO了。字段的数据类型已经被完美的修改过来了。

关于MySQL中使用SQL语句修改字段类型,本文就介绍这么多,希望对大家有所帮助,谢谢!

03-14 00:05