数据库空值处理

文章讨论了数据库中空值的产生,如在插入和更新操作时如何产生空值,并强调了有NOTNULL约束、unique限制和码属性的字段不能取空值。同时,介绍了空值在查询时的特殊性,如使用ISNULL而非=,以及空值在算术、比较和逻辑运算中的处理规则。举例说明了如何查询包含空值的数据记录。
摘要由CSDN通过智能技术生成

空值的产生

1.插入时产生空值

sc2有sno,cno,grade属性

INSERT INTO sc2(sno,cno)
values('223344','1');

那么grade将被自动赋值为null

2.更新时产生空值

update student
set sdept =null
where sno='223344';

sdept将被赋值为null

 取空值的限制

1.有not null约束的条件不能取空值

2.有unique限制的属性不能取空值

3.码属性不能取空值

详细可看:http://t.csdn.cn/VBSiq

空值的查询

1.select 中的‘is’不能用‘=’代替

select sno,cno
from sc
where grade is null;

2.只有update才能用=null

update student
set sdept =null
where sno ='223344';

空值的比较

算术运算:空值与另一个值的算术运算(包括另一个值为空)结果为空值 

 比较运算:空值与另一个值(包括另一个空值)比较结果为UNKNOWN

逻辑运算:含UNKNOWN,TRUE,FALSE

例子:

找出‘2’号课程低于88分的学生以及缺考的学生学号

SELECT SNO
FROM SC2
WHERE CNO='2' AND (GRADE<88 OR GRADE IS NULL);

查询‘2’号课程低于88分的学号时,不会包含缺考的学生,因为他们GRADE is null 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值