プログラミング

SELECT文とは?SQLで始めるデータ抽出の基本

select文は、SQLの基本命令で、データベースから必要な情報を抽出するために使います。

テーブルから全件や特定のカラムを取得したり、条件付け・並び替え・集計処理を行ったりすることができます。

例えば、SELECT * FROM employeesと記述することで、従業員情報を一度に取得できます。

基本構文の理解

SELECT句の役割と記述方法

SELECT句はテーブルからどのカラムの情報を取得するかを指定する部分です。

  • 取得したいカラム名をカンマで区切って記述します。
  • すべてのカラムを取得する場合は、アスタリスク(*)を使用します。

SELECT句はSQLクエリの中心となる部分として、目的に合わせた柔軟なカラム選択が可能です。

FROM句でのテーブル指定

FROM句はデータを取得する対象のテーブルを明示する部分です。

  • テーブル名をそのまま記述するか、エイリアスを指定することで、後続の結合操作などがしやすくなります。
  • 複数のテーブルを扱う場合の記述も行いやすく、SQL全体の見通しが良くなります

WHERE句による条件設定

WHERE句は取得するデータに対する条件を設定するために利用します。

  • 条件式は比較演算子(=、>、<、>=、<=)や論理演算子(AND、OR)を用いて記述します。
  • 文字列や数値など、扱うデータの型に合わせた条件記述ができるため、目的のデータを狙い撃ちすることが可能です

データ抽出の機能

任意の列指定と全件取得の方法

SQLでは取得する列を自由に選べるため、必要なデータだけを抜き出すことができます。

  • 特定の列を名前で指定することで、テーブル内の全カラムではなく必要な情報を抽出します。
  • 全件取得したい場合は、アスタリスク(*)を使用して全てのカラムをまとめて取得します

この機能により、処理の負荷を軽くしたり、読みやすい結果を得たりすることが可能です。

ORDER BYを用いた並び替え

ORDER BY句を使用することで、結果セットの行を指定のカラムに基づいて並び替えることができます。

  • 昇順(ASC)や降順(DESC)を指定でき、ユーザーのニーズに合わせたソート順を設定できます。
  • 複数のカラムを指定することもでき、例えば第一ソートキーと第二ソートキーを組み合わせて柔軟な並び替えが可能です

この機能は、データの可読性を高め、分析しやすい結果を提供します。

GROUP BYによる集計処理

GROUP BY句は、同じ値を持つ行をまとめ、集計関数と組み合わせてデータの傾向や合計値、平均値などを求める際に利用します。

  • 例えば、各部署ごとの平均給与や売上合計など、データ内のパターンをシンプルかつ効果的に把握できます。
  • 集計関数にはAVG、SUM、COUNT、MAX、MINなどがあり、ニーズに合わせたカスタマイズが可能です

これにより、ビジネスや統計の現場で意義のある情報を引き出しやすくなります。

複数テーブルの結合処理

INNER JOINの基本

INNER JOINは複数のテーブルを結合して、一致するデータのみを取得する際に利用します。

  • 一つ以上のテーブル同士で共有しているカラムを基準に結合条件を設定します。
  • 結合することで、例えば従業員情報と部署情報をひとつの結果セットにまとめることができます

結合条件の設定方法

結合条件はON句を用いて指定します。

  • 一般的には、結合対象のカラム同士が同じ値であることを条件に設定します。
  • 例えば、employees.department_id = departments.department_idのように記述することで、両テーブルから関係性を持つデータだけを抽出できます

外部結合などの応用

外部結合は、内部結合とは違い、一方のテーブルに存在するが他方には存在しないデータも含めることができます。

  • LEFT JOINを使うと、左側のテーブルの全データが含まれ、右側に一致するデータがある場合にその値が抽出されます。
  • RIGHT JOINはその逆で、右側のテーブルの全データが対象となります。

これらの機能により、欠損データを補完しながら幅広いデータ分析が実現できます。

実例によるクエリの構築

単純なクエリ例の紹介

基本構文を組み合わせた単純なクエリ例として、従業員テーブルから特定の情報を取得する場合の記述方法を紹介します。

  • 例えば、従業員の基本情報を抽出する場合、以下のようなクエリが考えられます
SELECT employee_id, first_name, last_name, hire_date
FROM employees
WHERE status = 'active';

このように、条件を設定することで現在アクティブな従業員のデータを取り出すことが可能になります。

サブクエリの利用方法

サブクエリを利用すると、一つのクエリ内でさらに別のクエリを埋め込むことができます。

  • サブクエリは結果セットを一時的なテーブルとして扱い、主クエリのフィルタ条件や集計に活用されます。
  • 例えば、最高給与の従業員を抽出する場合、サブクエリを利用して以下のように記述することができます
SELECT first_name, last_name, salary
FROM employees
WHERE salary = (
  SELECT MAX(salary)
  FROM employees
);

このような記述によって、サブクエリ内で算出された値を基準にデータを抽出できます。

ケース分けによる条件記述方法

条件が複雑な場合には、CASE文を利用して柔軟に分岐させた値を返すことが可能です。

  • CASE文を使うことで、特定の条件下で異なる値を返す処理をクエリ内に組み込めます。
  • 例えば、給与の範囲に応じてランクを付ける場合、以下のような記述が参考になります
SELECT first_name, last_name, salary,
  CASE
    WHEN salary >= 80000 THEN '高'
    WHEN salary >= 50000 THEN '中'
    ELSE '低'
  END AS salary_rank
FROM employees;

この方法により、結果セット内に条件に応じた追加情報を含めることができます。

まとめ

今回の記事では、SELECT文の基本構文から複数テーブルの結合やサブクエリの利用、CASE文による条件分岐に至るまで、SQLでのデータ抽出に関するさまざまな文法について説明しました。

柔らかい口調で記述して、SQLの操作がスムーズに実施できるように工夫しました。

今回紹介した内容を参考に、実際のデータベース操作に活かしていただけると嬉しいです。

関連記事

Back to top button