ホームページ > データベース > mysql チュートリアル > SQL の「IS NULL」演算子と「= NULL」演算子の違いは何ですか?

SQL の「IS NULL」演算子と「= NULL」演算子の違いは何ですか?

Linda Hamilton
リリース: 2025-01-11 20:21:44
オリジナル
557 人が閲覧しました

What's the Difference Between SQL's `IS NULL` and `= NULL` Operators?

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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート