SQL の IS NULL
演算子と = NULL
演算子についての深い理解
SQL の IS NULL
演算子と = NULL
演算子は、NULL 値を扱うときの動作が異なるため、初心者は混乱することがよくあります。この記事では、それらの主な違いについて詳しく説明します。
= NULL
リテラルの意味に反して、チェックされる値が NULL の場合、= NULL
は true を返しません。これは 3 値ロジックに基づいて動作し、NULL は未知の値を表します。 WHERE
句では、= NULL
が false として解釈され、対応する行が結果セットから除外されます。
IS NULL
対照的に、IS NULL
は NULL 値を明示的にテストし、チェックされた値が NULL の場合は true を返し、それ以外の場合は false を返します。この動作は、NULL が未知の値または欠損値を表す実際の状況と一致しています。
いつどの演算子を使用するか
これらの違いを理解したところで、各演算子の使用に適したシナリオを次に示します。
= NULL
: 不明な値を持つ行を結果セットから除外する必要がある場合に使用します。これには、値が NULL であるか、NULL の可能性がある行が含まれます。 IS NULL
: この演算子を使用して、値が NULL かどうかを具体的に確認します。これは、NULL 値を明示的に含む行を取得する場合に特に便利です。 例
次のデータを含むテーブルについて考えてみましょう:
ID | Name | Age |
---|---|---|
1 | John | 25 |
2 | Mary | NULL |
3 | Bob | 30 |
クエリ 1:
SELECT * FROM Table WHERE Age = NULL;
結果:
句は WHERE
条件を false として扱い、NULL 値を持つ行を除外するため、= NULL
は行を返しません。
クエリ 2:
SELECT * FROM Table WHERE Age IS NULL;
結果:
句は WHERE
を使用して NULL 値のみをチェックするため、IS NULL
は行 2 (Mary) を返します。
結論
SQL クエリを作成する場合、IS NULL
と = NULL
の違いを理解することが重要です。特定のニーズに基づいて適切な演算子を選択することで、正確で有意義な結果が保証されます。
以上がSQL の「IS NULL」演算子と「= NULL」演算子の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。