摘要:在本教學中,您將學習 NULL
以及如何使用 SQL 的 IS NULL
和 IS NOT NULL
運算子來測試表達式是否為 NULL
。
什麼是 NULL
NULL
在 SQL 中很特別。NULL
表示資料未知、不適用,甚至不存在。換句話說,NULL
代表資料庫中遺失的資料。
例如,如果員工沒有電話號碼,您可以將他們的電話號碼儲存為空字串。
但是,如果您在儲存員工記錄時不知道他們的電話號碼,則需要使用 NULL
表示未知的電話號碼。
NULL
很特別,因為與 NULL
的任何比較都不會產生 true 或 false,而是產生第三種邏輯結果:未知。
以下陳述式會傳回 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 NULL
Code language: SQL (Structured Query Language) (sql)
如果表達式的結果為 NULL
,IS NULL
運算子會傳回 true
;否則,會傳回 false
。
若要檢查表達式或欄位是否不是 NULL
,您可以使用 IS NOT NULL
運算子
expression IS NOT NULL
Code language: PHP (php)
如果表達式的值為 NULL
,IS NOT NULL
會傳回 false
;否則,會傳回 true。
SQL IS NULL 和 IS NOT NULL 範例
在這些範例中,我們將使用範例資料庫中的 employees
資料表進行示範。

若要尋找所有沒有電話號碼的員工,您可以使用 IS NULL
運算子,如下所示
SELECT
employee_id,
first_name,
last_name,
phone_number
FROM
employees
WHERE
phone_number IS NULL;
Code language: PHP (php)

若要尋找所有有電話號碼的員工,您可以使用 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)

現在您應該了解 NULL
的概念,並知道如何使用 SQL 的 IS
運算子來檢查值是否為 NULL
。
本教學對您有幫助嗎?