第三课 排序检索数据

使用 SELECT 和 ORDER BY 进行排序检索

一、排序数据

关系型数据库设计理论认为:如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有任何意义

子句(clause)
概念:SQL语句由子句构成,子句有些是必需的,有些是可选的。子句由关键字加上提供的数据组成。

可使用 ORDER BY 子句对被检索数据进行排序

输入
SELECT prod_name 
FROM Products
ORDER BY prod_name;

输出
prod_name
------------
12 inch teddy bear
18 inch teddy bear
8 inch teddy bear
Bird bean bag toy
Fish bean bag toy
King doll
Queen doll
Rabbit bean bag toy
Raggedy Ann

注意:1. ORDER BY 必须是 SELECT 语句中最后一条子句,否则将会出错 2. 默认按字母顺序排列和数字升序排列

二、按多个列排序

输入
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price, prod_name;

输出
prod_id     prod_price    prod_name
-------     ----------    ---------
BNBG02      3.49          Bird bean bag toy
BNBG01      3.49          Fish bean bag toy
BNBG03      3.49          Rabbit bean bag toy
RGAN01      4.99          Raggedy Ann
BR01        5.99          8 inch teddy bear
BR02        8.99          12 inch teddy bear
RYL01       9.49          King doll
RYL02       9.49          Queen doll
BR03        11.99         18 inch teddy bear

注:只有在多行具有相同的 prod_price 值时才对产品按照 prod_name 进行排列。若 prod_price 值都不同,则不会按照 prod_name 排列

三、按位置排列

例:ORDER BY 2, 3
解释:2 代表 prod_price,3 代表 prod_name

四、指定排序方向

ORDER BY 默认为升序排列,也可以用DESC关键字进行降序排列

输入
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC;

输出
prod_id     prod_price    prod_name
-------     ----------    ---------
BR03        11.99         18 inch teddy bear
RYL01       9.49          King doll
RYL02       9.49          Queen doll
BR02        8.99          12 inch teddy bear
BR01        5.99          8 inch teddy bear
RGAN01      4.99          Raggedy Ann
BNBG01      3.49          Fish bean bag toy
BNBG02      3.49          Bird bean bag toy
BNBG03      3.49          Rabbit bean bag toy

若需要对多列进行排序,则可以这样

输入
SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC, prod_name;

输出
prod_id     prod_price    prod_name
-------     ----------    ---------
BR03        11.99         18 inch teddy bear
RYL01       9.49          King doll
RYL02       9.49          Queen doll
BR02        8.99          12 inch teddy bear
BR01        5.99          8 inch teddy bear
RGAN01      4.99          Raggedy Ann
BNBG01      3.49          Fish bean bag toy
BNBG02      3.49          Bird bean bag toy
BNBG03      3.49          Rabbit bean bag toy

输出结果和上例相同

注:1. DESC关键字只作用在其前面的列名上,而prod_name仍按照升序排列(如果有价格相同的情况)

你可能感兴趣的:(第三课 排序检索数据)