カテゴリ: データベース 更新日: 2026/01/07

SQLのWHERE句とは?初心者でもわかる条件指定の基本を徹底解説

SQLのWHERE句とは?条件指定の基本を初心者向けにやさしく解説
SQLのWHERE句とは?条件指定の基本を初心者向けにやさしく解説

先生と生徒の会話形式で理解しよう

生徒

「先生、データベースから必要なデータだけを取り出すにはどうすればいいんですか?」

先生

「それには、WHERE句という仕組みを使います。これは、条件を指定してデータを絞り込むための命令です。例えば、クラス名簿から二十歳未満の生徒だけを探し出すような作業ができます。」

生徒

「条件を指定するって難しそうですね。私にもできますか?」

先生

「大丈夫ですよ。紙の名簿で『○○の人だけに丸をつける』という作業をイメージしてください。WHERE句は、それをコンピューターに指示する方法なんです。」

1. WHERE句とは何か?

1. WHERE句とは何か?
1. WHERE句とは何か?

WHERE句は、SQLのSELECT文と組み合わせて使う、データの絞り込み条件を指定するための構文です。データベースには大量の情報が保存されていますが、そのすべてが必要なわけではありません。WHERE句を使うことで、欲しいデータだけを取り出すことができます。

例えば、会員名簿のデータベースに千人分の情報があるとします。その中から、東京都に住んでいる人だけを探したいとき、WHERE句で「住所が東京都の人」という条件を指定すれば、該当する人だけが抽出されます。これは、紙の名簿をめくって該当者を探す作業を、コンピューターが自動で行ってくれるイメージです。

ポイント: WHERE句は、SELECT文の後ろに書き、FROM句の後に配置します。この順番を守ることが大切です。

2. WHERE句の基本的な書き方

2. WHERE句の基本的な書き方
2. WHERE句の基本的な書き方

WHERE句の基本構文は、とてもシンプルです。SELECT文でどのテーブルからデータを取得するかを指定した後、WHERE句で条件を追加します。

基本的な形は次のようになります。SELECTは「選択する」、FROMは「どこから」、WHEREは「どんな条件で」という意味です。それぞれの単語の頭文字を大文字で書くのが一般的ですが、小文字でも動作します。

基本構文


SELECT カラム名
FROM テーブル名
WHERE 条件;

カラム名とは、データベースの表の列の名前のことです。テーブル名は表全体の名前を指します。条件の部分に、どのようなデータを取り出したいかを書きます。最後には必ずセミコロン(;)をつけて、命令の終わりを示します。

3. 実際にWHERE句を使ってみよう

3. 実際にWHERE句を使ってみよう
3. 実際にWHERE句を使ってみよう

ここでは、実際のデータを使って、WHERE句の使い方を学んでいきましょう。次のような会員情報のテーブル(users)があると想定してください。

テーブル: users(ユーザー情報)


id | name       | age | email                | city
---+------------+-----+----------------------+----------
1  | 山田太郎   | 25  | taro@example.com     | 東京都
2  | 佐藤花子   | 19  | hanako@example.com   | 大阪府
3  | 鈴木一郎   | 30  | ichiro@example.com   | 東京都
4  | 田中美咲   | 22  | misaki@example.com   | 福岡県
5  | 高橋健太   | 18  | kenta@example.com    | 東京都
6  | 伊藤麻衣   | 28  | mai@example.com      | 大阪府

このテーブルから、年齢が二十歳未満の人だけを取り出したい場合、次のようなSQL文を書きます。


SELECT *
FROM users
WHERE age < 20;

アスタリスク(*)は「すべてのカラム」を意味します。age < 20は「年齢が二十未満」という条件です。不等号(<)は算数で習った記号と同じで、「より小さい」という意味です。

実行結果


id | name       | age | email                | city
---+------------+-----+----------------------+----------
2  | 佐藤花子   | 19  | hanako@example.com   | 大阪府
5  | 高橋健太   | 18  | kenta@example.com    | 東京都

このように、年齢が二十歳未満の佐藤花子さんと高橋健太さんだけが抽出されました。WHERE句によって、条件に合うデータだけが選ばれたのです。

4. さまざまな比較演算子

4. さまざまな比較演算子
4. さまざまな比較演算子

WHERE句では、条件を指定するために比較演算子と呼ばれる記号を使います。演算子とは、計算や比較を行うための記号のことです。主な比較演算子を見ていきましょう。

演算子 意味 使用例
= 等しい age = 25(年齢が二十五歳)
< より小さい age < 20(年齢が二十歳未満)
> より大きい age > 30(年齢が三十歳より上)
<= 以下 age <= 25(年齢が二十五歳以下)
>= 以上 age >= 20(年齢が二十歳以上)
<> または != 等しくない age <> 25(年齢が二十五歳ではない)

注意点として、等しいかどうかを調べるときは、イコール記号を一つ(=)だけ使います。プログラミング言語によっては二つ(==)使うこともありますが、SQLでは一つです。また、等しくないを表す記号は、不等号とイコールを組み合わせた(<>)か、エクスクラメーションマークとイコール(!=)のどちらでも使えます。

5. 文字列を条件にする方法

5. 文字列を条件にする方法
5. 文字列を条件にする方法

数値だけでなく、文字列でも条件を指定できます。例えば、東京都に住んでいる人だけを抽出したい場合は、次のように書きます。


SELECT *
FROM users
WHERE city = '東京都';

文字列を指定するときは、必ずシングルクォーテーション(')で囲みます。これは「ここからここまでが文字列ですよ」とコンピューターに伝えるための記号です。ダブルクォーテーション(")ではなく、シングルクォーテーションを使うのがSQLの決まりです。

実行結果


id | name       | age | email                | city
---+------------+-----+----------------------+----------
1  | 山田太郎   | 25  | taro@example.com     | 東京都
3  | 鈴木一郎   | 30  | ichiro@example.com   | 東京都
5  | 高橋健太   | 18  | kenta@example.com    | 東京都

このように、都市が東京都の人だけが抽出されました。文字列の条件指定では、大文字と小文字の区別や、全角と半角の違いにも注意が必要です。データベースに保存されている文字と完全に一致するように指定しないと、正しく抽出できません。

6. 複数の条件を組み合わせる

6. 複数の条件を組み合わせる
6. 複数の条件を組み合わせる

WHERE句では、ANDやORという言葉を使って、複数の条件を組み合わせることができます。これにより、より細かい条件でデータを絞り込めます。

AND演算子の使い方

ANDは「かつ」という意味で、すべての条件を満たすデータだけを取り出します。例えば、東京都に住んでいて、かつ年齢が二十五歳以上の人を探す場合は次のようになります。


SELECT *
FROM users
WHERE city = '東京都' AND age >= 25;

実行結果


id | name       | age | email                | city
---+------------+-----+----------------------+----------
1  | 山田太郎   | 25  | taro@example.com     | 東京都
3  | 鈴木一郎   | 30  | ichiro@example.com   | 東京都

二つの条件をどちらも満たす人だけが抽出されました。高橋健太さんは東京都に住んでいますが、年齢が十八歳なので条件に合わず、結果には含まれていません。

OR演算子の使い方

ORは「または」という意味で、どちらか一つの条件を満たせばデータが取り出されます。例えば、東京都に住んでいるか、または年齢が二十歳未満の人を探す場合は次のようになります。


SELECT *
FROM users
WHERE city = '東京都' OR age < 20;

実行結果


id | name       | age | email                | city
---+------------+-----+----------------------+----------
1  | 山田太郎   | 25  | taro@example.com     | 東京都
2  | 佐藤花子   | 19  | hanako@example.com   | 大阪府
3  | 鈴木一郎   | 30  | ichiro@example.com   | 東京都
5  | 高橋健太   | 18  | kenta@example.com    | 東京都

東京都に住んでいる人と、年齢が二十歳未満の人がすべて抽出されました。佐藤花子さんは大阪府ですが、年齢が十九歳なので条件に合い、結果に含まれています。

7. NULL値の扱い方

7. NULL値の扱い方
7. NULL値の扱い方

データベースでは、値が入っていない状態をNULL(ヌル)と呼びます。これは、ゼロや空文字とは違う特別な状態です。例えば、メールアドレスがまだ登録されていない会員がいる場合、そのカラムにはNULLが入ります。

NULL値を条件にする場合は、特別な書き方をします。通常の比較演算子(=や<>)は使えません。代わりにIS NULLやIS NOT NULLという表現を使います。

注意: WHERE email = NULLと書いても正しく動作しません。必ずIS NULLを使いましょう。

8. WHERE句を使う際の注意点

8. WHERE句を使う際の注意点
8. WHERE句を使う際の注意点

WHERE句を使うときには、いくつか気をつけるべきポイントがあります。これらを理解しておくことで、エラーを防ぎ、正確なデータ抽出ができるようになります。

カラム名の間違いに注意

存在しないカラム名を指定すると、エラーが発生します。例えば、年齢のカラム名がageなのに、yearsと書いてしまうと、データベースは該当するカラムを見つけられずエラーになります。テーブルの構造をよく確認してから、SQL文を書くようにしましょう。

データ型の違いに注意

数値のカラムに文字列の条件を指定したり、その逆をしたりすると、予期しない結果になることがあります。年齢は数値なので、WHERE age = '25'のように文字列として指定するのは避けましょう。正しくはWHERE age = 25と書きます。

シングルクォーテーションの使い方

文字列を指定するときは必ずシングルクォーテーションで囲みますが、数値の場合は囲みません。この使い分けを間違えると、エラーになったり、意図しない動作をしたりします。慣れるまでは、何度も確認しながら書くとよいでしょう。

9. WHERE句でよく使われるその他の機能

9. WHERE句でよく使われるその他の機能
9. WHERE句でよく使われるその他の機能

WHERE句には、基本的な比較演算子以外にも、便利な機能がたくさんあります。ここでは、よく使われる機能をいくつか紹介します。

BETWEEN演算子

BETWEENは、範囲を指定するときに使います。例えば、年齢が二十歳から三十歳の間の人を探す場合、WHERE age >= 20 AND age <= 30と書くこともできますが、WHERE age BETWEEN 20 AND 30と書くとより簡潔になります。

IN演算子

INは、複数の値のいずれかに一致するかを調べます。例えば、東京都、大阪府、福岡県のいずれかに住んでいる人を探す場合、WHERE city IN ('東京都', '大阪府', '福岡県')と書けます。ORを何度も書くより簡単です。

LIKE演算子

LIKEは、あいまい検索をするときに使います。例えば、名前に「田」という文字が含まれる人を探す場合、WHERE name LIKE '%田%'と書きます。パーセント記号(%)は、どんな文字が何文字あってもよいという意味のワイルドカードです。

カテゴリの一覧へ
新着記事
New1
データベース
SQLの処理が遅くなる原因とは?初心者向けにデータベースパフォーマンス最適化を完全解説
New2
Ruby
RubyのネストHash操作を徹底解説!digとtransformメソッドで複雑なデータも楽々
New3
Rails
Railsインデックス設計の極意!爆速サイトを作るためのスキーマ設計ガイド
New4
データベース
SQLのCOMMITとROLLBACKとは?トランザクション操作を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
PATHと環境変数の正しい設定!Windows・Mac・Linux別チェックリスト付き
No.2
Java&Spring記事人気No2
Rails
Railsで日本語と時刻の設定をしよう!初心者でも安心のlocale/zone初期設定チートシート
No.3
Java&Spring記事人気No3
Ruby
Rubyのハッシュを徹底比較!シンボルキーと文字列キーの違いと使い分け
No.4
Java&Spring記事人気No4
Rails
Railsマイグレーションの型選びを完全ガイド!初心者が迷わないカラム設計
No.5
Java&Spring記事人気No5
Ruby
WindowsでRubyをインストールする方法!RubyInstallerとMSYS2を使った完全ガイド
No.6
Java&Spring記事人気No6
Rails
RailsモデルとActive Record基礎|ID戦略を完全理解!AUTO INCREMENT・UUID・ULIDの比較と導入手順
No.7
Java&Spring記事人気No7
データベース
ACID特性とは?データベーストランザクションの信頼性を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
データベース
データベース正規化とは?初心者でもわかるデータ重複を防ぐSQL設計の基本