SQL エイリアス
SQLを使用すると、テーブル名または列名にエイリアスを指定できます。
SQL エイリアス
SQLを使用すると、テーブル名または列名にエイリアスを指定できます。
基本的に、エイリアスは列名の可読性を高めるために作成されます。
列のSQLエイリアス構文
SELECT column_name AS alias_name FROM table_name;
テーブルのSQLエイリアス構文
SELECT column_name(s) FROM table_name AS alias_name;
デモデータベース
このチュートリアルでは、サンプルサンプルデータベースを使用します。
以下は "Websites" テーブルから選択したデータです:
mysql> SELECT * FROM Websites; +----+---------------+---------------------------+-------+---------+ | id | name | url | alexa | country | +----+---------------+---------------------------+-------+---------+ | 1 | Google | https://www.google.cm/ | 1 | USA | | 2 | 淘宝 | https://www.taobao.com/ | 13 | CN | | 3 | サンプル | http://www.example.com/ | 5000 | USA | | 4 | 微博 | http://weibo.com/ | 20 | CN | | 5 | Facebook | https://www.facebook.com/ | 3 | USA | | 7 | stackoverflow | http://stackoverflow.com/ | 0 | IND | +----+---------------+---------------------------+-------+---------+
以下は "access_log" ウェブサイトアクセス記録テーブルのデータです:
mysql> SELECT * FROM access_log; +-----+---------+-------+------------+ | aid | site_id | count | date | +-----+---------+-------+------------+ | 1 | 1 | 45 | 2016-05-10 | | 2 | 3 | 100 | 2016-05-13 | | 3 | 1 | 230 | 2016-05-14 | | 4 | 2 | 10 | 2016-05-14 | | 5 | 5 | 205 | 2016-05-14 | | 6 | 4 | 13 | 2016-05-15 | | 7 | 3 | 220 | 2016-05-15 | | 8 | 5 | 545 | 2016-05-16 | | 9 | 3 | 201 | 2016-05-17 | +-----+---------+-------+------------+ 9 rows in set (0.00 sec)
列のエイリアスの例
次のSQL文は、name列のエイリアスとcountry列のエイリアスの2つのエイリアスを指定しています。ヒント:列名にスペースが含まれる場合は、二重引用符または角括弧を使用する必要があります:
例
SELECT name AS n, country AS c
FROM Websites;
FROM Websites;
実行出力結果:
次のSQL文では、3つの列(url、alexa、country)を結合し、"site_info" というエイリアスを作成します:
例
SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS
site_info
FROM Websites;
FROM Websites;
実行出力結果:
テーブルのエイリアスの例
次のSQL文は、"サンプル" のすべてのアクセス記録を選択します。"Websites" テーブルと "access_log" テーブルを使用し、それぞれにテーブルエイリアス "w" と "a" を指定します(エイリアスを使用してSQLをより簡潔にします):
例
SELECT w.name, w.url, a.count, a.date
FROM Websites AS w, access_log AS a
WHERE a.site_id=w.id and w.name="サンプル";
FROM Websites AS w, access_log AS a
WHERE a.site_id=w.id and w.name="サンプル";
実行出力結果:
エイリアスを使用しない同じSQL文:
例
SELECT Websites.name, Websites.url, access_log.count, access_log.date
FROM Websites, access_log
WHERE Websites.id=access_log.site_id and Websites.name="サンプル";
FROM Websites, access_log
WHERE Websites.id=access_log.site_id and Websites.name="サンプル";
実行出力結果:
次のような場合、エイリアスを使用すると便利です:
- クエリで複数のテーブルが関わる場合
- クエリで関数が使用されている場合
- 列名が長い、または可読性が低い場合
- 2つ以上の列を結合する必要がある場合