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语句修改字段类型,本文就介绍这么多,希望对大家有所帮助,谢谢!