【MySQL】AS - テーブル・カラムの別名
MySQLのASについて解説します。
検証環境
AS
AS句は“テーブルやカラムに別名を付ける句”です。
別名によって、クエリを短縮することができます。
基本構文
対象 AS 別名
対象
はテーブル名やカラム名です。
AS
に続く別名
を付けることができます。
サンプル
次のshops
テーブルとitems
テーブルについて、テーブルとカラムに別名を付けるサンプルを示します。
mysql> DESC shops;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
mysql> DESC items;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| price | int | YES | | NULL | |
| stock | int | YES | | NULL | |
| shop_id | int | YES | MUL | NULL | |
+---------+-------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
テーブルに別名を付ける
mysql> SELECT
-> shops.name, fruits.name, fruits.price, fruits.stock
-> FROM shops
___ih_hl_start
-> INNER JOIN items AS fruits ON shops.id = fruits.shop_id;
___ih_hl_end
+-------------+-----------+-------+-------+
| name | name | price | stock |
+-------------+-----------+-------+-------+
| Fruits Shop | Apple | 200 | 10 |
| Fruits Shop | Orange | 150 | 3 |
| Food Shop | Pineapple | 1100 | 3 |
| Food Shop | Grapes | 3500 | 1 |
+-------------+-----------+-------+-------+
4 rows in set (0.00 sec)
4行目のitems AS fruits
の部分でitems
テーブルに別名としてfruits
を付けています。
別名は結合条件の部分(shops.id = fruits.shop_id
)のように使うことが可能です。
カラムに別名を付ける
mysql> SELECT
___ih_hl_start
-> shops.name, items.name AS fruits, items.price, items.stock
___ih_hl_end
-> FROM shops
-> INNER JOIN items ON shops.id = items.shop_id;
+-------------+-----------+-------+-------+
| name | fruits | price | stock |
+-------------+-----------+-------+-------+
| Fruits Shop | Apple | 200 | 10 |
| Fruits Shop | Orange | 150 | 3 |
| Food Shop | Pineapple | 1100 | 3 |
| Food Shop | Grapes | 3500 | 1 |
+-------------+-----------+-------+-------+
4 rows in set (0.00 sec)
2行目のitems.name AS fruits
の部分でitems
テーブルのname
カラムに別名としてfruits
を付けています。
クエリ実行結果のように、カラムに別名を付けると表の列名に適用されます。
また、カラムの別名はGROUP BY
句やORDER BY
句、HAVING
句で使用できますが、WHERE
句では使用できません。