概要: このチュートリアルでは、NULL について学習し、SQL の IS NULL 演算子と IS NOT NULL 演算子を使用して、式が NULL かどうかをテストする方法を学びます。
NULL とは
NULL は SQL では特殊な値です。 NULL は、データが不明、適用不可、または存在しないことを示します。言い換えれば、NULL はデータベース内の欠損データを表します。
たとえば、従業員に電話番号がない場合、電話番号を空の文字列として格納できます。
ただし、従業員レコードを保存するときに電話番号がわからない場合は、不明な電話番号に NULL を使用する必要があります。
NULL は特殊です。なぜなら、NULL との比較は、真または偽ではなく、常に3番目の論理結果である「不明」になるからです。
次のステートメントは 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)式の結果が NULL の場合、IS NULL 演算子は true を返します。それ以外の場合は、false を返します。
式または列が NULL でないことを確認するには、IS NOT NULL 演算子を使用します
expression IS NOT NULLCode 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 かどうかを確認する方法がわかるはずです