今回はPostgreSQLのASを使い、取得結果の列に別名を付ける方法を学習しました。取得したデータの意味を整理します。
所要時間は15分ほどです。
それでは、さっそく始めていきましょう!
今日のテーマと到達目標
自分で列の別名を指定し、取得結果の列見出しと元のTableの列名を区別できることが目標です。
用語の定義
| 用語 | 意味 |
|---|---|
| Alias(別名) | SQLの中で列やTableに付ける別の名前 |
| AS | 別名を付けるときに使うキーワード |
| 列の別名 | 今回のSELECTでは、取得結果の列見出しとして使う名前 |
| 結果セット | SELECTの実行で返される行と列の集まり |
今回は列の別名を扱います。使用するTableはproductsです。1行は商品1種類を表します。
| 列名 | 意味 |
|---|---|
| product_id | 商品を識別する番号 |
| product_name | 商品名 |
| price_yen | 円単位の価格 |
登録済みの商品はonigiri、bento、ame、panの4件です。
ASの書き方
列に別名を付ける場合は、元の列名 AS 別名と書きます。
SELECT
product_name AS name,
price_yen AS price
FROM products
ORDER BY product_id;
| 指定 | 元の列名 | 結果の列見出し |
|---|---|---|
| product_name AS name | product_name | name |
| price_yen AS price | price_yen | price |
ORDER BY product_idは、商品IDの昇順に結果の行を並べる指定です。
実行結果を確認する
上記のSQLを実行し、次の結果を確認しました。
name | price
---------+-------
onigiri | 100
bento | 500
ame | 50
pan | 100
(4 行)
列見出しがnameとpriceになっています。商品名や価格の値はそのまま取得されています。
自分で別名を付ける演習
次の条件でSQLを書きました。
- 商品名の列に
item_nameという別名を付ける。 - 価格の列に
amount_yenという別名を付ける。 - 商品IDの昇順に行を並べる。
SELECT
product_name AS item_name,
price_yen AS amount_yen
FROM products
ORDER BY product_id;
実際の実行結果は次のとおりです。
item_name | amount_yen
-----------+------------
onigiri | 100
bento | 500
ame | 50
pan | 100
(4 行)
指定したとおり、列見出しがitem_nameとamount_yenになりました。
元のTableの列名も変更されるのか
「元のTableの列名もitem_nameやamount_yenに変更されたか」という確認問題には、「変更されていない」と回答しました。
ASは今回の取得結果で使う別名を指定します。元のTableの定義を書き換える操作ではありません。
| 対象 | 商品名の列の名前 | 価格の列の名前 |
|---|---|---|
| 元のproducts | product_name | price_yen |
| 演習の取得結果 | item_name | amount_yen |
このSELECTの実行後も、元の列を指定するときはproduct_nameとprice_yenを使います。
合格条件と学習記録
| 確認項目 | 確認できた内容 |
|---|---|
| ASを使った結果を確認できる | name、priceの見出しで4行を取得 |
| 自分で列の別名を指定できる | item_name、amount_yenを指定するSQLを実行 |
| 元の列名と別名を区別できる | 元のTableの列名は変更されていないと回答 |
2つのSQLの実行画面と、確認問題の回答で理解を確認しました。共有されたSQLはエラーなく実行できました。
まとめ
| 書き方 | 役割 |
|---|---|
| product_name AS item_name | 商品名の結果見出しをitem_nameにする |
| price_yen AS amount_yen | 価格の結果見出しをamount_yenにする |
ASで取得結果の列に分かりやすい名前を付けられます。取得結果の別名と、元のTableに定義された列名を分けて考えることが大切です。