SQL IS NULL 和 IS NOT NULL

在 SQL 中,`IS NULL` 和 `IS NOT NULL` 用于检查表中的列是否包含 NULL 值。


IS NULL 语法

在 SQL 中,`IS NULL` 条件用于选择指定字段为 `NULL` 的行。其语法如下:

SELECT column1, column2, ...
FROM table
WHERE column_name IS NULL;

这里,

  • `column1, column2, ...` 是表中的列
  • `table` 是我们从中选择数据的表名。
  • `column_name` 是您要检查是否为 `NULL` 的列名。

例如,

-- select rows with NULL email values

SELECT *
FROM Employee
WHERE email IS NULL;

这里,上面的 SQL 查询从 `Employee` 表中检索所有 `email` 列的值为 `NULL` 的行。

How to use IS NULL in SQL
示例:SQL 中的 IS NULL

注意:空值被认为是 `NULL`。但是,空格和 0 不被认为是 `NULL`。


IS NOT NULL

在 SQL 中,`IS NOT NULL` 条件用于选择指定字段为 `NOT NULL` 的行。其语法如下:

SELECT column1, column2, ...
FROM table
WHERE column_name IS NOT NULL;

这里,

  • `column1, column2, ...` 是表中的列
  • `table` 是我们从中选择数据的表名。
  • `column_name` 是您要检查是否为 `NOT NULL` 的列名。

例如,

-- select rows where email is not NULL

SELECT *
FROM Employee
WHERE email IS NOT NULL;

这里,上面的 SQL 查询从 `Employee` 表中检索所有 `email` 列的值为 `NOT NULL` 的行。

How to use IS NOT NULL in SQL
示例:SQL 中的 IS NOT NULL

IS NULL 结合 COUNT()

我们可以使用 COUNT() 函数与 `IS NULL` 来计算空字段的行数。例如:

SELECT COUNT(*)
FROM Employee
WHERE email IS NULL;

这里,SQL 查询检索 `Employee` 表中 `email` 列的值为 `NULL` 的所有行的计数。

How to use IS NULL with COUNT() in SQL
示例:SQL 中的 IS NULL 结合 COUNT()

同样,我们可以使用 `COUNT()` 函数与 `IS NOT NULL` 来计算非空字段的数量。

在结束之前,让我们测试一下您对 SQL IS NULL 和 IS NOT NULL 的知识!您能解决以下挑战吗?

挑战

编写一个 SQL 查询,获取所有尚未完成的特斯拉零件。

假设您有一个名为 Parts 的表。该表的架构如下:

零件

列名

数据类型

part_id

int

part_name

varchar(100)

finished_date

日期

特斯拉正在分析生产情况,以确定哪些零件尚未完成。


您的任务是编写一个 SQL 查询,找出所有未完成的零件及其 ID,假设任何没有 `finished_date` 的零件都是不完整的。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战