《数据库系统概论》 -- 3.5 空值的处理
定义 空值,就是“不知道”、“不存在”、“无意义”的值
举例 学生年龄应该有一个值,但是还未统计,就是“不知道”
某元组在该属性上不应有值,如缺考学生,成绩为空,即为“不存在”
空值的产生 插入时,未对该属性赋值
INSERT INTO SC (Sno,Cno) VALUES ('201215126','1');
插入时,对该属性赋空值
INSERT INTO SC(Sno,Cno,Grade) VALUES ('201215126','1',NULL);
修改时,将该属性改为空值
UPDATE Student SET Sdept=NULL WHERE Sno='201215200';
外连接产生空值
空值的判断 IS [NOT] NULL
SELECT * FROM Student WHERE Sname IS NULL OR Ssex IS NULL OR Sage IS NULL OR Sdept IS NULL;
空值的约束条件 <属性> UNIQUE
<属性> NOT NULL
空值的运算
空值与其他值(包括空值)的算术运算结果为空值
空值与其他值的逻辑运算如下
空值 AND T == 空值
空值 AND F == F
空值 AND 空值 == 空值
空值 OR T == T
T OR 空值 == T
空值 OR F == 空值
F OR 空值 == 空值
NOT 空值 == 空值
注 WHERE和HAVING子句中,只有条件为T的元组才会被作为结果选出