通过使用 SQL,可以为表名称或列名称指定别名。
SQL 别名
通过使用 SQL,可以为表名称或列名称指定别名。
基本上,创建别名是为了让列名称的可读性更强。
列的 SQL 别名语法
SELECT column_name AS alias_name
FROM table_name;
表的 SQL 别名语法
SELECT column_name(s)
FROM table_name AS alias_name;
列的别名示例
演示数据库
在猿变手册教程中,我们将使用 yuanbian 样本数据库。
下面是选自 "articles" 表的数据:
+----+--------------+----------+--------+---------------------+
| id | title | author | a_type | pub_date |
+----+--------------+---------—+--------+---------------------+
| 1 | hadoop简介 | 大猿 | 311 | 2003-01-05 11:23:00 |
| 2 | python元类 | 小猿 | 163 | 2003-01-11 13:00:01 |
| 3 | HTML基础 | 猿大头 | 497 | 2004-03-09 12:00:00 |
| 4 | JavaScript | 猿媛 | 20 | 2005-11-3 17:34:12 |
| 5 | ETL快速入门 | 猿媛 | 3 | 2005-11-7 18:40:00 |
+----+--------------+----------+--------+---------------------+
别名示例
下面的 SQL 语句指定了两个别名,一个是 id 列的别名,一个是 author 列的别名。提示:如果列名称包含空格,要求使用双引号或方括号:
SELECT id AS a_id, title, author AS writer, a_type, pub_date FROM articles;
执行输出结果:
+----+--------------+----------+--------+---------------------+
| id | title | author | a_type | pub_date |
+----+--------------+---------—+--------+---------------------+
| 1 | hadoop简介 | 大猿 | 311 | 2003-01-05 11:23:00 |
| 2 | python元类 | 小猿 | 163 | 2003-01-11 13:00:01 |
| 3 | HTML基础 | 猿大头 | 497 | 2004-03-09 12:00:00 |
| 4 | JavaScript | 猿媛 | 20 | 2005-11-3 17:34:12 |
| 5 | ETL快速入门 | 猿媛 | 3 | 2005-11-7 18:40:00 |
+----+--------------+----------+--------+---------------------+
CONCAT 示例
可以通过concat将多个列结合在一起
在下面的 SQL 语句中,我们把id、title结合在一起,并创建一个名为 "new_title" 的别名:
需要注意的是列名用反引号 ` 括起来
SELECT CONCAT(`id`,"-", `title`) AS new_title
FROM articles;
执行输出结果:
+-------------------+----------+--------+---------------------+
| new_title | author | a_type | pub_date |
+-------------------+---------—+--------+---------------------+
| 1-hadoop简介 | 大猿 | 311 | 2003-01-05 11:23:00 |
| 2-python元类 | 小猿 | 163 | 2003-01-11 13:00:01 |
| 3-HTML基础 | 猿大头 | 497 | 2004-03-09 12:00:00 |
| 4-JavaScript | 猿媛 | 20 | 2005-11-3 17:34:12 |
| 5-ETL快速入门 | 猿媛 | 3 | 2005-11-7 18:40:00 |
+-------------------+----------+--------+---------------------+
表的别名示例
文章的详情存储在"articles_detail"表中, 现在需要从articles、articles_detail两表中进行联合查询
为了方便引用表名,对article使用别名 "a", 对article_detail使用别名 "ad"
SELECT a.id, a.title, a.author, a.a_type, a.pub_date,
ad.detail
FROM articles AS a, article_detail AS ad
WHERE a.id=ad.id limit 5
执行输出结果:
+----+--------------+----------+--------+---------------------+-----------+
| id | title | author | a_type | pub_date | detail |
+----+--------------+---------—+--------+---------------------------+
| 1 | hadoop简介 | 大猿 | 311 | 2003-01-05 11:23:00 | ..... |
| 2 | python元类 | 小猿 | 163 | 2003-01-11 13:00:01 | .... |
| 3 | HTML基础 | 猿大头 | 497 | 2004-03-09 12:00:00 | ..... |
| 4 | JavaScript | 猿媛 | 20 | 2005-11-3 17:34:12 | ...... |
| 5 | ETL快速入门 | 猿媛 | 3 | 2005-11-7 18:40:00 | ....... |
+----+--------------+----------+--------+---------------------+-----------|
别名适合使用场景
在下面的情况下,使用别名很有用:
- 在查询中涉及超过一个表
- 在查询中使用了函数
- 列名称很长或者可读性差
- 需要把两个列或者多个列结合在一起
讨论区