Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

SQLでは、プログラミング言語で使えるのと同じような比較演算子が使えます。むしろ、列のデータをまとめて扱える分、SQLの方が解り易いかもしれません。ここでは、SQLで使える比較演算子の基本について解説します。

比較演算子の基本

プログラミング言語では、変数を比較し、その結果で処理を分岐する書き方がよく使われます。そして、そのような比較で使われることが多いのが、一致していることをチェックする等号「=」と、大小を比較する不等号の「>」や「<」です。

なお、これらの記号は比較演算子と呼ばれ、SQLでもよく使われます。まずは、この比較演算子の基本について解説します。

比較演算子とは

比較演算子は、変数と数値、または変数と別の変数などで大小関係や一致・不一致の関係を調べる記号のことです。先ほど取り上げた「=」、「>」、「<」が使われます。

SQLで使える比較演算子は次の通りです。

< 記号の左右を比較し、左側が小さければ条件に一致(例 1 記号の左右を比較し、左側が大きければ条件に一致(例 10 > 1)
<= 記号の左右を比較し、左右が等しいか左側が小さければ条件に一致(例 1 <= 1 または 1 = 記号の左右を比較し、左右が等しいか左側が大きければ条件に一致(例 1 >= 1 または 10 >= 1)
= 記号の左右が等しい場合に条件に一致
記号の左右が等しくない場合に条件に一致

なお、比較演算子がよく使われるのは、where句で条件を記述するケースですが、それ以外でもいろいろな使い方が可能です。

比較演算子は小学校で習う

ところで、比較演算子の「>」と「<」を何と呼ぶかご存じでしょうか。なお、「>」と「<」は、小学校で習います。そして、「>」は左辺が右辺より小さいことを示す記号で、「〜は〜より小さい」と読み、「<」は左辺が右辺より大きいことを示す記号で、「〜は〜より大きい」と読みます。

なお、比較する数値と一致している場合も含む以下と以上も、いっしょに習います。

プログラミング言語における呼び方

先ほど、比較演算子を読み方を説明しましたが、「>」や「<」の記号そのものを伝えるには不便です。そこでエンジニアは、よく「>」を小なり、また「<」を大なりと呼びます。

なお、記号には英語の呼び方があり、等号の「=」はイコール(equal)です。そのため、文書などでは、「>」はレスザン(less then)または略してLT、「<」はグレーターザン(greater then)または略してGTと書かれていることもあります。

同じように、以下の英語、less than and equalを略してLE、以上の英語、greater than and equalを略してGEです。

比較演算子の使い方

SQLでは、比較演算子を使った意味が通じる書き方であれば、全てのデータ型で使えます。また、SQLの文法に従ってさえいれば、使える場所の制限もありません。そして、比較演算子の結果は、trueまたはfalseを返すことから、where句で指定する条件や、case句で指定する条件など、SQLのどこででも使用可能です。

次から、比較演算子を使った例を紹介します。

比較演算子をwhen句の条件として指定する

SQLのQがクエリーつまり問い合わせを意味するように、SQLとは、データベースを検索して、条件に一致するデータを出力するために使われる言語と言えます。そして、SQLでその条件を設定するのがwhere句であり、条件を指定するために、where句に続けて比較演算子がよく使われます。

比較演算子を使った例

SELECT * FROM sample_table WHERE salary > 250000;

この例では、比較演算子の「>」を使い、「salary > 250000」の条件に一致するレコードを出力します。

比較演算子をcase句の条件として指定する

case句は、プログラム言語の「switch~case」のような、複数の条件に合わせて処理を分岐するための機能です。SQLでは、この条件を指定する際に、比較演算子が使えます。

case句を使った例

SELECT name, score, \
case when score >= 95 then "S" \
case when score >= 80 then "A" \
case when score >= 65 then "B" \
else "C" \
end as level \
* FROM score_table

この例では、csse句でscoreの値をチェックし、その数字に該当するlevelが出力されます。

複数の比較演算子を組み合わせるには

SQLのwhere句で条件を指定する場合、比較演算子を1つだけ使うケースは少なく、複数の比較演算子を組み合わせて条件を作るのが一般的です。そして、その場合、andやorなどの論理演算子もいっしょを使います。

次から、論理演算子と比較演算子の組み合わせ方について解説します。

比較演算子を組み合わせる使い方の基本

まず、比較演算子の結果は、条件に一致していればtrueであり、条件に一致しなければfalseです。それをwhere句に適用すると、trueの場合はクエリーを処理し、falseの場合はクエリーを処理しません。

そして、論理演算子、つまりandやorは、tureまたfalseの組み合わせから、tureまたfalseを出力するので、where句でも使えます。

論理演算子と比較演算子の組み合わせの例

where ( salary > 250000 ) and ( salary < 300000 )

この例では、( salary > 250000 )がtrueで、さらに、( salary < 300000 )もtrueの場合、true and trueであり、where句はtrueとなり、クエリーを処理します。また、それ以外の条件の場合は、クエリーを処理しません。

論理演算子は複数組み合わせる

先ほど、論理演算子のandを使い、2つの比較演算子の結果の両方がtrueなら、クエリーを処理し、falseなら処理しないと解説しましたが、論理演算子は、複数設定することが可能です。

複数の比較演算子を組み合わせた例

where (
   ( salary >  250000 ) and ( salary   25 ) and ( age <= 30 )
  )

この例では、2つの比較演算子を組み合わせたsalaryの条件の結果と、ageの条件の結果を、論理演算子andで計算結果がtrueなら、クエリーを処理します。

ポテパンダの一言メモ

比較演算子の結果がtrueまたはfalseとなることから、論理演算子のnotを組み合わせて結果を反転させ、それを論理演算子で計算させることもできます。しかし、比較演算子の結果と組み合わせる場合は、比較演算子の別の使い方で実現できます。ぜひ、検討してみてください。

between構文で比較する

2つの値の範囲に含まれるかをチェックする場合、比較演算子を使う代わりに、between構文が使えます。なお、between構文は、比較演算子の「>」と「<」を組み合わせたケースと同じです。

between構文の基本

列名の数が値1以上、かつ、値2以下に一致する場合はtrueを返し、一致しなかった場合はfalseを返す。

where 列名 between 値1 and 値2

なお、between構文を比較演算子で書き換えると、次のようになります。

where 列名 >= 値1 and 列名 <= 値2

比較演算子が使えないケース

データベースに格納したデータに対し、比較演算子を使ったSQLで抽出しようとしても、できないデータがあります。そして、その原因は、データがまだ格納されていない状態です。なお、このような状態をSQLで検索すると、nullとして表示されます。このnullには比較演算子が適用できません。nullを判定するには、専用の演算子が必要です。

nullを判定する演算子is null

SQLでは、データが格納されていない状態であるnullを判定するには、専用の演算子is nullを使います。なお、is nullは、チェックした要素がnullなら真を、nullでなければ偽を返す演算子です。そして、これまで解説した比較演算子と同じ使い方が可能です。

そして、nullを表示したくない場合は、nullかどうかを判定し、nullの場合に文字列に置き換えるcoalesce関数も使われます。この関数の使い方は、下の例を参考にしてください。

id null を使ったSQLの例

SELECT name, ¥
coalesce(score, "未登録"), \
case when score is null then "未登録" \
case when score >= 95 then "S" \
case when score >= 80 then "A" \
case when score >= 65 then "B" \
else "C" \
end as level \
* FROM score_table

まとめ

繰り返しになりますが、SQLは、select文のwhere句で条件を指定し、それに一致するデータを抽出して出力するための言語と言ってもいいくらいです。そのため、条件を記述するのに使われる比較演算子は、SQLでよく使われています。ただし、実際のSQLは、論理演算子で複数の条件を組み合わせるなど、簡単ではありません。複雑な比較演算子の使い方をマスターし、スキルアップを目指しましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。