MySQL 默认值(DEFAULT)
【摘要】 默认值(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)