MySQL 如何在现有的MySQL表中添加带有默认值的列?
在我们平常的开发工作中,有时候我们需要向已有的 MySQL 数据表中添加一列,而且这一列需要设置默认值,下面就会详细介绍如何在现有的 MySQL 表中添加带有默认值的列。
阅读更多:MySQL 教程
1. ALTER TABLE 语句介绍
ALTER TABLE 语句用于修改现有的数据表结构,包括添加、删除、修改列和索引等等。
ALTER TABLE 语句的语法如下:
ALTER TABLE table_name action;
其中 table_name 为需要修改的表名称,action 为需要进行的操作,可以是 ADD、DROP、MODIFY、CHANGE 等等。
2. ALTER TABLE ADD COLUMN 添加列
我们可以使用 ALTER TABLE ADD COLUMN 语句来向 MySQL 数据表中添加新的列。
添加列的语法如下:
ALTER TABLE table_name ADD COLUMN column_name datatype DEFAULT default_value;
其中,table_name 为需要添加列的数据表名称;column_name 为需要添加的列名;datatype 为需要添加列的数据类型;default_value 则为需要设置列的默认值。
下面是一个具体的示例:我们向 student 表中添加一个 name_en 列,该列的数据类型为 varchar,限制长度为 100,且默认值为 ‘No English Name’。
ALTER TABLE student ADD COLUMN name_en varchar(100) DEFAULT 'No English Name';
3. ALTER TABLE MODIFY COLUMN 修改列
如果我们已经在 MySQL 数据表中添加了一个列,但是后来发现该列的默认值不对或者数据类型不适合当前业务需求,那么就需要使用 ALTER TABLE MODIFY COLUMN 语句来修改该列的信息。
修改列的语法如下:
ALTER TABLE table_name MODIFY COLUMN column_name datatype DEFAULT default_value;
其中,table_name 为需要修改列的数据表名称;column_name 为需要修改的列名;datatype 为需要修改列的数据类型;default_value 则为需要设置列的默认值。
下面是一个具体的示例:我们已经在 student 表中添加了 name_en 列,但是我们希望将该列的数据类型改为 TEXT,并设置默认值为 ‘No English’。
ALTER TABLE student MODIFY COLUMN name_en TEXT DEFAULT 'No English';
4. 练习
假设我们的 MySQL 数据表为:
id | name | age |
---|---|---|
1 | Alice | 20 |
2 | Bob | 18 |
请你向该数据表中添加一列 gender,数据类型为 ENUM,枚举值为 ‘M’ 和 ‘F’,默认值为 ‘F’。
请根据上面的介绍,自行编写 SQL 语句进行操作。
结论
通过本篇文章的学习,我们了解到了如何在 MySQL 数据表中添加带有默认值的列。我们可以使用 ALTER TABLE ADD COLUMN 和 ALTER TABLE MODIFY COLUMN 语句来实现向已有的表中添加、修改列的信息。