IN 句は、SQL の
WHERE
句で使用される条件の一つで、複数の値のいずれかに一致するデータを取得するために使用されます。IN句は使用頻度が多いのでぜひとも覚えておきましょう。
基本構文:
SELECT 列名 FROM テーブル名 WHERE 条件列 IN (値1, 値2, 値3, ...);
以下の
users
テーブルを使用して例を示します。
id | name | age |
---|---|---|
1 | Alice | 25 |
2 | Bob | 30 |
3 | Charlie | 35 |
4 | David | 40 |
5 | Eve | 45 |
以下の例では、
users
テーブルから
id
が
1
,
3
,
5
のユーザーを取得します。
SELECT * FROM users WHERE id IN (1, 3, 5);
実行結果:
id | name | age |
---|---|---|
1 | Alice | 25 |
3 | Charlie | 35 |
5 | Eve | 45 |
文字列データの検索にも IN 句は使用できます。
SELECT * FROM products WHERE category IN ('Electronics', 'Clothing', 'Books');
NOT IN 句を使用すると、指定された値 以外を取得できます。
SELECT * FROM users WHERE id NOT IN (1, 3, 5);
実行結果:
id | name | age |
---|---|---|
2 | Bob | 30 |
4 | David | 40 |
このクエリは、
id
が
1, 3, 5
以外のユーザーを取得します。
IN
句を使用すると、
OR
を使った場合よりも SQL の可読性が向上し、処理速度も向上する場合があります。
-- OR を使用した場合(冗長な例)
SELECT * FROM users WHERE id = 1 OR id = 3 OR id = 5;
-- IN 句を使用(簡潔な記述)
SELECT * FROM users WHERE id IN (1, 3, 5);
以下の問題に回答してください。各問題には、必要な見本のテーブルを用意しています。
以下の
users
テーブルがあります。
users テーブル
id | name | age |
---|---|---|
1 | Alice | 25 |
2 | Bob | 30 |
3 | Charlie | 35 |
4 | David | 40 |
5 | Eve | 45 |
以下の SQL を実行したときに、どのような結果になるか答えてください。
SELECT * FROM users WHERE id IN (2, 4);
以下の
users
テーブルを使い、
id
が
1, 3, 5
以外のデータを取得する SQL を記述してください。
users テーブル
id | name | age |
---|---|---|
1 | Alice | 25 |
2 | Bob | 30 |
3 | Charlie | 35 |
4 | David | 40 |
5 | Eve | 45 |
以下の
products
テーブルを使い、
category
が
'Electronics'
または
'Clothing'
のデータを取得する SQL を記述してください。
products テーブル
id | name | category |
---|---|---|
1 | Laptop | Electronics |
2 | T-shirt | Clothing |
3 | Book | Books |
4 | Headphones | Electronics |
5 | Jacket | Clothing |
以下の SQL 文を
IN
句を使って簡潔に書き直してください。
SELECT * FROM users WHERE id = 1 OR id = 3 OR id = 5;
users テーブル
id | name | age |
---|---|---|
1 | Alice | 25 |
2 | Bob | 30 |
3 | Charlie | 35 |
4 | David | 40 |
5 | Eve | 45 |
以下の
products
テーブルを使用し、
category
が
'Books'
以外のデータを取得する SQL を記述してください。
products テーブル
id | name | category |
---|---|---|
1 | Laptop | Electronics |
2 | T-shirt | Clothing |
3 | Book | Books |
4 | Headphones | Electronics |
5 | Jacket | Clothing |
終わりに:
この問題を解くことで、IN 句と NOT IN 句の理解が深まるはずです。