空值的约束条件之unique约束

《数据库系统概论》(第5版)P120:

3.空值的约束条件

属性定义(或者域定义)中有NOT NULL约束条件的不能取空值,码属性不能取空值。
课件中:空值的约束条件为:

有NOT NULL约束条件的不能取空值

加了UNIQUE限制的属性不能取空值

码属性不能取空值

关于“加了UNIQUE限制的属性不能取空值”,创建表时,将属性设置为unique null约束。
MySQL8.0.22版本:

create table Book
(
Bookid varchar(20) primary key not null,
Bookname varchar(40) unique,
Typeid int,
Author varchar(30),
Price varchar(10),
Regdate datetime,
State varchar(10),
constraint fk_图书分类 foreign key (Typeid) references Booktype(Typeid)
);
INSERT INTO book VALUES ('141701', null, '1', '乔斯坦·贾德', '38', '20171010', '可借');
INSERT INTO book VALUES ('141702', null, '1', '乔斯坦·贾德', '38', '20171010', '可借');

两个插入语句均执行成功,查询:

select * from book;

结果如下图:

在这里插入图片描述
在SQL server 2014中,设置Cname为unique null约束,
在这里插入图片描述
执行代码:

insert into Course values('16020022',null,48,3);

成功,
插入:

insert into Course values('16020024',null,48,3);

失败,错误提示为:

在这里插入图片描述
查询显示:

在这里插入图片描述
若将属性定义为unique not null,则MySQL和SQL Server中均不允许插入空值。
MySQL中:
在这里插入图片描述

SQL Server中:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值