⏱ 7分 ★★★★★ 頻出:高

WHERE句

比較・BETWEEN・IN・LIKE・IS NULLの使い方。ひっかけポイントも解説

WHERE句=「取得する行を絞り込む条件を書く」

WHERE句はFROMで指定したテーブルから条件に合う行だけを取り出すフィルタです。

比較演算子と論理演算子

-- 比較演算子
WHERE price >= 10000 -- 10000以上
WHERE status <> 'inactive' -- ≠ (<> または !=)

-- 範囲指定
WHERE price BETWEEN 1000 AND 5000 -- 両端含む

-- リスト指定
WHERE category IN ('PC', 'tablet')

-- パターンマッチ
WHERE name LIKE '田%' -- 田で始まる
WHERE name LIKE '%商事%' -- 商事を含む

-- NULL判定(= NULL は使えない!)
WHERE memo IS NULL
WHERE memo IS NOT NULL

-- 論理演算子
WHERE price >= 1000 AND stock > 0
WHERE category = 'PC' OR category = 'tablet'

LIKEのワイルドカード

記号意味マッチする例
%0文字以上の任意文字列LIKE '田%'田中、田村一郎
_任意の1文字LIKE '田_'田中、田村(田一郎はNG)

よくある間違い

WHERE memo = NULL は動かない!NULLの比較は必ず IS NULL / IS NOT NULL を使う。
BETWEEN 1000 AND 5000 は 1000以上5000以下(両端含む)。試験で「5000を含むか」は頻出ひっかけ。
NOT IN にNULLが含まれると、結果が全行0件になる罠がある(NULLとの比較は常にUNKNOWNになるため)。
🧠 確認クイズ
Q1. NULL値の行を取得する正しいWHERE句はどれか?
Q2. LIKE '%東京%' が一致するのはどれか?
Q3. BETWEEN 100 AND 200 の条件として正しいのはどれか?