更新日:
システム開発の現場において、データベースから必要な情報を取得する作業は毎日のように行われます。その際、データのやり取りで中心的な役割を果たすのがSELECT文です。テーブルに蓄積されたデータから、欲しい情報だけを指定して取得する役割を持っています。
SELECT文の基本構文
SELECT句では、取得したい列名を設定します。複数の列を指定する場合は、カンマで区切るのがルールです。
FROM句には、データを取得する対象のテーブル名を記述しましょう。WHERE句は検索条件を指定するためのものです。SELECT句とFROM句の記述が必須であるのに対し、WHERE句は条件が必要なときにだけ書き足します。
参考サイト:MySQL 公式サイト(SELECT文について)
SQLを使ってみる
① 特定の列の表示
特定の列だけを画面に表示させたい場合は、SELECT句に対象の列名を設定します。
たとえば、都道府県テーブルから名称(大阪府など)のみを取得するケースがこれに該当します。
| name |
|---|
| 三重県 |
| 滋賀県 |
| 京都府 |
| ● 大阪府 |
| 兵庫県 |
| 奈良県 |
② 複数の列の表示
2つ以上の列を同時に表示させたい場合は、列名同士をカンマで繋ぎます。
例として、社員テーブルから姓と名の両方を同時に抜き出す設定を見てみましょう。
| name1 | name2 |
|---|---|
| 開発 | 太郎 |
| 山田 | 次郎 |
| 佐藤 | 花子 |
| 鈴木 | 一郎 |
③ 全件走査
対象のテーブルにあるすべての列を表示させたいとき、ひとつずつ手作業で列名を入力するのは骨が折れますよね。そんなときに重宝するのが*(アスタリスク)。これひとつを置くだけで、全列を指定したときとまったく同じ結果を一瞬で得られます。
例として、社員テーブルのデータを丸ごと取得してみましょう。
| employee_id | group_id | name1 | name2 | sex_id | age | birthday | tel | |
|---|---|---|---|---|---|---|---|---|
| 1 | 2 | 開発 | 太郎 | 2 | 48 | 1978/09/07 | taro_kaihatsu@example.com | 09027109628 |
| 2 | 2 | 山田 | 次郎 | 1 | 29 | 1997/03/13 | jiro_yamada@example.com | 08063486793 |
| 3 | 1 | 佐藤 | 花子 | 1 | 23 | 2003/08/14 | hanako_sato@example.com | 09087044388 |
④ 別名
SELECT文で列名やテーブル名を出力する際、指定した名称の後ろに「AS」を添えることで、一時的な別名(エイリアス)を定義できます。ちなみに、このASという記述自体は省略してスペースを空けるだけでも機能します。
例)社員テーブルの姓と名と年齢を取得する。
| 姓 | 名 | 年齢 |
|---|---|---|
| 開発 | 太郎 | 48 |
| 山田 | 次郎 | 29 |
| 佐藤 | 花子 | 23 |
※ただし、Oracle DBを使う場合はちょっとした注意が必要。テーブルに別名を与える際、ASを使うとエラーになってしまう独自ルールが存在します。
参考サイト:Oracle 公式サイト(SELECT文について)

