在 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` 的行。

注意:空值被认为是 `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` 的行。

IS NULL 结合 COUNT()
我们可以使用 COUNT() 函数与 `IS NULL` 来计算空字段的行数。例如:
SELECT COUNT(*)
FROM Employee
WHERE email IS NULL;
这里,SQL 查询检索 `Employee` 表中 `email` 列的值为 `NULL` 的所有行的计数。

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