空值的产生
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.码属性不能取空值
空值的查询
1.select 中的‘is’不能用‘=’代替
select sno,cno from sc where grade is null;
2.只有update才能用=null
1. update student 2. set sdept =null 3. 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