AS句でカラム名を変えよう
ストーリー
「英語のカラム名だとわかりにくいこともあるよね」
「name とか salary って書いてあっても、レポートとして見せるときは日本語がいいですよね」
「そう。AS句を使えば、出力するときのカラム名を好きな名前に変えられるんだ」
「名前を変えるって、テーブルの定義が変わるんですか?」
「いや、表示上の名前を変えるだけ。テーブル自体には影響しないよ」
AS句とは
AS句(エイリアス)は、出力結果のカラム名を一時的に別の名前に変えるSQL句です。
テーブルの実際のカラム名はそのまま。表示されるときだけ別名になります。
基本構文
SELECT カラム名 AS 別名 FROM テーブル名;| 要素 | 意味 |
|---|---|
カラム名 | テーブルの元のカラム名 |
AS | 「〜として」の意味 |
別名 | 表示したい名前 |
実際にやってみよう
名前と給料を日本語表示
SELECT name AS 名前, salary AS 給料 FROM employees;出力:
名前 給料
-------- ------
田中太郎 350000
佐藤花子 320000
鈴木一郎 400000
高橋美咲 300000
伊藤健太 280000
name が 名前、salary が 給料 として表示されています。
すべてのカラムにエイリアスを付ける
SELECT
id AS 社員番号,
name AS 氏名,
department AS 部署,
salary AS 月給
FROM employees;出力:
社員番号 氏名 部署 月給
-------- -------- ------ ------
1 田中太郎 開発部 350000
2 佐藤花子 営業部 320000
3 鈴木一郎 開発部 400000
4 高橋美咲 人事部 300000
5 伊藤健太 営業部 280000
ポイント: SQL文が長くなるときは、上のように改行して書くと読みやすくなります。
スペースを含む別名
別名にスペースを含めたい場合は、ダブルクォーテーションで囲みます。
SELECT name AS "社員 名前", salary AS "月給(円)" FROM employees;出力:
社員 名前 月給(円)
--------- --------
田中太郎 350000
佐藤花子 320000
鈴木一郎 400000
高橋美咲 300000
伊藤健太 280000
スペースや記号(括弧など)を含む場合は
"で囲むことを忘れずに。
productsテーブルでも練習
商品名と価格を日本語カラム名で
SELECT name AS 商品名, price AS 価格 FROM products;出力:
商品名 価格
-------------- -----
ノートPC 89000
マウス 2500
デスク 35000
チェア 45000
モニター 32000
キーボード 8000
ヘッドセット 12000
ブックシェルフ 18000
カテゴリ・商品名・在庫数を日本語で
SELECT
category AS カテゴリ,
name AS 商品名,
stock AS "在庫数(個)"
FROM products;出力:
カテゴリ 商品名 在庫数(個)
-------- -------------- ----------
電子機器 ノートPC 15
電子機器 マウス 100
家具 デスク 8
家具 チェア 12
電子機器 モニター 20
電子機器 キーボード 50
電子機器 ヘッドセット 30
家具 ブックシェルフ 5
AS句はなぜ便利なのか
1. レポート・帳票の作成
お客様や上司に見せるときに、英語のカラム名では伝わりにくいことがあります。
-- 英語のまま(エンジニア向け)
SELECT name, salary FROM employees;
-- 日本語にする(レポート向け)
SELECT name AS 氏名, salary AS 月給 FROM employees;2. わかりやすい名前を付ける
カラム名が略語や分かりにくい名前のとき、エイリアスで補足できます。
-- dept_cd だけだと何かわからない
SELECT dept_cd AS 部署コード FROM some_table;3. 計算結果に名前を付ける(プレビュー)
後のステップで学びますが、計算結果にもエイリアスを付けられます。
SELECT name, salary * 12 AS 年収 FROM employees;テーブルにもエイリアスを付けられる
テーブル名にもASで別名を付けることができます。
SELECT e.name, e.department FROM employees AS e;出力:
name department
-------- ----------
田中太郎 開発部
佐藤花子 営業部
鈴木一郎 開発部
高橋美咲 人事部
伊藤健太 営業部
employees AS e とすることで、e.name のように短く書けます。
テーブルのエイリアスは、複数テーブルを扱うときに特に便利です。 今は「こういうこともできるんだ」と覚えておけば大丈夫です。
ASは省略できる
実は AS キーワードは省略することもできます。
-- ASあり
SELECT name AS 名前 FROM employees;
-- AS省略(スペースだけ)
SELECT name 名前 FROM employees;どちらも同じ結果になります。ただし、ASを書いた方が読みやすいので、省略しないことをおすすめします。
よくある間違い
カンマの位置を間違える
-- 間違い: ASの 前にカンマが入っている
SELECT name, AS 名前 FROM employees;
-- 正しい
SELECT name AS 名前 FROM employees;エイリアスにスペースを含むのにクォーテーションがない
-- エラーになる
SELECT name AS 社員 名前 FROM employees;
-- 正しい
SELECT name AS "社員 名前" FROM employees;ハンズオン
以下のSQLを順番に実行してください。
-- 1. 名前と給料を日本語カラム名で表示
SELECT name AS 名前, salary AS 給料 FROM employees;
-- 2. すべてのカラムに日本語エイリアスを付ける
SELECT
id AS 社員番号,
name AS 氏名,
department AS 部署,
salary AS 月給
FROM employees;
-- 3. スペースを含むエイリアス
SELECT name AS "社員名", salary AS "月給(円)" FROM employees;
-- 4. productsテーブルで商品名と価格を日本語表示
SELECT name AS 商品名, price AS "価格(円)" FROM products;
-- 5. テーブルにエイリアスを付ける
SELECT e.name, e.salary FROM employees AS e;まとめ
| ポイント | 内容 |
|---|---|
| AS句 | カラムの表示名を一時的に変える |
| 基本構文 | SELECT カラム名 AS 別名 |
| スペースを含む場合 | AS "別名" とダブルクォーテーションで囲む |
| テーブルにもAS | FROM テーブル名 AS 別名 |
| テーブルへの影響 | なし(表示だけ変わる) |
チェックリスト
-
ASでカラムに別名を付けられた - スペースを含むエイリアスを作れた
- テーブルにエイリアスを付けられた
次のステップへ
AS句でカラム名をわかりやすく表示できるようになりましたね。
次のセクションでは、DISTINCT を使ってデータの重複を除く方法を学びます。
「部署の一覧が欲しいのに、同じ部署が何回も出てくる...」という問題を解決できますよ!
推定読了時間: 30分