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 句の理解が深まるはずです。