空值的产生
INSERT INTO SC(Sno,Cno,Grade) //grade可以缺省
VALUES( '201215126' ,'1' , NULL ); //NULL可以缺省
空值的判断
SELECT *
FROM Student
WHERE Sname IS NULL OR Sage IS NULL OR Sdept IS NULL OR Sdept IS NULL ;
3. 空值的约束条件 (3)
1.属性定义或者域定义有not null的约束条件的不能取空值
2.加了UNIQUE的 不能取空值
SQL UNIQUE 约束也称“唯一约束”,设置了 UNIQUE 约束的字段,每条记录的值都必须是唯一的,因此 UNIQUE 约束可以防止两条记录在某个字段上出现重复值。例如在 CUSTOMERS 表中,要防止两个或者多个顾客出现相同的姓名。
UNIQUE 可以约束表的一个字段,也可以约束多个字段。此外,设置了 UNIQUE 约束的字段可以出现 NULL 值。
3.码属性 不能取空值
4. 空值的算术运算、比较运算和逻辑运算
- 空值与另一个值(包括另一个空值)的算术运算的结果为空值
- 空值与另一个值(包括另一个空值)的比较运算的结果为 UNKNOWN
- 有 UNKNOWN 后,传统的逻辑运算中二值(TRUE,FALSE)逻辑就扩展成了三值逻辑
AND、OR、NOT 的真值表如下表所示,其中 T 表示 TRUE,F 表示 FALSE,U 表示 UNKNOWN。