更新:
SQLのWHERE句完全ガイド(AND・OR・LIKE・BETWEEN・IN)
WHERE句とは
WHERE句は、テーブルから特定の条件に一致するデータだけを取得するための絞り込み命令です。膨大なデータの中から「欲しいデータだけ」を取り出す、SQLの中で最も頻繁に使う機能のひとつです。
SELECT * FROM employees WHERE department = '営業部';比較演算子の使い方
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をブラウザ上で実際に書いて動かしながら学べます。登録不要・無料でスタートできます。
無料で今すぐ練習する →