Mysql的约束条件之not null(非空) 与 default(默认)
我们先创建一个数据库表,这里是创建语句:
create table consumer(
id int,
name char(16),
sex enum('male','female','other')not null,
level enum('vip1','vip2','vip3'),
hobbies set('play','music','read','run')
)
1.非空not null:
现在我们往表内插入内容:
insert into consumer values(1,'xiao','male','vip1','play,music')
运行后,我们来查看表内容:
not null是非空的意思——我们往表内的sex插入null试试:
insert into consumer values(2,'x',null,'vip1','play,music')
数据库报错:
但是别的没设置not null的,就可以为null:
insert into consumer values(2,null,'male','vip1','play,music')
运行后,查看表内容:
可以看到,没设置not null的就可以为空。
除了强制设定not null的,建表后,主键、分区字段等都是非空的。
2.default默认:
已经创建好了表,现在我们往表内插入语句(现在仅插入id和name):
insert into consumer(id,name) values(1,'xiao')
运行,查看表内容:
sex我们没有插入内容,但是有默认值,所以即便不插入,也有默认值’male’。