【SQL第2回】データの取得:SELECTとFROM

SQL基礎講座 全10回(第2回)

【SQL第2回】データの取得:SELECTとFROM

データベース操作の基本中の基本である、特定の列(カラム)を狙い撃ちしてデータを引っ張り出す方法と、結果の表示名(ヘッダー名)をわかりやすくカスタマイズする別名(AS)を学びます。

📌 SQL講座ロードマップ一覧(クリックで移動)

1. 必要な列だけを狙い撃ちして取得する理由

第1回では、すべての列を取得するために `SELECT *` を使用しました。しかし、数百万件のデータを持つ本番のデータベースで常に `*` を使っていると、不要なデータまで読み込むことになり、通信速度が低下してサーバーに大きな負荷がかかってしまいます。

そのため、実務ではアスタリスクではなく、`SELECT カラム名, カラム名` のように必要な列の名前を具体的にカンマ区切りで列挙してデータを取り出すのが原則ルールです。

2. カラム名に別名を割り当てる AS 構文

データベースに登録されているカラム名は、英語の省略名(例: `user_name` や `mail_addr`)であることが多く、画面に出力した際に見づらい場合があります。

これを一時的(実行結果の表示上だけ)に分かりやすい名称に変更したい時は、`AS` を使って別名(エイリアス)を設定します。

`SELECT user_name AS ユーザー名 FROM users;` と記述することで、出力結果の表のヘッダーが「ユーザー名」という読みやすい日本語に切り替わります。

3. カラム指定とエイリアスを適用したSQLクエリ

以下のクエリは、`users` テーブルから名前とメールアドレスのみを限定抽出し、カラムのヘッダーを日本語のわかりやすい表示に置き換える実用コード例です。

select_columns.sql
SELECT
    name AS 氏名,
    email AS メールアドレス
FROM
    users;

📌 改行とインデントを積極的に使う

SQLは改行やスペースを無視して解釈するため、1行で `SELECT name AS 氏名, email AS メールアドレス FROM users;` と書いても全く同じに動きます。しかし、カラム数が多くなると非常に見づらくなるため、上記コード例のように **`SELECT` の直後や `FROM` の前で改行を入れ、カラム名の行頭を下げる(インデントを入れる)** と可読性が劇的に上がります。

✍️ 第2回 理解度チェック(問題)

SQLでカラム名やテーブル名に対して一時的に別の表示名(エイリアス)を設定する際に、元の名前の後ろに記述する英文字2文字のキーワードは何でしょうか?

※この問題の解答と解説は、ページ最下部(まとめの前)に掲載しています。

5. まとめと次回予告

第2回の講義はお疲れ様でした!今回の重要ポイントを振り返りましょう。

  • `SELECT カラム名, カラム名` で必要な列データのみを選択的に取り出せる。
  • `AS` キーワードを使って、カラムヘッダーなどに一時的な別名を設定できる。
  • 可読性を高めるため、クエリが長くなる時は改行とインデントを積極的に利用する。

次回(第3回)は、すべての行を取得するのではなく、条件を指定して欲しいデータだけをフィルタリングするRDBの最も重要な機能「WHERE句による条件絞り込み」について学びます。お楽しみに!

🔑 第2回 理解度チェックの解答と解説

【解説】

正解は **`AS`** です。 `SELECT id AS 会員番号 FROM members;` のように使用し、出力される表の項目名を分かりやすく日本語にしたり、集計計算した結果の列に `AS 合計金額` のように名前を与えたりする際にも多用される必須構文です。