【初心者向け】SQLのWHERE句を使った検索条件の指定方法を解説!

公開日: 2025.08.30
更新日: 2025.08.30

データベースから必要な情報を取り出すときに欠かせないのが「WHERE句」です。

条件を指定して絞り込みができるため、知りたいデータだけを効率よく検索できます。

しかし「SELECT文とどう組み合わせるのか」「演算子の違いがよくわからない」などと、理解に苦しむ初心者も多いのも事実です。

この記事では基本的な使い方から応用的な活用例までわかりやすく解説します。

SQLにおけるWHERE句とは?

SQLにおけるWHERE句とは、データベースから取得するレコードに条件を付けるための構文です。

指定した条件を満たす行だけを抽出できるため、大量のデータから必要な情報を効率よく取り出せます。

使用例としては、社員テーブルから「20歳以上の社員」や「営業部に所属する社員」など、特定の条件に合致するデータだけを取得する場合に利用されます。

そもそものSQLの概要をもっと理解したい方は、以下の記事も参考にしてみてください。

SELECT構文との組み合わせ方

WHERE句は通常、SELECT構文とセットで利用します。

基本的な形は以下のとおりです。

SELECT 列名 FROM テーブル名 WHERE 条件;

例えば

SELECT * FROM users WHERE age >= 20;

と書くと、usersテーブルから20歳以上のレコードだけを取得できます。

WHERE句を指定しなければ、テーブル内のすべてのデータが返されるため、必要な情報を抽出するときは必ずWHERE句を組み合わせて使うのが一般的です。

SQLでのWHERE句を使った条件検索方法

WHERE句は、条件を指定して必要なデータだけを取り出すために欠かせない構文です。

演算子を使うことで「等しい」「大きい」「含まれている」など、さまざまな条件でデータを絞り込むことができます。

ここでは基本的な演算子の使い方や具体的な検索方法を解説し、実際のSQL文とその実行結果を紹介します。

WHERE句の基本的な演算子

WHERE句では、以下の演算子を使って条件を指定します。

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

これらの組み合わせで、柔軟な条件検索を実現しています。

条件検索方法

例えば「年齢が20歳以上のユーザー」を取得するSQL文は以下の通りです。

SELECT name, age 
FROM users 
WHERE age >= 20;

上記を実行すると、次のようになります。

nameage
田中25
佐藤30
鈴木22

WHERE句はこのように、大量のデータから必要な行だけを抽出するのに活用されています。

WHERE句の応用的な演算子

WHERE句では「=」「>」などの基本的な演算子に加えて、複数条件を組み合わせたり、範囲や部分一致を指定したりできる応用的な演算子があります。

代表的なものには 以下のような

  • AND
  • OR
  • BETWEEN
  • IN
  • LIKE
  • IS NULL

などがあり、使いこなせればより柔軟な検索が可能になります。

演算子役割使用例
AND複数条件をすべて満たす行を抽出age >= 20 AND dept = ‘営業’
OR複数条件のいずれかを満たす行を抽出age < 20 OR dept = ‘開発’
BETWEEN指定した範囲内の値を抽出age BETWEEN 20 AND 30
IN複数の候補値のいずれかを満たす行を抽出dept IN (‘営業’,’開発’)
LIKE部分一致検索に利用name LIKE ‘田%’
IS NULL / IS NOT NULLNULL値の有無を判定tel IS NULL

ここからは、それぞれの使い方を順に紹介していきます。

AND演算子の使い方

AND演算子は「複数の条件をすべて満たす行」を抽出するときに使います。

条件が増えるほど結果は絞り込まれ、より厳密な検索が可能です。

たとえば、「20歳以上かつ営業部のユーザー」を取得したい場合、以下のような書き方をします。

SELECT name, age, dept
FROM users
WHERE age >= 20 AND dept = '営業';

実行結果は以下です。

nameage
田中25
佐藤30
鈴木22

OR演算子の使い方

OR演算子は「複数の条件のうち、どれか1つでも満たす行」を抽出します。

こちらも条件が増えるほど結果が広がり、柔軟にデータを取得できます。

たとえば、「20歳未満または開発部のユーザー」を取得する場合の書き方は以下です。

SELECT name, age, dept
FROM users
WHERE age < 20 OR dept = '開発';

以下が実行結果です。

nameagedept
鈴木18学生
山本28開発
中村22開発

BETWEEN演算子の使い方

BETWEEN演算子は「指定した範囲内にある値」を抽出します。

数値や日付の範囲検索に便利で、「以上・以下」の条件を一度に指定できるのが特徴です。

「20歳から30歳のユーザー」を取得する場合は、以下のような書き方になります。

SELECT name, age
FROM users
WHERE age BETWEEN 20 AND 30;

実行結果は次のとおりです。

nameage
田中25
佐藤30
鈴木22

IN演算子の使い方

IN演算子は「複数の候補の中から一致する値を持つ行」を抽出するために使います。

前述した「OR」を繰り返すよりもシンプルに書けるのが特徴です。

例えば、「営業部または開発部に所属するユーザー」を取得する際は以下のように書きます。

SELECT name, dept
FROM users
WHERE dept IN ('営業', '開発');

結果は次のようになります。

namedept
田中営業
佐藤営業
山本開発
中村開発

LIKE演算子の使い方

LIKE演算子は「文字列の部分一致検索」を行うために使用します。

ワイルドカード「%」(任意の文字列)や 「_」(任意の1文字)と組み合わせて使うのが特徴です。

以下は、「田」で始まる名前のユーザーを取得する書き方です。

SELECT name, age
FROM users
WHERE name LIKE '田%';

実行結果は以下です。

nameage
田中25
田村29

IS NULL / IS NOT NULLの使い方

IS NULLは「値がNULLの行」を、IS NOT NULLは「値がNULLでない行」を抽出します。

数値や文字列ではなく「値が存在しないこと」を判定するときに使います。

以下は、電話番号が未登録(NULL)のユーザーを取得する際の書き方です。

SELECT name, tel
FROM users
WHERE tel IS NULL;

結果は以下のようになります。

nametel
鈴木NULL
山本NULL

ここまで、基本的な演算子の使い方を紹介してきましたが、実務の場面になると「知識はあるけれど実際に使えない」という壁にぶつかりやすいです。

SQLを含むWeb開発スキルをしっかり身につけたい方には、DMM WEBCAMPの Webアプリケーションコースがおすすめです。

本スクールではRuby/Ruby on Railsを中心に学び、Herokuでオリジナルアプリを公開できるまでサポートしてもらえます。

現役エンジニア講師のメンタリングや無制限の課題レビューで、知識を「使える力」に変えられるのが大きな魅力です。

週2回のメンタリングやいつでも活用できる質問サポートもあり、短期間で着実にスキルを身につけられる体制が整っているので、ぜひご検討ください!

>>DMM WEBCAMP Webアプリケーションコースの詳細はこちら

SQLのWHERE句に関するよくある質問

最後に、SQLのWHERE句に関するよくある質問に回答します。

Q.SQLのWHERE句とは?

WHERE句とは、SQLで特定の条件に合う行だけを抽出するための構文です。

指定した条件を満たすデータのみを返すことで、大量の情報から必要な部分だけを効率的に取り出せます。

Q.SQLのHAVINGとWHEREの違いは?

WHEREはテーブルの行データに対して条件を指定します。

一方HAVINGは、GROUP BYで集計した結果に対して条件を指定するときに使います。

つまり、行への条件はWHERE、集計後の条件はHAVINGです。

WHEREHAVING
適用対象行データ集計後のデータ
主な用途テーブルから条件に合う行を抽出GROUP BYで集計した結果を絞り込み
使用例WHERE age > 20
(20歳以上の行を抽出)
HAVING COUNT(*) > 5
(件数が5件を超えるグループを抽出)
処理順序JOIN後すぐに適用GROUP BY → 集計後に適用

Q.WHEREとJOINはどちらが先?

SQLの処理順序では、JOINでテーブルを結合した後にWHERE句で条件が適用されます。

つまり「テーブルを結合してから、条件で絞り込む」という流れになるため、結合と条件指定を混同しないことが重要です。

まとめ

SQLのWHERE句は、必要なデータを条件で絞り込む際に欠かせない基本構文。

演算子を組み合わせれば、単純な検索から複雑な抽出まで柔軟に対応できます。

HAVINGやJOINとの違いを理解して使い分ければ、実務でのデータ分析やシステム開発でも大いに役立つので、初心者のうちに基礎を固めて使いこなせるようになることが大切です。

とはいえ、独学だけでは「知識はあるが実務で使えない」という壁にぶつかりがちです。

DMM WEBCAMPのWebアプリケーションコースなら、Ruby/Railsを中心にSQLを含む開発スキルを実践的に学び、オリジナルアプリ公開まで到達できます。

現役エンジニア講師の手厚いサポートと、教育訓練給付金による最大80%還元制度で、学習負担も大幅に軽減できるので、ぜひこの機会に活用し、スムーズにSQLを習得しましょう!

>>DMM WEBCAMP Webアプリケーションコースの詳細はこちら

関連記事

資料請求

  • 短期集中で最速エンジニア転職を実現-転職成功者インタビュー一覧

    DMM WEBCAMPでは転職成功率98%を実現しています。本資料では、元警察官や元ラーメン屋など様々なバックグラウンドを持つ卒業生の声をお届けします。

    資料をダウンロードする
  • IT技術がもたらす3つの変化と身につけるべきスキル

    IT技術の発展により、今後10~20年程度で47%の仕事がなくなると言われています。どのような変化が訪れ、私達はどのようなスキルを身につけるべきかを解説します。

    資料をダウンロードする
  • 未経験がフリーランスエンジニアになる方法-年収アップで自由な働き方を手に入れる

    働き方改革やリモートワークの影響でフリーランスという働き方の人気は高まりつつあります。フリーランスエンジニアとして活躍するために必要な情報をお届けします。

    資料をダウンロードする

© 2025 WEBCAMP MEDIA Powered by AFFINGER5