SQL IS NULL

摘要:在本教學中,您將學習 NULL 以及如何使用 SQL 的 IS NULLIS 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 NULLCode language: SQL (Structured Query Language) (sql)

如果表達式的結果為 NULLIS NULL 運算子會傳回 true;否則,會傳回 false

若要檢查表達式或欄位是否不是 NULL,您可以使用 IS NOT NULL 運算子

expression IS NOT NULLCode language: PHP (php)

如果表達式的值為 NULLIS NOT NULL 會傳回 false;否則,會傳回 true。

SQL IS NULL 和 IS NOT NULL 範例

在這些範例中,我們將使用範例資料庫中的 employees 資料表進行示範。

employees_table

若要尋找所有沒有電話號碼的員工,您可以使用 IS NULL 運算子,如下所示

SELECT
	employee_id,
	first_name,
	last_name,
	phone_number
FROM
	employees
WHERE
	phone_number IS NULL;Code language: PHP (php)

試試看

SQL IS example

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

試試看

SQL IS NOT NULL example

現在您應該了解 NULL 的概念,並知道如何使用 SQL 的 IS 運算子來檢查值是否為 NULL

本教學對您有幫助嗎?