DE135:SQLの構文を一通り知っていて、記述・実行できる(DML・DDLの理解、各種JOINの使い分け、集計関数とGROUP BY、CASE文を使用した縦横変換、副問合せやEXISTSの活用など)
はじめに:この記事で解決できること
SQL(Structured Query Language)は、データの取得や操作に不可欠なスキルです。日々のデータ処理で「複雑な条件での抽出方法がわからない」「JOINの使い方に自信がない」と悩む方も多いのではないでしょうか。本記事では、SQLの主要な構文を網羅的に解説し、実行可能な例とともに理解を深めていきます。この記事を通じて、データの効率的な操作方法と分析の基礎スキルを習得しましょう。
SQL構文の基本:DMLとDDLの違い
SQLは、大きく分けてDML(Data Manipulation Language)とDDL(Data Definition Language)に分かれます。
- DML:データの操作を行う命令群です。主に
SELECT
、INSERT
、UPDATE
、DELETE
が含まれます。データの取得や更新に用いるため、日常的な業務で多く活用されます。 - DDL:データベース構造の定義や変更を行う命令群です。
CREATE
、ALTER
、DROP
などが該当し、テーブルやインデックスの作成・削除を管理します。
DMLとDDLの使い分け例
例えば、販売データから特定の商品情報を取得したり、新しい商品を追加する場合にはDML
を使用しますが、テーブル構造の見直しが必要な際はDDL
が役立ちます。
各種JOINの使い分け:INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN
データの結合には様々なJOIN構文があり、それぞれの特性を理解することが重要です。
- INNER JOIN:両方のテーブルに共通するデータのみを取得します。
- LEFT JOIN:左側のテーブルの全データを取得し、右側に該当がない場合はNULLを返します。
- RIGHT JOIN:右側のテーブルを優先して取得し、左側に該当がない場合はNULLを返します。
- FULL OUTER JOIN:両方のテーブルから、存在するすべてのデータを取得します。
このようなJOINの使い分けにより、特定の条件下で効率的にデータを結合できます。
集計関数とGROUP BYでデータをまとめる
分析で多用される集計関数とGROUP BY
は、データを効率よく集計・表示するために活用されます。
- COUNT:データ数のカウント
- SUM:合計値の計算
- AVG:平均値の計算
- MAX/MIN:最大・最小値の取得
このように、集計関数を組み合わせることで簡潔にデータの要約が可能です。
CASE文で縦横変換を実現
CASE
文は、SQLで条件に応じた値を返すための構文で、特定条件に基づいた縦横変換やカスタマイズが可能です。
例:性別データのラベル変換
1 2 3 4 5 |
SELECT customer_name, CASE WHEN gender = 'M' THEN 'Male' WHEN gender = 'F' THEN 'Female' ELSE 'Other' END AS gender_label FROM customers; |
これにより、直感的にデータの整理ができ、分析結果がわかりやすくなります。
副問い合わせとEXISTSの活用法
複数のテーブルを組み合わせる高度な分析には、副問い合わせやEXISTS
の利用が有効です。副問い合わせにより、条件に基づいたデータ抽出が簡潔に行えます。
例:在庫のある商品のみ取得
1 2 3 |
SELECT product_id, product_name FROM products WHERE EXISTS (SELECT 1 FROM inventory WHERE inventory.product_id = products.product_id AND inventory.quantity > 0); |
まとめ:SQLを使って効率的にデータ操作を行う
SQLの主要な構文を習得することで、日常的なデータ処理がスムーズに行えるようになります。本記事で紹介したDML・DDLやJOIN、集計、CASE文、副問い合わせの活用法を基礎として、実際のデータ分析業務での活用を進めてください。
コメント