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;
								


演示数据库

在本教程中,我们将使用 yssmx 样本数据库。

下面是选自 "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_云搜索MX教程      _/   _ 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 列的别名。 提示: 如果列名称包含空格,要求使用双引号或方括号:

实例

SELECT name AS n, country AS c
FROM Websites;

执行输出结果:

在下面的 SQL 语句中,我们把三个列(url、alexa 和 country)结合在一起,并创建一个名为 "site_info" 的别名:

实例

SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS site_info
FROM Websites;

执行输出结果:



表的别名实例

下面的 SQL 语句选取 "云搜索MX教程" 的所有访问记录。我们使用 "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="云搜索MX教程";

执行输出结果:

不带别名的相同的 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="云搜索MX教程";

执行输出结果:

在下面的情况下,使用别名很有用:

  • 在查询中涉及超过一个表
  • 在查询中使用了函数
  • 列名称很长或者可读性差
  • 需要把两个列或者多个列结合在一起