概要: このチュートリアルでは、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 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
かどうかを確認する方法がわかるはずです