SQL NULL 值

SQL NULL 又叫空值,它代表未知数据。NULL 不同于空白或零值。

默认地,表的列可以存放 NULL 值。

1. NULL 值处理

如果表中的某个列是可选的,那么我们可以在不向该列添加值的情况下插入新记录或更新已有的记录。这意味着该字段将以 NULL 值保存。

NULL 值的处理方式与其他值不同。

NULL 用作未知的或不适用的值的占位符。

Note注释:无法比较 NULL 和 0;它们是不等价的。

请看下面的 "Persons" 表:

P_Id LastName FirstName Address City
1 Hansen Ola Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Stavanger

假如 "Persons" 表中的 "Address" 列是可选的。这意味着如果在 "Address" 列插入一条不带值的记录,"Address" 列会使用 NULL 值保存。

那么我们如何测试 NULL 值呢?

无法使用比较运算符来测试 NULL 值,比如 =、< 或 <>。

我们必须使用 IS NULL 和 IS NOT NULL 操作符。

2. IS NULL

我们如何仅仅选取在 "Address" 列中带有 NULL 值的记录呢?

我们必须使用 IS NULL 操作符:

SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NULL

结果集如下所示:

LastName FirstName Address
Hansen Ola
Pettersen Kari

Note提示:请始终使用 IS NULL 来查找 NULL 值。

3. IS NOT NULL

我们如何仅仅选取在 "Address" 列中不带有 NULL 值的记录呢?

我们必须使用 IS NOT NULL 操作符:

SELECT LastName,FirstName,Address FROM Persons WHERE Address IS NOT NULL

结果集如下所示:

LastName FirstName Address
Svendson Tove Borgvn 23

下一章:SQL 通用数据类型

数据类型定义列中存放的值的种类。数据库表中的每个列都要求有名称和数据类型。SQL 开发人员必须在创建 SQL 表时决定表中的每个列将要存储的数据的类型。