初歩的だが,SQL のSELECT文で WHERE 句を使用し,データを条件付きで取得する方法をまとめる。
以下のテーブルを例に考える。
id | name | age | |
---|---|---|---|
1 | 山田 太郎 | taro@example.com | 25 |
2 | 佐藤 花子 | hanako@example.com | 30 |
3 | 鈴木 次郎 | jiro@example.com | 22 |
4 | 田中 三郎 | saburo@example.com | 28 |
5 | 高橋 四郎 | shiro@example.com | 35 |
基本的な文法は以下のようになる。
SELECT カラム名 FROM テーブル名 WHERE 条件;
条件について,よく使われるのは以下の論理式や検索条件である。
- 比較(=, >, <, >=, <=, <>)
- <> は = の否定 (!=) である
- 論理式 AND / OR
- LIKE(あいまい検索)
比較による検索
- 年齢が30歳以上の人を探す
SELECT * FROM users WHERE age >= 30;
などのように使用する。
id | name | age | |
---|---|---|---|
2 | 佐藤 花子 | hanako@example.com | 30 |
5 | 高橋 四郎 | shiro@example.com | 35 |
論理式による複数の検索
- 年齢が25歳以上、かつ30歳以下の人をさがす
SELECT * FROM users WHERE age >= 25 AND age <= 30;
id | name | age | |
---|---|---|---|
1 | 山田 太郎 | taro@example.com | 25 |
2 | 佐藤 花子 | hanako@example.com | 30 |
4 | 田中 三郎 | saburo@example.com | 28 |
二つの条件両方を満たすときは,ANDで条件を結ぶ。
- 田中さん または 鈴木さん をさがす
SELECT * FROM users WHERE name = ‘田中 三郎’ OR name = ‘鈴木 次郎’;
id | name | age | |
---|---|---|---|
3 | 鈴木 次郎 | jiro@example.com | 22 |
4 | 田中 三郎 | saburo@example.com | 28 |
二つの条件どちらかを満たすときは,ANDで条件を結ぶ。
LIKE句による部分一致検索(あいまい検索)
- 名前が’佐藤’で始まる人を探す
SELECT * FROM users WHERE name LIKE ‘佐藤%’;
id | name | age | |
---|---|---|---|
2 | 佐藤 花子 | hanako@example.com | 30 |
LIKE ‘XX%’ とすると,”XXで始まり,その後に0文字以上の文字列が続く” 条件で探してくれる。
LIKE ‘%XX’ とすると,”0文字以上の文字列が続き,XXで終わる”条件で探してくれる。
コメント