← ブログ一覧に戻る
SQLのWHERE句完全ガイド(AND・OR・LIKE・BETWEEN・IN)
更新:

SQLのWHERE句完全ガイド(AND・OR・LIKE・BETWEEN・IN)

WHERE句とは

WHERE句は、テーブルから特定の条件に一致するデータだけを取得するための絞り込み命令です。膨大なデータの中から「欲しいデータだけ」を取り出す、SQLの中で最も頻繁に使う機能のひとつです。

SELECT * FROM employees WHERE department = '営業部';

WHERE句をブラウザで今すぐ試してみよう

SQLLearnでは登録不要・インストール不要でWHERE句の練習問題をブラウザ上で今すぐ実行できます。

無料で今すぐ練習する →

比較演算子の使い方

WHERE句では以下の比較演算子が使えます。

  • =:等しい
  • != または <>:等しくない
  • > / >=:より大きい / 以上
  • < / <=:より小さい / 以下
-- 給与が30万円以上の社員
SELECT name, salary FROM employees WHERE salary >= 300000;

-- 営業部以外の社員
SELECT name, department FROM employees WHERE department != '営業部';

AND・OR で複数条件を組み合わせる

複数の条件を組み合わせるときは AND(すべての条件を満たす)と OR(どちらかの条件を満たす)を使います。

-- 営業部かつ給与30万円以上
SELECT name FROM employees
WHERE department = '営業部' AND salary >= 300000;

-- 営業部または開発部
SELECT name FROM employees
WHERE department = '営業部' OR department = '開発部';

注意: ANDとORを混在させるときは () で優先順位を明示しましょう。括弧なしだとANDがORより先に評価されます。

-- ❌ 意図と異なる場合がある
WHERE department = '営業部' OR department = '開発部' AND salary >= 300000;

-- ✅ 括弧で明示する
WHERE (department = '営業部' OR department = '開発部') AND salary >= 300000;

LIKE で文字列のあいまい検索

LIKEは文字列の部分一致検索に使います。%(0文字以上の任意の文字列)と _(任意の1文字)をワイルドカードとして使います。

-- 「田」で始まる名前
SELECT * FROM employees WHERE name LIKE '田%';

-- 「部」で終わる部署名
SELECT * FROM employees WHERE department LIKE '%部';

-- 名前に「中」を含む
SELECT * FROM employees WHERE name LIKE '%中%';

BETWEEN で範囲指定

BETWEENは指定した範囲内のデータを取得します。両端の値を含みます(以上・以下)。

-- 給与が25万円以上35万円以下
SELECT name, salary FROM employees
WHERE salary BETWEEN 250000 AND 350000;

-- 上のBETWEENは以下と同じ意味
WHERE salary >= 250000 AND salary <= 350000;

IN で複数値の一致検索

INは複数の値のどれかに一致するデータを取得します。ORを何度も書く代わりにすっきり記述できます。

-- 東京・大阪・福岡のいずれかに住む社員
SELECT * FROM employees
WHERE city IN ('東京', '大阪', '福岡');

-- 上のINは以下と同じ意味
WHERE city = '東京' OR city = '大阪' OR city = '福岡';

-- NOT IN:どれにも一致しないデータ
WHERE city NOT IN ('東京', '大阪', '福岡');

条件の組み合わせ実践例

-- 営業部または開発部で、給与が30万円〜50万円の社員を取得
SELECT name, department, salary
FROM employees
WHERE department IN ('営業部', '開発部')
  AND salary BETWEEN 300000 AND 500000
ORDER BY salary DESC;

まとめ:WHERE句チートシート

  • = / !=:完全一致・不一致
  • > / >= / < / <=:数値・日付の範囲
  • AND / OR:複数条件の組み合わせ(括弧で優先順位を明示)
  • LIKE:文字列のあいまい検索(% = 0文字以上、_ = 1文字)
  • BETWEEN A AND B:A以上B以下の範囲指定
  • IN (値1, 値2, ...):複数値のどれかに一致

WHERE句の練習問題に今すぐ挑戦しよう

SQLLearnのWHEREレッスンでは、AND・OR・LIKE・BETWEENをブラウザ上で実際に書いて動かしながら学べます。登録不要・無料でスタートできます。

無料で今すぐ練習する →