SQL

SQLの基本 – WHERE句を用いた数値条件指定ガイド【初心者向け基礎ガイド】

酒井 裕麻株式会社Bistro 代表取締役社長

SQLで用いるWHERE句とは

SQL(エスキューエル)では、データベースに保存された大量の情報から必要なデータだけを取り出したり、更新したり、削除したりできます。
一方で例えば購入履歴などのデータでは、データが何百万件と存在していることが多いため、すべてのデータを抽出するのではなく“どれを使うか” を指定することが重要です。

そこで使用するのがWHERE(ウェア)句 です。
WHERE句を使用することで、処理を行うデータの条件を指定することができるようになります。
例えば、購入履歴のデータベースで2025年11月1日以降のデータだけ見たいといった処理が可能になります。

(※参考 : SQL – Wikipedia)

本記事の内容

この記事では、WHERE句でよく使う条件の書き方を、代表的なケースごとにわかりやすく解説します。

  • 「〜以上」「〜以下」などの数値条件

  • 日付を使った絞り込み

  • 複数条件の組み合わせ(AND / OR) … など

WHERE句は、実務のSQLでも必ず登場します。
ここで一通りのパターンを押さえておくことで、今後のデータ抽出や集計がぐっと楽になります。

まずはこの記事で、WHERE句の基礎をしっかり身につけていきましょう。

SQL 基礎

参考記事

SQLの基本 : まずはこれだけ覚えよう【初心者向け基礎ガイド】
SQL HAVING句の使い方【実行コード付き】

条件設定の基本構文

SQLでデータを抽出するときの基本構造は次のようになります。

SELECT
 抽出したいカラム
FROM
 抽出元のデータベース名
WHERE
 抽出条件で使用するカラム 演算子(=/</>など) 条件値

SELECTとFROMとWHEREの順番は決まっているので、上記の構造を守ってSQLを作成してください。

数値に対する条件設定

WHERE句を使った条件設定の中でも、最もよく登場するのが「数値」に対する条件です。
売上金額、商品数、ポイント数、再生回数など、どのデータベースでも数値は頻出です。

まずは、この数値に対する条件指定の基本を押さえていきましょう。

よく使う数値条件の例

たとえば以下のような条件が定番です。

  • 金額が1000円以上

  • 購入回数が3回以下

  • ポイントが0より大きいデータだけ

これらはすべて、WHERE句で簡単に書けます。

実際の抽出SQL例

商品別・日別の売上データ が
sample_dataというテーブル名でデータベースに保存されているケースを考えてみましょう。

date product sales_amount
2025/11/21 beef_1 ¥1,200
2025/11/21 beef_2 ¥800
2025/11/21 beef_1 ¥1,200
2025/11/21 beef_1 ¥1,200
2025/11/22 fish_1 ¥300
2025/11/22 beef_3 ¥3,000
2025/11/22 fish_1 ¥300
2025/11/22 fish_1 ¥300
2025/11/22 beef_3 ¥3,000
2025/11/23 fish_2 ¥1,600

このとき、金額(数値データ)に対して条件を設定するケースを考えてみましょう。
たとえば、売上データの中から 「金額が1,000円以上のデータだけを抽出」 という場合のSQLは次のように書けます。

SELECT
  *
FROM
  sample_data
WHERE
  sales_amount >= 1000

この例では

  • sales_amount : 抽出条件で使用するカラム
  • >= : 演算子
  • 1000 : 条件値

となっており、演算子を用いて条件値以上という設定を行いました。

数値の条件設定で使用できる演算子

WHERE句で数値に条件を付けるときは、以下の演算子を使います。
それぞれの意味をしっかり押さえておきましょう。

演算子 読み方 意味 使用例
<= 以下 指定した値「以下」のデータを抽出 price <= 1000
>= 以上 指定した値「以上」のデータを抽出 price >= 1000
< より小さい 指定した値より「小さい」データを抽出 price < 1000
> より大きい 指定した値より「大きい」データを抽出 price > 1000
= 等しい 指定した値と「等しい」データを抽出 price = 1000
BETWEEN X AND Y ベトウィーン X 以上 Y 以下の範囲で抽出 price BETWEEN 1000 AND 5000

これらの演算子を組み合わせることで、
「この金額だけ」「この金額より大きい」「この範囲だけ」
といった柔軟な抽出が簡単に行えるようになります。

日付に対する条件設定

日付はデータ分析でもよく使う条件のひとつです。
「特定の日付以降のデータだけ欲しい」「月末だけ取りたい」など、実務では必ず登場します。

基本構文は数値と同じく、比較演算子を使って指定します。

2025年11月22日から2025年11月23日のデータに対して条件を設定するケースを考えてみましょう。
この時、演算子はBETWEENを用いることができるので以下のようなSQLで記載することができます。

SELECT
 * 
FROM 
 sample_data
WHERE
 date BETWEEN '2025-11-22' AND '2025-11-23'

AND / OR / NOT を使った複合条件

WHERE句では、1つの条件だけでなく 複数の条件を組み合わせる ことができます。
そのときに使うのが AND / OR / NOT という3つの論理演算子です。

AND(かつ条件)

すべての条件を満たすデータだけ を抽出します。

例:
「金額が1000円以上 かつ 日付が2025年11月22日以降」

SELECT
  * 
FROM
  sample_data 
WHERE
  sales_amount > 1000
   AND date >= '2025-11-22'

➡ 両方の条件を満たした行のみ抽出されます。

OR(または条件)

どちらか一方でも条件を満たしていれば抽出します。

例:
「金額が1000円以上または日付が2025年11月22日以降」

SELECT
  * 
FROM
  sample_data 
WHERE
  sales_amount >= 1000
   OR date >= '2025-11-22'

➡ どちらかを含んでいればOK。

NOT(否定条件)

条件に当てはまらないものを抽出します。

例:
「日付が2025年11月22日以降でないデータ」

SELECT
  * 
FROM
  sample_data 
WHERE
  NOT date >= '2025-11-22'

(NOT LIKE と書くこともできます)

AND と OR を組み合わせるときの注意点

組み合わせる場合は、()(括弧)を使って意図を明確にすることが重要です。

例:
「金額が1000円以上 かつ(2025年11月18日以前 または 2025年11月22日以降)」

SELECT
  * 
FROM
  sample_data 
WHERE
  sales_amount >= 1000 
   AND (
      date <= '2025-11-18' 
      OR date >= '2025-11-22'
   )

➡ 括弧をつけることで 条件の優先順位を明確化 できます。

ここで学んだ

  • 数値の条件

  • 日付の条件

  • AND / OR / NOT の複合条件

これらは実務のデータ抽出で必ず使う基礎スキルです。
まずはこのパターンを自由に組み合わせられるようになれば、SQLでのデータ抽出が一気にスムーズになります。

CONTACT

データ活用のお悩み、
直接相談しませんか。

「何から始めればいいかわからない」段階でも大丈夫です。課題の整理からお手伝いします。