MySQL认证教程:select列别名的用法
最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!
我要咨询MySQL认证教程:select列表和表别名的用法,精选输出的列可以用列名、列别名或列位置在ORDER BY和GROUP BY子句引用,列位置从1开始。
例如,我们从pet表中检索出宠物和种类,直接引用列名:
MySQL> select name,species from pet ORDER BY name, species;
其输出为:
+----------+---------+
| name | species |
+----------+---------+
| Bowser | dog |
| Buffy | dog |
| Chirpy | bird |
| Claws | cat |
| Fang | dog |
| Fluffy | cat |
| Puffball | hamster |
| Slim | snake |
| Whistler | bird |
+----------+---------+
在子句中使用列的位置:
MySQL> SELECT name,species FROM pet ORDER BY 1,2;
这条语句的输出与上面并无不同。
最后,你还可以为列命名:
MySQL> SELECT name AS n,species AS s FROM pet ORDER BY n,s;
注意返回的结果:
+----------+---------+
| n | s |
+----------+---------+
| Bowser | dog |
| Buffy | dog |
| Chirpy | bird |
| Claws | cat |
| Fang | dog |
| Fluffy | cat |
| Puffball | hamster |
| Slim | snake |
| Whistler | bird |
+----------+---------+
返回的记录顺序并无不同。但是列的名字有了改变,这一点在使用CREATE TABLE…SELECT语句创建表时是有意义的。
例如,我们想从pet表生成包括其中name,owner字段的表,但是想把name和owner字段的名字重新命名为animal和child,一个很笨的方法就是创建表再录入数据,如果使用别名,则仅仅一条SQL语句就可以解决问题,非常简单,我们要使用的语句使CREATE TABLE:
MySQL> CREATE TABLE pet1
-> SELECT name AS animal,owner AS child
-> FROM pet;
然后,检索生成的表,看看是否达到目的:
MySQL> SELECT * FROM pet1;
+----------+--------+
| animal | child |
+----------+--------+
| Fluffy | Harold |
| Claws | Gwen |
| Buffy | Harold |
| Chirpy | Gwen |
| Fang | Benny |
| Bowser | Diane |
| Whistler | Gwen |
| Slim | Benny |
| Puffball | Diane |
+----------+--------+