Developer

【SQL基礎】比較演算子による条件指定
2020.11.30
Lv1

【SQL基礎】比較演算子による条件指定

—–

比較演算子による条件指定

SQL文は「演算子」という記号や文字列を使って値の計算や比較などを行えます。

本ページでは「比較演算子」をご紹介します。

—–

演算子とは

演算子とは足し算や引き算、掛け算や割り算など計算で使用される記号や値の大小を比較する際に使われる記号のことです。

主な演算子の種類として以下の3つがあります。

・比較演算子→イコール(=)、大なり(>)、小なり(<)など比較するときに使われる演算子。

・論理演算子→論理積(AND)や論理和(OR)、論理否定(NOT)などを使って複数の条件を組み合わせた条件式を作ることができます。

・算術演算子→足し算、引き算、掛け算、割り算などで使われる演算子。最も使われるのは、加算、減算、乗算、除算の四則演算です。

 

これらの演算子を使う際のルールとして、記号はすべて半角で入力してください。

また、「<=」や「>=」は<と=の間に空白を入れてはいけません。

—–

比較演算子とは

比較演算子とは、値と値が等しいかどうか、大きいかどうかなどの比較をするための記号や文字列のことです。

WHERE句の検索条件に比較演算子を使用して様々な条件式を書くことができます。主に使用される比較演算子として以下のようなものがあります。

演算子 意味
a=b a と b は等しい
a<=>b a と b は等しい(NULL対応)
a<>b、a!=b a と b は等しくない
a<b a は b よりも小さい
a<=b a は b よりも小さいか等しい
a>b a は b よりも大きい
a>=b a は b よりも大きいか等しい
BETWEEN a AND b a以上b以下
NOT BETWEEN a AND b a以上b以下の範囲外
IS NULL NULL値である
IS NOT NULL NULL値でない
IN(リスト) リスト内のいずれかと等しい
NOT IN リスト内のいずれとも等しくない
LIKE 文字パターンと一致する
NOT LIKE 文字パターンと一致しない

上記演算子を使用する場合は全て半角で入力してください。

また、「<=」や「>=」は<と=の間に空白を入れてはいけないので注意してください。

また、等しいを表すには「=」を使用しますが、対象がNULLの場合(何もない空っぽの状態)は「=」を使用できません。

NULLを判定する場合は「IS NULL」または「IS NOT NULL」を使用します。

 

では最も基本的な演算子を確認していきましょう。


大小の比較

大きさを比較する演算子は「<」、「=<」、「>」、「>=」の4つがあります。

それぞれ「小さい」、「以下」、「大きい」、「以上」を判定しています。

SELECT 5 < 1 , 2 <= 6 , 10 > 10 , 3 >= 0 ;

大小の判定を行い、真の場合は1を返し偽の場合は0を返します。

また、WHERE句の検索条件に比較演算子を使用してレコードを抽出することもできます。

今回は例として以下のようなテーブル(テーブル名:teachers)を使用します。

SELECT *
FROM teachers 
WHERE age < 28 ;

比較演算子「<」を使い年齢が28歳以下のレコードを抽出できました。


等しいかどうかの比較

等しいかどうかを比較する演算子は「=」、「<=>」、「<>」、「!=」の4つあります。

「=」、「<=>」は等しい、「<>」、「!=」は等しくないを判定しています。

SELECT 1 = 1,99 <=> 100, 30 <> 50, 10 != 10;

入力した値が等しいのか等しくないのか比較し、真の場合は1、偽の場合は0を返します。

なお、NULLに関しては<=>演算子以外を使用した場合、どの値と比較してもNULLとなります。

SELECT NULL = 1,NULL <> 1,NULL != 1;

NULL が NULL と等しいかどうかを調べるには <=> を使用します。

 
select NULL <=> 10, NULL <=> NULL;


<=> 演算子では左辺及び右辺に NULL が無い場合は = 演算子と同じです。
そして NULL を NULL と比較すると 1 となり、 NULL を NULL 以外の値と比較すると 0 となります。


今回の学習ポイント

・比較演算子を使うと該当するレコードだけを抽出できる。


練習問題

問題として使用するデータは「SQL練習問題」のものを使用しています。

以下からダウンロード可能です。

以下のようにしてworldcup2014データベースを作成し、インポートしてください。

※worldcup2014.zip解凍してできるworldcup2014.sqlファイルをCドライブ直下に配置した場合。

worldcup2014.sql

[sql] CREATE DATABASE worldcup2014;
USE worldcup2014;
source C:\worldcup2014.sql
[/sql]

1.ランキングが20より高いデータを抽出する。

答え
[sql] SELECT *
FROM countries
WHERE ranking > 20 ;
[/sql]

演算子「>」を使いランキング20以上に該当するデータが抽出されました。

2.身長が195㎝以上、体重90㎏以下の選手を抽出する。

答え
[sql] SELECT *
FROM players
WHERE height > 195 and weight < 90 ;
[/sql]

以上、比較演算子についてでした。

 

 

連載目次リンク

SQL基礎 連載目次

関連する連載リンク

SQL練習問題 一覧まとめ