0%

《MySQL必知必会》读书笔记 第五章 排序检索数据

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

子句

SQL语句由子句(clause)构成,有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。

排序数据

为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。

1
2
3
SELECT prod_name
FROM products
ORDER BY prod_name;

按多个列排序

为了按多个列排序,只要指定列名,列名之间用逗号分开即可

1
2
3
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price, prod_name;

对于上述例子中的输出,仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。

指定排序方向

为了进行降序排序,必须指定DESC关键字。DESC关键字只应用到直接位于其前面的列名。

1
2
3
SELECT prod_id, prod_price, prod_name
FROM products
ORDER BY prod_price DESC, prod_name;

使用ORDER BY和LIMIT的组合,能够找出一个列中最高或最低的值。下面的例子演示如何找出最昂贵物品的价值:

1
2
3
4
SELECT prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;