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

SQLの演算子とは?

演算子とは、数値の計算や、比較などを行うときにしようする記号です。
SQLで使える演算子は、次のように分類されています。

この記事では、SQLで演算子を使う方法について、解説していきます。

算術演算子

加算、減算、乗算、除算を行うときに使用する記号を「算術演算子」といいます。SQLで使用できる算術演算子は以下の通りです。

算術演算子 説明
+ 加算
減算
* 乗算
/ 除算
ポテパンダの一言メモ

算術演算子はすべて半角で書きましょう。また、徐余を求める算術演算子はSQLにないため、OracleデータベースなどであればMOD関数などを使って、徐余を求めます。

算術演算子の使い方

SQLで加算、減算、乗算、除算を行うサンプルです。
算術演算子は、SQLやプログラミング言語などに限らず、一般的に用いられている記号で、SQLでも使い方は他と変わりません。

-- AとBを加算する
SELECT A + B;

-- AとBを減算する
SELECT A - B;

-- AとBを乗算する
SELECT A * B;

-- AとBを除算する
SELECT A / B;

比較演算子

比較演算子は、2つの値の関係を調べる時に用います。たとえば、AとBの値が同値であることを調べたり、数値や文字の大小関係を調べると言った時です。比較演算子は、比較の結果をTRUE(条件に一致)、FALSE(条件に不一致)で返します。

SQLで使用できる比較演算子は以下の通りです。

比較演算子 説明
= 2つの値が等しい
!= または <> 2つの値が等しくない
< 左辺の値が右辺の値より小さい
> 左辺の値が右辺の値より大きい
<= 左辺の値が右辺の値より小さいか等しい
>= 左辺の値が右辺の値より大きいか等しい
IS NULL NULL値であることを判定
IS NOT NULL NULL以外の値であることを判定
LIKE 部分一致
BETWEEN 下限・上限の範囲内に収まっているか
IN いずれかの値と等しい
NOT IN いずれも等しくない

比較演算子の具体的な使い方を見ていきましょう。

= 演算子

=演算子は、左右に指定した値が等しいかどうかを判定します。値が等しい場合はTRUE(0)、等しくない場合は(1)が結果として返ります。SQLのWHERE句に=演算子を使用すると、条件に一致するレコードのみを抽出できます。

SELECT AGE FROM USERS WHERE AGE = 100;

<実行結果>
AGE
-------------
100
100

!= または <> 演算子

!=<>は、左右に指定した値が等しくないかを判定する演算子です。!=<>はどちらを使用しても意味は同じです。

SELECT AGE FROM USERS WHERE AGE != 100;

<実行結果>
AGE
-------------
98
99
101
102

< 演算子

<演算子は、左辺の値が右辺の値より小さいかを判定します。
以下のサンプルSQLでは、<演算子を使って年齢が100歳未満のユーザーを検索しています。

SELECT AGE FROM USERS WHERE AGE < 100;

<実行結果>
AGE
-------------
98
99

> 演算子

>演算子は、左辺の値が右辺の値より大きいかを判定します。
以下のサンプルSQLでは、>演算子を使って年齢が100歳より上のユーザーを検索しています。

SELECT AGE FROM USERS WHERE AGE > 100;

<実行結果>
AGE
-------------
101
102

<= 演算子

<=演算子は、左辺の値が右辺の値より小さいか等しいかを判定します。
以下のサンプルSQLでは、<=演算子を使って年齢が100歳以下のユーザーを検索しています。

SELECT AGE FROM USERS WHERE AGE <= 100;

<実行結果>
AGE
-------------
98
99
100

>= 演算子

>=演算子は、左辺の値が右辺の値より大きいか等しいかを判定します。
以下のサンプルSQLでは、>=演算子を使って年齢が100歳以上のユーザーを検索しています。

SELECT AGE FROM USERS WHERE AGE >= 100;

<実行結果>
AGE
-------------
100
101
102

IS NULL演算子

IS NULL演算子は、指定した値がNULLであることを判定する時に使用します。
レコードの値がNULLのデータを抽出したりする時にIS NULL演算子を使用します。

以下のサンプルSQLでは、IS NULL演算子を使って、スコアがNULLのデータを検索しています。

SELECT NAME, SCORE FROM USERS WHERE SCORE IS NULL;

<実行結果>
NAME      SCORE
----------------
YAMADA    NULL
SUZUKI    NULL
ITO       NULL

SQL Server、PostgreSQLなどのデータベースでは、(ブランク)は文字として扱われ、NULLと明確に区別されます。そのため、(ブランク)のデータに対してIS NULL関数を実行すると、条件不一致となるため注意が必要です。

IS NOT NULL 演算子

IS NOT NULL演算子は、IS NULL演算子の逆で、指定した値がNULL以外であることを判定する時に使用します。

以下のサンプルSQLでは、IS NOT NULL演算子を使って、スコアがNULL以外のデータを検索しています。

SELECT NAME, SCORE FROM USERS WHERE SCORE IS NOT NULL;

<実行結果>
NAME      SCORE
----------------
HAYASHI    100
KATO       90
YAMAMOTO   80
ポテパンダの一言メモ

NULL値の判定にはIS NULLまたはIS NOT NULL関数を使用しましょう。

SQLのルール上、上記以外の比較演算子でNULL値と比較するものは、結果はすべてFALSEになる特性があります。
例えば 、1 != NULLのような比較式があった場合、一見すると条件に一致し、判定結果がTRUEになると思われますが、実際に実行してみると比較結果はFALSEになります。

SQLでNULLを比較する唯一の方法はIS NULLまたはIS NOT NULL関数を使用することです。ぜひ覚えておきましょう。

BETWEEN演算子

BETWEEN演算子は、指定した値が、下限・上限の範囲内に収まっているかを判定するときに使用します。
<判定する値または式> BETWEEN <上限> AND <下限>のようして記述します。

以下のサンプルSQLでは、BETWEEN演算子を使って、スコアが50〜80点のデータを検索しています。

SELECT NAME, SCORE FROM USERS WHERE SCORE BETWEEN 50 AND 80;

<実行結果>
NAME      SCORE
----------------
HAYASHI    50
KATO       60
YAMAMOTO   80

IN 演算子

IN演算子は、指定した値がINの中に指定したリストのいずれかの値と等しいか判定します。
以下のサンプルSQLでは、IN演算子を使って、スコアが50点と80点のデータを検索しています。

SELECT SCORE FROM USERS WHERE SCORE IN( 50, 80 );

<実行結果>
NAME      SCORE
----------------
HAYASHI    50
YAMAMOTO   80

NOT IN 演算子

NOT IN演算子は、IN演算子の逆で、指定した値がINの中に指定したリストのすべてに含まれていないか判定します。
以下のサンプルSQLでは、IN演算子を使って、スコアが50点と80点以外のデータを検索しています。

SELECT SCORE FROM USERS WHERE SCORE NOT IN( 50, 80 );

<実行結果>
NAME      SCORE
----------------
KATO       60

SQLの演算子をマスター

SQLの「算術演算子」「比較演算子」について解説してきました。
別の記事では、AND/ORの「論理演算子」を使った複数条件のSQLを組み立てる方法も解説していますので、こちらもご覧ください。

【関連記事】
SQLで複数条件を指定するにはwhere節でandやorを使う inでの置き換えも可能

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

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

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

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

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

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

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

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

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

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

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