likes
comments
collection
share

MySQL的默认值约束(Default),数据库设计必备

作者站长头像
站长
· 阅读数 11

一、默认值约束简介

默认值(Default)的完整称呼是默认值约束(Default Constraint)。 MySQL 默认值约束用来指定某列的默认值。

例如女性员工较多,性别就可以默认为“女”。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为“女”。

二、在创建表时设置默认值约束

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

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

示例1,创建数据表 demo_user,指定sex性别默认为女,city城市默认为北京。

drop table if exists demo_user;
create table if not exists demo_user(
id int(11) primary key,
sex varchar(3) DEFAULT '女',
city varchar(10) DEFAULT '北京'
);

-- 插入测试数据
insert into demo_user(id) values(1);
insert into demo_user(id,sex) values(2,'男');
insert into demo_user(id,city) values(3,'上海');
-- 查询结果
select * from demo_user;

结果如下,所有的sex和city字段,没有设定要插入的数据的情况下,就会采用默认值存储。

MySQL的默认值约束(Default),数据库设计必备

三、在修改表时添加默认值约束

有两种语法,分别是CHANGE和MODIFY子句。

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

示例2,修改数据表 demo_user,city城市默认为天津。

-- 	使用CHANGE子句
alter table demo_user CHANGE COLUMN city city varchar(10) DEFAULT '天津';
-- 	使用MODIFY子句
alter table demo_user MODIFY COLUMN city varchar(10) DEFAULT '天津';
insert into demo_user(id) values(4);
select * from demo_user;

运行结果如下,默认值变为天津。

MySQL的默认值约束(Default),数据库设计必备

四、删除默认值约束

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

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

示例3,修改数据表 demo_user,将city字段默认值设置为null,对于非空字段依然可以这样设置。

alter table demo_user MODIFY COLUMN city varchar(10) DEFAULT NULL;