とあるITエンジニアたちの備忘録

新米エンジニア5人がお送りする、ちょっとためになる話

WHERE句の条件式 ~論理演算子~ #2

みなさん、こんにちは。

どうも、さいばーきゃっとです。

 

今回は、論理演算子の「OR」と「NOT」について、解説していきます。

 

前回は、論理演算子の概要と「AND」について、解説しました。

itsoldier0901.hatenablog.com

 

OR演算子の使用方法

OR演算子も、AND演算子同様に、WHERE句に複数の条件を指定するときに使用します。

OR演算子は、「前後にある条件のどちらか一方でもTRUEの場合」にTRUEを戻します。

 

・)OR演算子を使用したWHERE句の条件式

f:id:cloudy0901:20160719004311p:plain

 

例えば、以下の成績表から、「点数が80点以上か、またはクラスが3組の生徒」を選択する場合に、OR演算子を使用します。

f:id:cloudy0901:20160719004336p:plain


上記の条件でSQL文を作成すると以下になります。

f:id:cloudy0901:20160719004536p:plain

 

実行結果が以下になります。

f:id:cloudy0901:20160719005332p:plain

 

実行結果を見ると、点数の列が「80点」以上であれば、クラスの列が「3組」以外でも、行が選択されているのが分かりますね。

同様に、クラスの列が「3組」であれば、点数の列が「80点以上」でなくても、行は選択されます。

 

OR演算子の使用方法は、AND演算子と同様に、WHERE句に複数の条件を指定するときに使います。

これらの2つの演算子は、1つの条件だけでは目的のデータを取り出せない場合に使用しますので、覚えておきましょう。

 

NOT演算子の使用方法

NOT演算子は、「後ろに指定した条件がFALSEの場合」にTRUEを戻します。

 

・)NOT演算子を使用したWHERE句の条件式

f:id:cloudy0901:20160719005922p:plain

 

例えば、以下の成績表から、「点数が80点以上ではない」を生徒を選択する場合に、NOT演算子を使用します。

f:id:cloudy0901:20160719004336p:plain

 

上記の条件でSQL文を作成すると以下になります。

f:id:cloudy0901:20160719010242p:plain

 

実行結果が以下になります。

f:id:cloudy0901:20160719010427p:plain

 

実行結果をみてみると、点数の列が「80点以上」の生徒は選択されていません。

このようにNOT演算子は、指定された条件で選択された行以外を選択するときに使用します。

 

NOT演算子のポイント

NOT演算子で、指定できる条件は、比較演算子(>、<、=)だけではありません。

以前紹介したSQL特有の演算子である「BETWEEN」、「LIKE」、「IN」、「IS NULL」にも、NOTで指定することができます。