【SQL】IN句の使い方

【SQL】IN句の使い方

山下 雅也

山下 雅也

開発エンジニア/エンジニア歴2年7ヶ月

IN句は、複数の条件指定をまとめて行うために使用する命令です。

本記事では、IN句とは何か、また、IN句/NOT IN句の具体的な使い方について解説します。


1.IN句とは

IN句は、複数の条件を指定して検索を行う場合に使用するクエリです。SQLで複数の条件を指定してデータを抽出する際、IN句を使用せずにデータ抽出する場合、以下の通りとなります。例)ユーザー(user)テーブルの名前(name)が「山田」か「佐藤」の要素を取得する場合[IN句を使用しない場合]

SELECT * FROM user WHERE name = ‛山田‛ OR name = ‛佐藤‛;

これでも対象のデータは抽出できますが、指定する要素数が増えるにつれ条件文が冗長化してしまいます。ここで複数の条件指定をより短い条件文でまとめて行うために用いるのがIN句となります。


2.IN句の使い方

それでは実際にIN句を使ってみましょう。SQLで複数の条件を指定してデータを抽出する際、IN句を使用してデータ抽出する場合、以下の通りとなります。例)ユーザー(user)テーブルの名前(name)が「山田」か「佐藤」の要素を取得する場合[IN句を使用する場合]

SELECT * FROM user WHERE name IN(‛山田‛, ‛佐藤‛);

上記の通り、IN句を使用しない場合と比較すると、条件文が短くなっています。「山田“, “佐藤“, “田中“…」と指定する要素数が増えるにつれ、IN句を使用しない場合と比較した時の条件文の短さはより顕著になっていきます。


3.IN句の否定形:NOT IN

複数の条件を指定してデータを抽出する際、指定した値に該当しない要素を抽出する場合はNOT IN句を使います。実際にNOT IN句を使用したクエリの例は以下の通りとなります。例)ユーザー(user)テーブルの中から名前(name)が「山田」か「佐藤」を含まないレコードを取得する場合

SELECT * FROM user WHERE name NOT IN(‛山田‛, ‛佐藤‛);

上記の例では、「山田」と「佐藤」を含まないレコード全てを取得することが可能となります。ただし、膨大なレコード数を管理している状況下では、NOT IN句を用いた処理は重たくなってしまいます。これは内部でデータの全検索を行っているためです。レコード数が多い中でNOT IN句を使用する際はこうした点に注意が必要です。


4.まとめ

以上、IN句とは何か、また、IN句/NOT IN句の具体的な使い方について解説してきました。複数の条件を指定してデータを抽出する場合は是非使ってみてください。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め定年まで働けるエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって、エンジニアとしてだけでなくビジネスパーソンとして高い水準を目指し、社会や顧客に必要とされることで、関わる人々に感動を与える集団であろうと思っています。

  • 定年までIT業界で働くためのスキルが身につく「感動大学」と「技術勉強会」!
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な「人事評価制度」!
  • 理想のエンジニア像に近づくためのよきアドバイザー「専任コーチ制度」!
  • 稼動確認の徹底により実現できる平均残業時間17時間の働きやすい環境!

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

公式アカウントLINE限定!ボールドの内定確率が分かる無料診断実施中
公式アカウントLINE限定!
ボールドの内定確率が分かる無料診断実施中