【MySQL必知必会】第五章 排序检索数据

1、子句:SQL语句由子句构成,有些子句是必需的,有些子句是可选的。一个子句通常由一个关键字和所提供的数据组成。例子像SELECT语句和FROM子句。

2、排序子句:

  ORDER BY

  ORDER BY子句取一个或多个列的名字,据此对输出进行排序。

  输入:SELECT prod_name

     FROM products

     ORDER BY prod_name

  输出:prod_name

     .$ ton anvil

     1 ton anvil

     Bird seed

     Fuses

  分析:对prod_name列以字母顺序排序。

3、按多个列排序

  输入:SELECT prod_id,prod_price,prod_name

     FROM pruducts

     ORDER BY prod_price,prod_name

  分析:从pruducts表中选中三个列显示,这三个列先按照价格排序,有重复的,再按照名称字母排序。

  输出:prod_id  prod_price  prod_name

     FC      2.50    Carrots

     TNT1     2.50    TNT

     FU1      3.42    Fuses

5、指定排序方向

  默认排序为升序(A-Z),还可以设置为降序(Z-A),使用降序要用DESC关键字。

  输入:SELECT prod_id,prod_price,prod_name

     FROM pruducts

     ORDER BY prod_price DESC

  输出:prod_id  prod_price  prod_name

     FU1     3.42    Fuses

     FC      2.50    Carrots

     TNT1    2.50     TNT

  多个列排序

  输入:SELECT prod_id,prod_price,prod_name

     FROM pruducts

     ORDER BY prod_price DESC,prod_name;

  分析:先按价格降序排,如有重复,再按名字升序排。DESC只作用于它之前的那个列名。升序可以指定关键字ASC(ASCENDING),因为默认即是升序,所以没太大用处。大小写排序问题需向数据库管理员请求帮助,ORDER BY子句解决不了。

6、使用ORDER BY子句和LIMIT子句组合

  输入:SELECT prod_name,prod_price

     FROM products

     ORDER BY prod_price DESC 

     LIMIT 1;

  输出:prod_name  prod_price

     Carrorts    55.00

  分析:通过ORDER BY 和 LIMIT子句组合,可以找出价格最高的商品。注意上述语句顺序,ORDER BY子句必须在FROM子句之后,LIMIT子句必须在FROM子句和ORDER BY子句之后,顺序错误将产生错误的结果。

 

posted @ 2017-05-05 15:37  名称简单点  阅读(178)  评论(0编辑  收藏  举报