SQL WHERE句でデータを条件付きで取り出す

初歩的だが,SQL のSELECT文で WHERE 句を使用し,データを条件付きで取得する方法をまとめる。

以下のテーブルを例に考える。

idnameemailage
1山田 太郎taro@example.com25
2佐藤 花子hanako@example.com30
3鈴木 次郎jiro@example.com22
4田中 三郎saburo@example.com28
5高橋 四郎shiro@example.com35

基本的な文法は以下のようになる。

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

条件について,よく使われるのは以下の論理式や検索条件である。

  • 比較(=, >, <, >=, <=, <>)
    • <> は = の否定 (!=) である
  • 論理式 AND / OR
  • LIKE(あいまい検索)

比較による検索

  • 年齢が30歳以上の人を探す

SELECT * FROM users WHERE age >= 30;

などのように使用する。

idnameemailage
2佐藤 花子hanako@example.com30
5高橋 四郎shiro@example.com35

論理式による複数の検索

  • 年齢が25歳以上、かつ30歳以下の人をさがす

SELECT * FROM users WHERE age >= 25 AND age <= 30;

idnameemailage
1山田 太郎taro@example.com25
2佐藤 花子hanako@example.com30
4田中 三郎saburo@example.com28

二つの条件両方を満たすときは,ANDで条件を結ぶ。

  • 田中さん または 鈴木さん をさがす

SELECT * FROM users WHERE name = ‘田中 三郎’ OR name = ‘鈴木 次郎’;

idnameemailage
3鈴木 次郎jiro@example.com22
4田中 三郎saburo@example.com28

二つの条件どちらかを満たすときは,ANDで条件を結ぶ。

LIKE句による部分一致検索(あいまい検索)

  • 名前が’佐藤’で始まる人を探す

SELECT * FROM users WHERE name LIKE ‘佐藤%’;

idnameemailage
2佐藤 花子hanako@example.com30

LIKE ‘XX%’ とすると,”XXで始まり,その後に0文字以上の文字列が続く” 条件で探してくれる。

LIKE ‘%XX’ とすると,”0文字以上の文字列が続き,XXで終わる”条件で探してくれる。

コメント

タイトルとURLをコピーしました