見出し画像

SQLの「WHERE句」と条件式 - ほしい情報だけ取りだす

WHERE句は、データベースから特定の条件を満たすレコードのみを選択するために利用されます。特定の条件に基づいてデータをフィルタリングしたり、検索したりすることができます。
WHERE句でよく使う記述を6つ紹介します。

1. WHERE句+比較演算子 (カラムの値を比較)

比較演算子とは、以下のようなものです。

  • = 等しい

  • <>または!= 等しくない

  • < より小さい

  • > より大きい

  • <= 以下

  • >= 以上

クエリでは以下のように記述します。

-- 列と値が同じレコードだけ抽出
SELECT * FROM テーブル名 WHERE 列 = 値;

-- 列が値より大きいレコードだけ抽出
SELECT * FROM テーブル名 WHERE 列 > 値;

2.WHERE句+論理演算子(条件追加)

複数の条件を組み合わせる場合には、論理演算子(AND、OR、NOT)を使用して条件を結合します。

-- 条件1かつ条件2
SELECT * FROM テーブル名 WHERE 条件1 AND 条件2;

-- 条件1または条件2
SELECT * FROM テーブル名 WHERE 条件1 OR 条件2;

-- 条件と一致するものは除外
SELECT * FROM テーブル名 WHERE NOT 条件;

3.WHERE句+LIKE演算子(文字列検索)

LIKE演算子とワイルドカードによって、文字列のパターンマッチングを行い、特定のパターンに一致するデータをフィルタリングできます。

-- ワイルドカード(%) は0文字以上の任意の文字列を表す
SELECT * FROM テーブル名 WHERE 列 LIKE 'abc%';

-- アンダーバー(_) は1文字の任意の文字を表す
SELECT * FROM テーブル名 WHERE 列 LIKE '_bc';

4.WHERE句+IN演算子(いずれかに一致)

指定した値のいずれかに一致するデータをフィルタリングできます。同じ結果を得るためにOR演算子を使用することもできますが、IN演算子はよりシンプルに書けます。

-- 値1または2または3に一致するものを抽出
SELECT * FROM テーブル名 WHERE 列 IN (値1, 値2, 値3);

5.WHERE句+NULL(NULL値の扱い)

NULL値を扱う場合には、IS NULL演算子またはIS NOT NULL演算子を使用して、NULL値をフィルタリングできます。

-- 列がnullの場合のみ抽出
SELECT * FROM テーブル名 WHERE 列 IS NULL;

-- 列がnullではない場合のみ抽出
SELECT * FROM テーブル名 WHERE 列 IS NOT NULL;

6.WHERE句+BETWEEN演算子(範囲指定)

指定した範囲内にある値を持つ行を選択できます。値が等しい場合も含まれます。数値や日付など、順序があるデータ型に対して使用します。

-- 値1から値2の間に該当する値を持つレコードを抽出
SELECT * FROM テーブル名 WHERE 列 BETWEEN 値1 AND2;

上記6つは、WHERE句の表現として紹介しましたが、HAVING句(GROUP BY句の集計結果に対して条件を指定する)で使用することもできます。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?