SQLのWHERE句の使い方を徹底解説|条件指定でデータを絞り込む方法

SQLでデータを扱う際に欠かせないのが WHERE句 です。WHERE句を使うことで、特定の条件に合ったデータだけを抽出することができます。本記事では、WHERE句の基本的な使い方から、よく使う演算子や注意点までをわかりやすく解説します。
Contents
WHERE句とは?
WHERE句は、SELECT文やUPDATE文、DELETE文などで 条件を指定するための構文 です。
例えば「年齢が20歳以上のユーザーだけを取得したい」といった場合に活用します。
基本構文は以下の通りです。
SELECT 列名1, 列名2, ...
FROM テーブル名
WHERE 条件式;例:年齢が20歳以上のユーザーを取得
SELECT name, age
FROM users
WHERE age >= 20;このクエリでは、users テーブルから age が20以上のレコードのみを抽出します。
よく使う比較演算子
WHERE句では、以下のような比較演算子をよく使います。
| 演算子 | 意味 | 使用例 |
|---|---|---|
= | 等しい | WHERE age = 30 |
!= または <> | 等しくない | WHERE age != 30 |
> | より大きい | WHERE age > 20 |
< | より小さい | WHERE age < 20 |
>= | 以上 | WHERE age >= 20 |
<= | 以下 | WHERE age <= 20 |
複数条件を組み合わせる
AND(かつ)
両方の条件を満たすデータを抽出します。
SELECT name, age, city
FROM users
WHERE age >= 20 AND city = 'Tokyo';👉 20歳以上かつ「Tokyo」に住むユーザーを取得。
OR(または)
どちらかの条件を満たせば抽出します。
SELECT name, age, city
FROM users
WHERE city = 'Tokyo' OR city = 'Osaka';👉 「Tokyo」または「Osaka」に住むユーザーを取得。
NOT(否定)
条件を満たさないデータを取得します。
SELECT name, age
FROM users
WHERE NOT city = 'Tokyo';👉 「Tokyo」以外に住むユーザーを取得。
部分一致検索(LIKE)
文字列の部分一致検索には LIKE を使います。
| ワイルドカード | 意味 |
|---|---|
% | 任意の文字列(0文字以上) |
_ | 任意の1文字 |
-- 「Y」で始まる名前を取得
SELECT name
FROM users
WHERE name LIKE 'Y%';-- 3文字目が「n」の名前を取得
SELECT name
FROM users
WHERE name LIKE '__n%';範囲指定(BETWEEN)
数値や日付の範囲を指定するときは BETWEEN を使うと便利です。
SELECT name, age
FROM users
WHERE age BETWEEN 20 AND 30;👉 年齢が20以上30以下のユーザーを取得。
値の集合にマッチ(IN)
特定の値の集合に含まれるかどうかを調べたい場合は IN を使います。
SELECT name, city
FROM users
WHERE city IN ('Tokyo', 'Osaka', 'Nagoya');👉 「Tokyo」「Osaka」「Nagoya」に住むユーザーを取得。
NULL値の扱い(IS NULL / IS NOT NULL)
カラムに値が入っていない場合(NULL)は、=ではなく IS NULL を使います。
SELECT name, email
FROM users
WHERE email IS NULL;👉 メールアドレスが未登録のユーザーを取得。
まとめ
- WHERE句 はデータを絞り込むための条件を指定する構文
- 比較演算子(
=, >, <, !=など)で基本的な条件を指定 - AND / OR / NOT で複数条件を組み合わせ
- LIKE / BETWEEN / IN / IS NULL で柔軟な条件検索が可能
WHERE句を使いこなすことで、必要なデータを効率的に抽出できるようになります。

