空值就是“不知道”、“不存在”、“无意义”的值,SQL语言中允许某些元组的某些属性在一定情况下取空值。为以下情况:
- 该属性本应有一个值,但暂时不知道它的具体值。
- 该属性不应该有值。
- 由于某种原因不方便填写
空值是一个很特殊的值,含有不确定性。
- 空值的产生——除了一般的产生空值的情况外,外连接也会产生空值。空值的关系运算也会产生空值。
- 空值的判断——判断一个属性的值是否为空,用 is null 或 is not null 来表示。
- 空值的约束条件——属性定义(或者域定义)中有 not null 约束条件的不能取空值,加了 unique 限制的属性不能取空值,码属性不能取空值。
- 空值的算术运算、比较运算、逻辑运算——空值与另一个值(可以是空值)的算术运算的结果为空值、空值与另一个值(可以是空值)的比较运算结果为 unknown ,有了 unknown 后,传统的逻辑运算中二值(ture、false)逻辑就拓展成了三值逻辑。
在查询语句中,只有使 where 和having 字句中的选择条件为 true 的元组才被选出作为输出结果。