ぽかぽかコード日和

とっても暑い夏の日にプログラミングはじめました☀️

【SQL】WHERE句の演算子

WHERE句で条件の絞り込みに使う演算子をまとめました。

比較演算子

基本の比較演算子 意味
= 左右の値が等しい
< 右の値より小さい
> 右の値より大きい
<= 以下
>= 以上
<> 左右の値が等しくない。「!=」でも可能

WHERE 条件1 = 条件2

☀︎条件1と条件2が等しい。

NULL演算子

指定した列の値がNULLである行を取得する。

  • NULLとは、どのような値も格納されていない状態のこと。
    データが不明(unknown)のときと、無意味(not applicable)のときがある。

  • NULLの判定に比較演算子は使えないため、IS演算子を使う。

WHERE 列名 IS NULL

☀︎指定した列の値がNULLである行のみ取得する。

WHERE 列名 IS NOT NULL

☀︎指定した列の値がNULLではない行のみ取得する。

論理演算子

AND演算子・・・かつ

WHERE 条件1 AND 条件2

☀︎両方の条件を満たす行を取得する。

SELECT * 
FROM  customers
WHERE name=’John’ AND age>=20;

20歳以上の'John'の行(レコード)を取得する。

OR演算子・・・または

WHERE 条件1 OR 条件2

☀︎どちらかの条件を満たす行を取得する。

NOT演算子・・・否定

WHERE NOT 条件

☀︎両方の条件に当てはまらない行を取得する。

論理演算子の優先度

NOT → AND → OR の順に評価されるが、 カッコ()でくくると優先順位が上がる。

LIKE演算子

指定した文字列を含んでいる行を取得する。
パターンマッチング。

  • パターン文字列に使うワイルドカード
    %」・・・任意の0文字以上の文字列
    「_(アンダースコア)」・・・任意の1文字
    • 前方一致、後方一致も可能
    • 単なる文字として%や_を使いたいときは、ESCAPE句($)を使う。

WHERE 列名 LIKE ’%パターン文字列%’

☀︎指定した列名でパターン文字列を含んでいる行のみ取得する

BETWEEN演算子

指定した範囲に値が収まっている行を取得する。

WHERE 列名 BETWEEN 値1 AND 値2

☀︎指定した列名で値1〜値2の範囲にある行のみ取得する。

IN/NOT IN演算子

指定した複数の値と一致した行を取得する。

IN演算子

WHERE 列名 IN(値1, 値2, 値3…)

☀︎いずれかの値に一致する行を取得する。

NOT IN演算子

WHERE 列名 NOT IN(値1, 値2, 値3…)

☀︎すべての値に一致しない行を取得する。

ANY/ALL演算子

指定した複数の値と比較し真である行を取得する。

ANY演算子

WHERE 列名 基本の比較演算子 ANY(値1, 値2, 値3…)

☀︎いずれかの値が基本比較演算子で真となる行を取得する。

ALL演算子

WHERE 列名 基本の比較演算子 ALL(値1, 値2, 値3…)

☀︎すべての値が基本比較演算子で真となる行を取得する。


参考にしたサイト