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分