Skip to the content.

最終更新日:2026年7月17日

まず結論

SQLのANDORNOTは、WHERE句で複数の条件を組み合わせるために使います。

基本情報技術者試験では、次の対応を押さえると選択肢を切りやすくなります。

A AND B
→ AとBの両方を満たす

A OR B
→ AまたはBの少なくとも一方を満たす

NOT A
→ Aを満たさない

さらに、AかBのどちらか一方だけを満たす条件は、次のように表せます。

(A OR B) AND NOT (A AND B)

これは排他的論理和、XORの考え方です。

直感的な説明

二つのグループを考えます。

A:国語が平均点以上
B:数学が平均点以上

「どちらか一方だけ平均点以上」を選びたいなら、次の順番で考えます。

1. AまたはBを満たす人を集める
2. AとBの両方を満たす人を除く

式にすると、次のとおりです。

(A OR B) AND NOT (A AND B)

ベン図では、二つの円の重なりを除いた左右の部分です。

定義・仕組み

AND

ANDは、左右の条件が両方とも真のときだけ真になります。

WHERE A AND B
A B A AND B

OR

ORは、左右の条件の少なくとも一方が真なら真になります。

WHERE A OR B
A B A OR B

NOT

NOTは、条件の真偽を反転します。

WHERE NOT A
A NOT A

排他的論理和

排他的論理和は、AとBのどちらか一方だけが真のときに真になります。

A B XOR

SQLでは、次のように表せます。

WHERE (A OR B) AND NOT (A AND B)
A OR B
→ 少なくとも一方を満たす

NOT (A AND B)
→ 両方を満たすものを除く

このテーマは、基本情報技術者試験の「データベース」「論理演算」「プログラミング」と関係する内容です。公式の出題範囲やシラバスは、IPA:基本情報技術者試験から確認できます。

科目Aでどう出る?

科目Aでは、WHERE句の条件式を読み、どの行が抽出されるかを判断する問題が出ます。

日本語の条件 SQLの考え方
AとBの両方 A AND B
AまたはBの少なくとも一方 A OR B
Aではない NOT A
AかBのどちらか一方だけ (A OR B) AND NOT (A AND B)
AもBも満たさない NOT (A OR B)

特に注意したいのは、ORが「どちらか一方だけ」ではないことです。

A OR B
→ 両方とも真の場合を含む

両方を除きたい場合は、次の形にします。

(A OR B) AND NOT (A AND B)

矛盾する条件を見抜く

次のような式は、結果が0件になります。

(A AND B) AND NOT (A AND B)

同じ条件と、その否定を同時に満たすことはできないからです。

(A OR B) AND NOT (A OR B)

これも同様に矛盾します。

科目Bでどう使う?

科目Bでは、疑似言語やプログラム中の条件分岐を読むときに役立ちます。

たとえば、次の条件を考えます。

if (A or B) and not (A and B)

この条件は、AとBのどちらか一方だけが真のときに処理を実行します。

トレースするときは、次の順番で確認します。

1. Aの真偽を確認する
2. Bの真偽を確認する
3. A OR Bを計算する
4. A AND Bを計算する
5. NOTを反転する
6. 最後のANDを計算する

複雑な条件式は、かっこの内側から小さく分けて計算すると読みやすくなります。

よくある誤解・混同

誤解 正しい理解
ORはどちらか一方だけを表す ORは両方が真の場合も含む
ANDは条件を広げる ANDは両方を満たす必要があるため、通常は対象を絞る
NOTは式全体に自動で掛かる NOTがどの条件に掛かるかは、かっこで確認する
(A OR B) AND NOT (A AND B)は両方を選ぶ 両方の重なりを除き、片方だけを選ぶ
同じ条件とその否定をANDで結んでも結果が出る 矛盾するため結果は0件になる

NOT A AND BNOT (A AND B)の違い

かっこの位置にも注意します。

NOT A AND B

これは、通常は次のように解釈します。

(NOT A) AND B

一方、

NOT (A AND B)

は、AとBが両方とも真である場合を除く条件です。

試験では、迷いを減らすためにかっこを付けて読むのがおすすめです。

まとめ(試験直前用)

  • ANDは両方、ORは少なくとも一方、NOTは否定
  • ORは両方が真の場合も含む
  • どちらか一方だけなら、(A OR B) AND NOT (A AND B)
  • 同じ条件とその否定をANDで結ぶと、結果は0件
  • 複雑な条件式は、かっこの内側から小さく分けて読む
  • ORで集めて、ANDの重なりを除けばXOR

© 2024-2026 stemtazoo. All rights reserved.