SQL 为 NULL

摘要:在本教程中,你将了解NULL,以及如何使用 SQL IS NULLIS 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 NULLCode language: SQL (Structured Query Language) (sql)

如果表达式的结果为 NULL,则 IS NULL 运算符返回 true;否则,返回 false

要检查表达式或列是否不为 NULL,请使用 IS NOT 运算符

expression IS NOT NULLCode language: PHP (php)

如果表达式的值为 NULl,则 IS NOT NULL 返回 false;否则,返回 true;

SQL IS NULL 和 IS NOT NULL 示例

在这些示例中,我们将使用 示例数据库 中的  employees 表进行演示。

employees_table

若要查找所有没有电话号码的员工,请使用 IS NULL 运算符,如下所示

SELECT
	employee_id,
	first_name,
	last_name,
	phone_number
FROM
	employees
WHERE
	phone_number IS NULL;Code language: PHP (php)

试一试

SQL IS example

若要查找所有有电话号码的员工,请使用如下语句中所示的 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)

试一试

SQL IS NOT NULL example

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

本教程是否有帮助?