元组的某些属性值是可以为空的
null表示未知值或值不存在 涉及空的任何算术表达式的结果为空 聚集函数会忽略空值 可以返回空值作为结果 我们遵循SQL对空值的处理语义 为了消除重复和分组,空值和其他值同等对待 一种方法是两个空值被认为是相同的 另一种方法是假设每个空值都是不同的 这两种方法都可行,但我们更愿意遵循SQL对空值的处理语义
与空值的比较将返回一个特殊值:unknown 如果用false代替unknown,那么not(A<5)与 A>=5 的结果就会不相 等 使用特殊值unknown的三值逻辑: OR: (unknown or true) = true (unknown or false = unknown (unknown or unknown) = unknown AND: (true and unknown) = unknown (false and unknown) = false (unknown and unknown) = unknown NOT: (not unknown) = unknown
空值
在SQL中,如果谓词P的值为unknown,那么“P is unknown”的值为 真 如果选择谓词的值为unknown,那么选择谓词的结果被认为false
