SQL IS NULL 運算子

摘要:在本教程中,您將學習關於 NULL 的知識,以及如何使用 SQL IS NULL 運算子來測試一個值是否為 NULL

資料庫中的 NULL 簡介 #

在資料庫領域,NULL 是一個標記,表示資料庫中未知或缺失的資料。

例如,如果您在儲存員工記錄時不知道他們的電話號碼,您可以使用 NULL 來表示未知的電話號碼。

NULL 很特殊,因為您無法將其與任何值進行比較,甚至與 NULL 本身也不行。

以下語句將 NULL 與數字 5 進行比較,結果為 NULL

SELECT
  NULL = 5 AS result;Code language: SQL (Structured Query Language) (sql)

試一試

輸出

 result
--------
 NULLCode language: SQL (Structured Query Language) (sql)

NULL 不等於它自身,如以下語句所示

SELECT
  NULL = NULL AS result;Code language: SQL (Structured Query Language) (sql)

試一試

輸出

 result
--------
 NULLCode language: SQL (Structured Query Language) (sql)

您不能使用等於號(=)來檢查一個值是否為 NULL

例如,以下語句嘗試查詢沒有電話號碼的員工

SELECT
  first_name,
  last_name,
  phone_number
FROM
  employees
WHERE
  phone_number = NULL;Code language: SQL (Structured Query Language) (sql)

試一試

輸出

 first_name | last_name | phone_number
------------+-----------+--------------
(0 rows)Code language: SQL (Structured Query Language) (sql)

IS NULL 運算子 #

要測試一個值是否為 NULL,您需要使用 IS NULL 運算子

expression IS NULLCode language: SQL (Structured Query Language) (sql)

如果表示式的結果是 NULLIS NULL 運算子返回 true。否則,它返回 false

IS NOT NULLIS NULL 運算子的結果取反

expression IS NOT NULLCode language: SQL (Structured Query Language) (sql)

如果表示式是 NULLIS NOT NULL 返回 false,否則返回 true

SQL IS NULL 運算子示例 #

我們將使用示例資料庫中的 employees 表進行演示。

employees_table

以下查詢使用 IS NULL 運算子來查詢沒有電話號碼的員工

SELECT
  first_name,
  last_name,
  phone_number
FROM
  employees
WHERE
  phone_number IS NULL;Code language: SQL (Structured Query Language) (sql)

試一試

 first_name | last_name  | phone_number
------------+------------+--------------
 John       | Russell    | NULL
 Karen      | Partners   | NULL
 Jonathon   | Taylor     | NULL
 Jack       | Livingston | NULL
 Kimberely  | Grant      | NULL
 Charles    | Johnson    | NULLCode language: SQL (Structured Query Language) (sql)

要查詢所有有電話號碼的員工,您可以使用 IS NOT NULL 運算子,如下所示

SELECT
  first_name,
  last_name,
  phone_number
FROM
  employees
WHERE
  phone_number IS NOT NULL;Code language: SQL (Structured Query Language) (sql)

試一試

輸出

 first_name  |  last_name  | phone_number
-------------+-------------+--------------
 Steven      | King        | 515.123.4567
 Neena       | Kochhar     | 515.123.4568
 Lex         | De Haan     | 515.123.4569
 Alexander   | Hunold      | 590.423.4567
 Bruce       | Ernst       | 590.423.4568
...Code language: SQL (Structured Query Language) (sql)

摘要 #

  • NULL 代表資料庫中未知或缺失的資料。
  • 使用 IS NULL 檢查一個值是否為 NULL
  • 使用 IS NOT NULL 運算子對 IS NULL 運算子取反。

資料庫 #

本教程是否有幫助?
© .