PostgreSQL IS NULL 运算符用法与实例

本文介绍了在 PostgreSQL 中如何使用 IS NULL 运算符检查一个值是不是 NULL

PostgreSQL IS NULL 是一个布尔运算符,它检查一个值是不是 NULLNULL 值是一个特殊的值,它表示什么都没有,它即不是空字符串也不是假(false)。

PostgreSQL IS NULL 语法

PostgreSQL IS NULL 是一个单目比较运算符,只需要一个操作数。IS NULL 运算符的语法是:

expr IS NULL
expr IS NOT NULL

说明:

  • expr 可以是一个字段名、一个值或者一个表达式。
  • IS NOT NULLIS NULL 的否定运算。

IS NULLIS NOT NULL 可以用在 SELECT 语句或者 WHERE 子句中。

PostgreSQL IS NULL 运算规则

当 PostgreSQL IS NULL 运算符左侧的操作数是 NULL 时,IS NULL 运算符返回 t,否则返回 f

SELECT
    NULL IS NULL "NULL IS NULL",
    0 IS NULL "0 IS NULL",
    1 IS NULL "1 IS NULL";
 NULL IS NULL | 0 IS NULL | 1 IS NULL
--------------+-----------+-----------
 t            | f         | f

IS NOT NULLIS NULL 的否定运算。如果 IS NOT NULL 左侧的操作数不是 NULL 时,IS NOT NULL 运算符返回 t,否则返回 f

SELECT
    NULL IS NOT NULL "NULL IS NOT NULL",
    0 IS NOT NULL "0 IS NOT NULL",
    1 IS NOT NULL "1 IS NOT NULL";
 NULL IS NOT NULL | 0 IS NOT NULL | 1 IS NOT NULL
------------------+---------------+---------------
 f                | t             | t

PostgreSQL IS NULL 实例

我们将使用 Sakila 示例数据库 中的表进行演示,请您先在 PostgreSQL 中安装 Sakila 示例数据库

在 Sakila 示例数据库中, staff 表存储了 DVD 租赁商店中的职员信息。

staff 表中, picture 中存储了职员的照片文件, 要从 staff 表中查询那些没有上传图片的职员, 需要检查 picture 是否为 NULL, 请使用以下带有 IS NULL 的 SQL 语句:

SELECT
    first_name, last_name, picture
FROM
    staff
WHERE
    picture IS NULL;
 first_name | last_name | picture
------------+-----------+---------
 Mike       | Hillyer   | <null>
 Jon        | Stephens  | <null>

结论

在本文中,我们学习了 PostgreSQL 中 IS NULLIS NOT NULL 比较运算符的语法和用法。本文要点如下:

  • IS NULLIS NOT NULL 是单目比较运算符。
  • 使用 IS NULL 运算符检查一个值是否是 NULL
  • IS NOT NULL 运算符是 IS NULL 的否定操作。
  • NULL IS NULL 的结果是真。