1.空值的处理
空值就是“不知道”或“不存在”或“无意义”的值。
一般有以下几种情况: 该属性应该有一个值,但目前不知道它的具体值 ;该属性不应该有值 ;由于某种原因不便于填写。
1.空值的产生
空值是一个很特殊的值,含有不确定性。对关系运算带来特殊的问题,需要做特殊的处理
向SC表中插入一个元组,学生号是”201215126”,课程号是”1”,成绩为空。
INSERT INTO SC(Sno,Cno,Grade)
VALUES('201215126 ','1',NULL); /*该学生还没有考试成绩,取空值*/
或
INSERT INTO SC(Sno,Cno)
VALUES(' 201215126 ','1'); /*没有赋值的属性,其值为空值*/
将Student表中学生号为”201215200”的学生所属的系改为空值。
UPDATE Student
SET Sdept = NULL
WHERE Sno='201215200';
2.空值的判断
判断一个属性的值是否为空值,用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;
3.空值的约束条件
属性定义(或者域定义)中: 有NOT NULL约束条件的不能取空值 ;加了UNIQUE限制的属性不能取空值; 码属性不能取空值