摘要:在本教程中,你将了解NULL
,以及如何使用 SQL IS NULL
和 IS NOT NULL
运算符来检验表达式是否为 NULL
。
什么是 NULL
NULL
在 SQL 中是特殊的。NULL
表示数据未知、不适用,甚至不存在。换言之,NULL
表示数据库中的缺失数据。
例如,如果员工没有电话号码,你可以将他们的电话号码存储为空字符串。
但是,如果你在保存员工记录时不知道他们的电话号码,则需要对未知的电话号码使用 NULL
。
NULL
是特殊的,因为任何与 NULL
的比较永远不会导致真或假,而是第三个逻辑结果:未知。
以下语句返回 NULL
SELECT NULL = 5;
Code language: PHP (php)
NULL
值甚至不等于自身,如下所示
SELECT NULL = NULL;
Code language: SQL (Structured Query Language) (sql)
在这个示例中,结果是 NULL
。
你无法使用 比较运算符 等于 (=) 来将值与 NULL
值进行比较。例如,以下语句将不会返回正确的结果
SELECT
employee_id,
first_name,
last_name,
phone_number
FROM
employees
WHERE
phone_number = NULL;
Code language: SQL (Structured Query Language) (sql)
IS NULL 和 IS NOT NULL 运算符
要确定表达式或列是否为 NULL
,请使用 IS NULL
运算符,如下所示
expression IS NULL
Code language: SQL (Structured Query Language) (sql)
如果表达式的结果为 NULL
,则 IS NULL
运算符返回 true
;否则,返回 false
。
要检查表达式或列是否不为 NULL
,请使用 IS NOT
运算符
expression IS NOT NULL
Code language: PHP (php)
如果表达式的值为 NULl
,则 IS NOT NULL
返回 false
;否则,返回 true;
SQL IS NULL 和 IS NOT NULL 示例
在这些示例中,我们将使用 示例数据库 中的 employees
表进行演示。

若要查找所有没有电话号码的员工,请使用 IS NULL
运算符,如下所示
SELECT
employee_id,
first_name,
last_name,
phone_number
FROM
employees
WHERE
phone_number IS NULL;
Code language: PHP (php)

若要查找所有有电话号码的员工,请使用如下语句中所示的 IS NOT NULL
SELECT
employee_id,
first_name,
last_name,
phone_number
FROM
employees
WHERE
phone_number IS NOT NULL;
Code language: SQL (Structured Query Language) (sql)

现在你应该理解 NULL
概念,并知道如何使用 SQL IS
运算符来检查值是否为 NULL
本教程是否有帮助?