SQL语句-约束(三)

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)

此处第二个insert插入数据的就没有插入成功,因为120超出了10到100的范围
在这里插入图片描述

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,'男')

此处不给sname赋值则会报错

null与default的异同点

同:都允许用户不赋值
异:null修饰的字段如果不赋值则默认未null
default修饰的字段如果不赋值则默认为default指定的那个值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值