SQLのIN句とNOT IN句の違いと使い方

SQLには多くの機能がありますが、データを効率的にフィルタリングするための「IN句」や「NOT IN句」といったクエリがあります。これらの句は何か、どのように使い分けるべきなのでしょうか。本記事ではIN句とNOT IN句の基本的な違いから、具体的な使用例まで詳しく解説します。

目次

IN句とは

IN句は、指定された複数の値のいずれかと一致するデータを抽出するためのSQLのクエリです。

基本構文

基本的な形式は以下のようです。

SELECT * FROM table_name WHERE column_name IN (value1, value2, ...);

使用例

例として、以下のような商品テーブル(products)があるとします。

ID商品名カテゴリ
1りんご果物
2バナナ果物
3牛乳飲料
商品テーブル

IN句を使って「果物」カテゴリの商品だけを抽出するSQLは以下のようになります。

SELECT * FROM products WHERE カテゴリ IN ('果物');

NOT IN句とは

NOT IN句は、指定された複数の値のいずれとも一致しないデータを抽出するためのSQLのクエリです。

基本構文

基本的な形式は以下のようです。

SELECT * FROM table_name WHERE column_name NOT IN (value1, value2, ...);

使用例

先程の商品テーブルを使って、「果物」カテゴリ以外の商品を抽出するSQLは以下のようになります。

SELECT * FROM products WHERE カテゴリ NOT IN ('果物');

IN句とNOT IN句の違い

適用ケース

IN句は「一致するものを探す」場合に、NOT IN句は「一致しないものを探す」場合に使用します。

読みやすさと効率

IN句とNOT IN句を使うことで、複数のOR条件やAND条件を並べるよりも読みやすく、効率的なクエリを作成できます。

まとめ

IN句とNOT IN句はSQLで頻繁に使用される便利な機能です。適用ケースや基本構文を理解して、効率的なデータ操作を行いましょう。

コメント

コメントする

目次