MySQL 字段别名(列别名)

SQL 字段别名

同本文前文讲述的表别名一样,SQL(MySQL) 也支持对表的字段(列)设置别名。

字段别名语法:

SELECT column AS column_alias FROM table

字段别名使用例子

字段别名一个明显的效果是可以自定义查询数据返回的字段名。如下面的表数据:

user 用户表:
uid username password email regdate
1 admin b7e591c246d010bb2ccd77d52490c85e admin@5idev.com 1277992339
2 小明 a193686a53e4de85ee3f2ff0576adf01 xiao@163.com 1278063917
3 Jack 0193686a35e4de85ee3f2ff0567adf490 jack@gmail.com 1278061380

在查询的时候,对 username 字段使用别名:

SELECT username AS name,email FROM user

返回查询结果如下:

name email
admin admin@5idev.com
小明 xiao@163.com
Jack jack@gmail.com

当然如此简单的定义字段的别名是没有太大实际意义的,字段别名更多的意义是解决字段名的重复,如一个表字段被查询两次或更多次时:

SELECT username AS name,username,email FROM user

或者两个及更多表进行查询,有相同的返回字段时:

article 文章表:
aid title content uid pubtime
1 文章1 文章1正文内容... 1 1278982219
2 文章2 文章2正文内容... 1 1278985319
3 文章3 文章3正文内容... 2 1279185319
user 用户表:
uid username title password email regdate
1 admin 管理员 b7e591c246d010bb2ccd77d52490c85e admin@5idev.com 1277992339
2 小明 观察者 a193686a53e4de85ee3f2ff0576adf01 xiao@163.com 1278063917
3 Jack 叫我老外 0193686a35e4de85ee3f2ff0567adf490 jack@gmail.com 1278061380

上面两个表都定义了 title 字段且都需要返回该字段数据时,就需要定义字段别名(至少定义一个):

SELECT a.title AS atitle,u.username,u.title AS utitle FROM article AS a, user AS u where a.uid=u.uid

返回查询结果如下:

atitle username utitle
文章1 admin 管理员
文章2 admin 管理员
文章3 小明 观察者

可以看出,当查询返回的字段名称相同时,可以通过定义别名来避免冲突,上面查询的例子同时定义了字段别名与表别名。

提示

通常,定义字段别名的 AS 关键字可以省略,即下面两句 SQL 效果一致:

SELECT username AS name FROM user
SELECT username name FROM user

但我们建议不要省略 AS 关键字。

别名(alias)是 SQL 的标准语法,几乎所有的数据库系统都支持。在处理一些复杂的查询时,可以合理的定义表和字段别名来使 SQL 语句看起来更加精简易读,也避免查询返回相同字段数据时的冲突。

本章节内容共分 2 部分:

  1. 1. MySQL 表别名(Alias)
  2. 2. MySQL 字段别名(列别名)
海外1核2G服务器低至2折

5idev.com(我爱开发网) — 提供最好的 XHTML教程DIV+CSS教程JavaScript教程PHP教程ThinkPHP教程