本文へスキップ
BecomeCoder

SQL データ操作 (DML)コース · 第1章 データを取り出す · レッスン4

DISTINCT・LIKE・IN・BETWEEN ― 絞り込みを広げる

ブラウザで完結

導入

WHERE=> だけでは書きにくい条件があります。「どんな都市があるか一覧したい」「名前に“田”が含まれる人」「東京か大阪の人」「20〜30歳」――こうした指定に使う道具をまとめて覚えます。

説明

DISTINCT ― 重複をまとめる。同じ値が何度も出るとき、DISTINCT を付けると重複を1つにまとめます。「この列にはどんな種類の値があるか」を知りたいときの定番です。

SELECT DISTINCT city FROM users;

LIKE ― あいまい検索% は「任意の0文字以上」、_ は「任意の1文字」を表すワイルドカードです。

flowchart TB
    L["LIKE のパターン"]
    L --> P1["'田%' → 「田」で始まる"]
    L --> P2["'%田%' → どこかに「田」を含む"]
    L --> P3["'%子' → 「子」で終わる"]
    L --> P4["'_田%' → 2文字目が「田」"]
SELECT name FROM users WHERE name LIKE '田%';

IN ― 複数の候補のどれかOR を並べる代わりに、候補をカッコで並べます。

SELECT name, city FROM users WHERE city IN ('東京', '福岡');

BETWEEN ― 範囲(両端を含む)age >= 25 AND age <= 35 と同じ意味を短く書けます。

SELECT name, age FROM users WHERE age BETWEEN 25 AND 35;

やってみよう

初期表示の DISTINCT を実行して、都市が重複なく出ることを確認しましょう。次に SELECT name FROM users WHERE name LIKE '%田%'; を試して、名前に「田」を含む会員を探してみてください。

演習

users テーブルから、大阪または福岡に住んでいる会員namecity を、IN を使って取り出してください。

ヒント1を見る

候補をカッコで並べます。WHERE city IN ('大阪', '福岡')

ヒント2を見る

SELECT name, city FROM users WHERE city IN ('大阪', '福岡');

実際に動かしてみよう

下のエディタにクエリを書いて「実行」を押すと、ブラウザ内のSQLiteで結果が表示されます。本文の例をそのまま試したり、書き換えたりしてみましょう。

SQL — ブラウザ内で実行(SQLite)

ブラウザ内でSQLを動かす環境(SQLite)を読み込みます(初回のみ一瞬)。
スクロールして表示された時点でも自動で読み込まれます。