MySQL 默认值(DEFAULT)

举报
CoderX 发表于 2022/04/20 16:05:57 2022/04/20
【摘要】 默认值(DEFAULT) 默认值(Default)的完整称呼是“默认值约束(Default Constraint)”,用来指定某列的默认值。在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动为这个字段插入默认值。 默认值约束通常用在已经设置了非空约束的列,这样能够防止数据表在录入数据时出现错误。 1.在创建表时设置默认值约束 创建表时可以使用 DEFAULT 关键字设置默认值约束,...

默认值(DEFAULT)

默认值(Default)的完整称呼是“默认值约束(Default Constraint)”,用来指定某列的默认值。在表中插入一条新记录时,如果没有为某个字段赋值,系统就会自动为这个字段插入默认值。

默认值约束通常用在已经设置了非空约束的列,这样能够防止数据表在录入数据时出现错误。

1.在创建表时设置默认值约束

创建表时可以使用 DEFAULT 关键字设置默认值约束,具体的语法格式如下:

 <字段名> <数据类型> DEFAULT <默认值>;

其中,“默认值”为该字段设置的默认值,如果是字符类型的,要用单引号括起来。

示例1 创建数据表tb_dept2, 指定部门位置默认为 xuzhou,SQL 语句和运行结果如下所示。

 mysql> CREATE TABLE tb_dept2(
     -> id INT(11) PRIMARY KEY,
     -> name VARCHAR(22),
     -> location VARCHAR(50) DEFAULT 'xuzhou');
 Query OK, 0 rows affected (0.01 sec)
 ​
 mysql> desc tb_dept2;
 +----------+-------------+------+-----+---------+-------+
 | Field    | Type        | Null | Key | Default | Extra |
 +----------+-------------+------+-----+---------+-------+
 | id       | int(11)     | NO   | PRI | NULL    |       |
 | name     | varchar(22) | YES  |     | NULL    |       |
 | location | varchar(50) | YES  |     | xuzhou  |       |
 +----------+-------------+------+-----+---------+-------+
 3 rows in set (0.00 sec)

2.在修改表时添加默认约束

修改表时添加默认值约束的语法格式如下:

 ALTER TABLE <数据表名>
 CHANGE COLUMN <字段名> <数据类型> DEFAULT <默认值>;

示例2:修改表tb_dept2,将部门默认值修改为nanjing ,SQL 语句和运行结果如下所示。

 mysql> ALTER TABLE tb_dept2 CHANGE COLUMN location  location VARCHAR(50) DEFAULT 'shanghai';
 Query OK, 0 rows affected (0.00 sec)
 Records: 0  Duplicates: 0  Warnings: 0
 ​
 mysql> desc tb_dept2;
 +----------+-------------+------+-----+----------+-------+
 | Field    | Type        | Null | Key | Default  | Extra |
 +----------+-------------+------+-----+----------+-------+
 | id       | int(11)     | NO   | PRI | NULL     |       |
 | name     | varchar(22) | YES  |     | NULL     |       |
 | location | varchar(50) | YES  |     | shanghai |       |
 +----------+-------------+------+-----+----------+-------+
 3 rows in set (0.00 sec)

3.删除默认值约束

修改表时删除默认值约束的语法格式如下:

 ALTER TABLE <数据表名>
 CHANGE COLUMN <字段名> <字段名> <数据类型> DEFAULT NULL;

修改数据表 tb_dept2,将部门位置的默认值约束删除,SQL 语句和运行结果如下所示。

 mysql> ALTER TABLE tb_dept2
     -> CHANGE COLUMN location
     -> location VARCHAR(50) DEFAULT NULL;
 Query OK, 0 rows affected (0.00 sec)
 Records: 0  Duplicates: 0  Warnings: 0
 ​
 mysql> DESC tb_dept2;
 +----------+-------------+------+-----+---------+-------+
 | Field    | Type        | Null | Key | Default | Extra |
 +----------+-------------+------+-----+---------+-------+
 | id       | int(11)     | NO   | PRI | NULL    |       |
 | name     | varchar(22) | YES  |     | NULL    |       |
 | location | varchar(50) | YES  |     | NULL    |       |
 +----------+-------------+------+-----+---------+-------+
 3 rows in set (0.00 sec)
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。