SQL语言 --- 空值的处理


(1)空值就是“不知道”或“不存在”或“无意义”的值。

(2)一般有以下几种情况:
①该属性应该有一个值,但目前不知道它的具体值;

②该属性不应该有值;

③由于某种原因不便于填写。

(3)所以空值是一个很特殊的值,含有不确定性。对关系运算带来特殊的问题,需要做特殊的处理。

一.空值的产生

例子:向SC表中插入一个元组,学生号为“201215126”,课程号是“1”,成绩为空。

INSERT INTO SC(Sno,Cno,Grade)
VALUES('201215126','1',NULL);

另一种写法:

INSERT INTO SC(Sno,Cno)
VALUES('201215126','1');

二.空值的判断

判断一个属性的值是否为空值,用IS NULL或IS NOT NULL来表示。

例子:从Student表中找出漏填了数据的学生信息。

SELECT * 
FROM Student
WHERE Sname IS NULL OR Ssex IS NULL OR Sage IS NULL OR Sdept IS NULL;

三.空值的约束条件

属性定义(或者域定义)中:

a.有NOT NULL约束条件的不能取空值;
b.加了UNIQUE限制的属性不能取空值;
c.码属性不能取空值。

四.空值的算术运算、比较运算和逻辑运算

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

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

(3)有UNKNOWN后,传统二值(TRUE、FALSE)逻辑就扩展成了三值逻辑。
在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llurran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值