SQL语句-约束
提示:除去主键、外键的约束,本文继续讲check、default、unique、not null约束。
1.check约束
意义:保证事物属性的取值在合法的范围内。
代码如下(示例):
create table student
(
id int primary key,
grades int check (grades>=10 and grades <=100)
)
--check约束表示输入的grades的数据的范围必须在10到100之间
insert into student values(1,80)
insert into student values(2,2)
insert into student values(3,90)
insert into student values(4,120)
2.default约束
意义:保证事物的属性一定会有一个值,即设置了默认值
代码如下(示例):
create table student
(
id int primary key,
grades int check (grades>=10 and grades <=100),
sel nchar(1) default('男')
)
insert into student(id,grades) values(1,80)
--未给sel值赋值,此处默认设置sel为男
insert into student values(2,90,'女')
3.unique约束
意义:unique约束,即唯一键约束,保证事物属性的取值不允许重复。
代码如下(示例):
create table student
(
id int primary key,
grades int check (grades>=10 and grades <=100),
sel nchar(1) default('男'),
sname nvarchar(200) unique
)
insert into student values(1,90,'女','张三')
insert into student values(2,70,'男','张三')
--因为unique的限制,sname列属性的数据不能重复
insert into student values(3,80,'男','李四')
insert into student values(null,80,'男','李四')
--主键不能为null
4.not null约束
意义:要求必须为该属性赋一个值,否则语法出错。
若是未给字段限制null,也没有限制not null,即不给该字段赋值,则该字段默认展示为null。
代码如下(示例):
create table student2
(
id int primary key,
grades int check (grades>=10 and grades <=100),
sel nchar(1) default('男'),
sname nvarchar(200) unique not null
)
insert into student2 values(1,90,'女','张三')
insert into student2 values(2,70,'男','')
insert into student2 (id,grades,sel) values(3,80,'男')
null与default的异同点
同:都允许用户不赋值
异:null修饰的字段如果不赋值则默认未null
default修饰的字段如果不赋值则默认为default指定的那个值