当前位置: Oracle DBA培训网-优技培训 >> MySQL培训 > MySQL培训教程 >

MySQL认证培训:select列别名怎么使用

MySQL认证培训:select列别名怎么使用

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 |

+----------+--------+

技术沙龙MORE+

标签错误:<!-- #Label# labelId=20160707140604 moduleId=1 classId=12231768634 orderby=2 fields=url,title,u_info attribute= datatypeId=22192428132 recordCount=3 pageSize= <htmlTemplate><dt><img src="/images/index_26${index}.jpg" width="100" height="62" /><a href="$url" title="${title}">${title}</a><span>${api.left(u_info,60)}</span></dt></htmlTemplate> -->
我要参加技术沙龙