LESSON 30分

WHERE句の基本

ストーリー

「SELECT文でデータを全部取り出せるようになりましたね!」

「うん、でも実際の仕事では全データじゃなくて、特定のデータだけ欲しいときが多いんだ」

「特定のデータだけ...どうやるんですか?」

「WHERE句を使うんだよ。フィルターみたいなものだと思えばいい」


WHERE句とは

WHERE = 条件を指定してデータを絞り込むための句です。

例え話

WHEREは「ふるい」のようなもの。

  • 全データの中から、条件に合うものだけを通す
  • 条件に合わないデータは除外される
  • 「開発部の社員だけ見せて」「電子機器だけ見せて」が可能に

基本の構文

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

構文の流れ

SELECT  → 何を取り出すか
FROM    → どのテーブルから
WHERE   → どの条件で絞り込むか

文字列の条件

特定の部署の社員を取り出す

sql
SELECT * FROM employees WHERE department = '開発部';

実行結果:

id | name     | department | salary
---+----------+------------+-------
1  | 田中太郎 | 開発部     | 350000
3  | 鈴木一郎 | 開発部     | 400000

5人いた社員データから、開発部の2人だけが取り出されました。

ポイント

  • 文字列の条件は シングルクォート ' で囲む
  • department = '開発部' は「departmentカラムが『開発部』と等しい行」を意味する

数値の条件

特定の給料の社員を取り出す

sql
SELECT * FROM employees WHERE salary = 350000;

実行結果:

id | name     | department | salary
---+----------+------------+-------
1  | 田中太郎 | 開発部     | 350000

ポイント

  • 数値の条件はクォートで囲まない
  • salary = 350000 は「salaryカラムが350000と等しい行」を意味する

WHEREはフィルター

WHEREのイメージを図で表すと:

全データ(5件)
  ┃
  ┃  WHERE department = '開発部'
  ┃  (フィルター適用)
  ▼
該当データ(2件)
  • WHERE なし → 全件取得
  • WHERE あり → 条件に合うデータだけ取得

SELECT句と組み合わせる

WHEREで絞り込みつつ、必要なカラムだけ取り出すこともできます。

開発部の社員の名前と給料だけ表示

sql
SELECT name, salary FROM employees WHERE department = '開発部';

実行結果:

name     | salary
---------+-------
田中太郎 | 350000
鈴木一郎 | 400000

電子機器カテゴリの商品名と価格

sql
SELECT name, price FROM products WHERE category = '電子機器';

実行結果:

name         | price
-------------+------
ノートPC     | 89000
マウス       | 2500
モニター     | 32000
キーボード   | 8000
ヘッドセット | 12000

ハンズオン

SQLiteを起動して、以下のSQLを実行してみましょう。

練習1: 部署で絞り込む

sql
-- 営業部の社員を表示
SELECT * FROM employees WHERE department = '営業部';

期待される結果:

id | name     | department | salary
---+----------+------------+-------
2  | 佐藤花子 | 営業部     | 320000
5  | 伊藤健太 | 営業部     | 280000

練習2: 人事部の社員

sql
-- 人事部の社員を表示
SELECT * FROM employees WHERE department = '人事部';

期待される結果:

id | name     | department | salary
---+----------+------------+-------
4  | 高橋美咲 | 人事部     | 300000

練習3: カテゴリで絞り込む

sql
-- 家具カテゴリの商品を表示
SELECT * FROM products WHERE category = '家具';

期待される結果:

id | name           | category | price | stock
---+----------------+----------+-------+------
3  | デスク         | 家具     | 35000 | 8
4  | チェア         | 家具     | 45000 | 12
8  | ブックシェルフ | 家具     | 18000 | 5

練習4: カラムを絞って表示

sql
-- 電子機器の商品名と在庫数だけ表示
SELECT name, stock FROM products WHERE category = '電子機器';

まとめ

構文説明
SELECT * FROM テーブル WHERE 条件;条件に合う全カラムを取得
WHERE カラム = '文字列'文字列で絞り込み(シングルクォート必須)
WHERE カラム = 数値数値で絞り込み(クォート不要)
SELECT カラム FROM テーブル WHERE 条件;絞り込み + カラム指定

チェックリスト

  • WHERE句の役割を理解できた
  • 文字列の条件にシングルクォートを使えた
  • 数値の条件を書けた
  • SELECTとWHEREを組み合わせてデータを取り出せた

次のステップへ

WHERE句の基本はマスターできましたか?

次のセクションでは、「以上」「未満」などの比較演算子を学びます。 「給料が30万円以上の社員」のような条件が書けるようになりますよ!


推定読了時間: 30分