SQLの基本「SELECT文」をわかりやすく解説!クエリの使い方やデータベース操作の基礎を学べます。
こんにちは、リーマンパパです!今回はSQLの中でも最も基本的なSELECT文の書き方についてご紹介します。エンジニアになりたての方や、エンジニアではないけどデータベースに興味があるといった方へ少しでも参考になれば幸いです。
それでは早速参りましょう!
はじめに
SQL(Structured Query Language)は、データベースを操作するための言語です。その中でも「SELECT文」は、データベースから情報を取得するための最も基本的かつ重要な命令文です。本記事では、SELECT文の基本的な構文から、複数のテーブルを扱う方法や条件を絞り込むためのWHERE句の使い方まで、丁寧に解説します。
SELECT文とは?
SELECT文は、データベースのテーブルから必要な情報を検索し表示するための命令文です。例えば、以下のような2つのテーブルがあるとします。
テーブル1: customer
店番 | CIF | 顧客名 |
---|---|---|
100 | 12345678 | ラリー ペイジ |
200 | 23456789 | ジェフ ベゾス |
300 | 34567891 | イーロン マスク |
400 | 45678912 | スティーブ ジョブズ |
500 | 56789123 | 羽生 善治 |
テーブル2: corporate
創業者CIF | 企業名 | 現役CEO |
---|---|---|
12345678 | グーグル | 引退 |
23456789 | アマゾン | 引退 |
34567891 | ペイパル | 引退 |
34567891 | テスラ | 現役 |
45678912 | ピクサー | 引退 |
45678912 | アップル | 引退 |
上記の2つのテーブルから、以下のような情報を取得したいとします。
企業名 | 顧客名 | 現役CEO |
---|
これを実現するのがSELECT文です。
SELECT句の基本構文
SELECT文の基本構文は次の通りです。
SELECT カラム名1, カラム名2, ...
FROM テーブル名;
`
複数のカラムを指定する場合は、カラム名をカンマで区切ります。今回の例では、次の3つのカラムを取得します。
- corporate.企業名
- customer.顧客名
- corporate.現役CEO
この場合のSELECT文は次のようになります。
SELECT DISTINCT
corporate.企業名,
customer.顧客名,
corporate.現役CEO
ここで使われているDISTINCT
は、重複するデータを除外するためのキーワードです。
FROM句の使い方
FROM句では、どのテーブルからデータを取得するかを指定します。今回の例では、customer
テーブルとcorporate
テーブルを結合してデータを取得します。
テーブルの結合
複数のテーブルを結合する場合は、次のようにJOIN句を使用します。
FROM テーブルA
LEFT JOIN テーブルB ON テーブルA.カラム名 = テーブルB.カラム名
JOINには以下の種類があります:
- LEFT JOIN: 左側のテーブルの全レコードを取得し、条件に合致する右側のテーブルのレコードを結合。
- RIGHT JOIN: 右側のテーブルの全レコードを取得し、条件に合致する左側のテーブルのレコードを結合。
- INNER JOIN: 両方のテーブルで条件に合致するレコードのみを取得。
今回は、LEFT JOIN
を使用してcustomer
テーブルとcorporate
テーブルを結合します。
FROM customer
LEFT JOIN corporate ON customer.CIF = corporate.創業者CIF
WHERE句で条件を指定する
WHERE句を使うと、検索結果を特定の条件で絞り込むことができます。基本構文は次の通りです。
WHERE カラム名 条件演算子 条件値;
主な条件演算子は以下の通りです:
=
: 等しい<>
: 等しくないLIKE
: 部分一致IN
: 指定した値のいずれかに一致BETWEEN
: 範囲指定
今回の例では、「現役CEO」のカラムが「現役」のデータだけを取得します。
WHERE corporate.現役CEO = '現役'
文字列を指定する場合は、シングルクォーテーション ('
) で囲む点に注意してください。
最終的なSQL文
以上をまとめると、今回のSQL文は以下のようになります。
SELECT DISTINCT
corporate.企業名,
customer.顧客名,
corporate.現役CEO
FROM customer
LEFT JOIN corporate ON customer.CIF = corporate.創業者CIF
WHERE corporate.現役CEO = '現役';
このクエリを実行すると、以下の結果が得られます。
企業名 | 顧客名 | 現役CEO |
---|---|---|
テスラ | イーロン マスク | 現役 |
おわりに
今回の例では、SELECT文の基本構文と、複数テーブルを扱うJOIN句、条件を絞り込むWHERE句について解説しました。SQLの基本をマスターすれば、業務データを効率的に操作できるようになります。
まずは簡単なクエリから試してみて、徐々に複雑なSQL文にも挑戦してみてください!
以上が「SELECT文」の基本的な解説です。次回は、集計関数やGROUP BY句について詳しく解説します。お楽しみに!
コメント