SQL 字段别名
同本文前文讲述的表别名一样,SQL(MySQL) 也支持对表的字段(列)设置别名。
字段别名语法:
SELECT column AS column_alias FROM table
字段别名使用例子
字段别名一个明显的效果是可以自定义查询数据返回的字段名。如下面的表数据:
user 用户表:
uid
username
password
regdate
1
admin
b7e591c246d010bb2ccd77d52490c85e
admin@
1277992339
2
小明
a193686a53e4de85ee3f2ff0576adf01
xiao@
1278063917
3
Jack
0193686a35e4de85ee3f2ff0567adf490
jack@
1278061380
在查询的时候,对 username 字段使用别名:
SELECT username AS name,email FROM user
返回查询结果如下:
name
admin
admin@
小明
xiao@
Jack
jack@
当然如此简单的定义字段的别名是没有太大实际意义的,字段别名更多的意义是解决字段名的重复,如一个表字段被查询两次或更多次时:
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
regdate
1
admin
管理员
b7e591c246d010bb2ccd77d52490c85e
admin@
1277992339
2
小明
观察者
a193686a53e4de85ee3f2ff0576adf01
xiao@
1278063917
3
Jack
叫我老外
0193686a35e4de85ee3f2ff0567adf490
jack@
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 语句看起来更加精简易读,也避免查询返回相同字段数据时的冲突。