排序检索数据

1.排序数据

其实,检索出的数据并不是随机显示的。

如果不排序,数据一般将以它在表中出现的顺序显示,这有可能是数据最初添加到表中的顺序。

但是,如果数据随后进行过更新或删除,那么这个顺序将会受到DBMS重用回收存储空间的方式的影响。

因此,如果不明确控制的话,则最终的结果不能依赖该排序顺序。

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

为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY 子句。

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

SQL
SELECT prod_name
FROM Products
ORDER BY prod_name
"SELECT * FROM blockbusters
 ORDER BY `票房`"
2.按多个列排序

经常需要按不止一个列进行数据排序。

例如,如果要显示雇员名单,可能希望按姓和名排序(首先按姓排序,然后在每个姓中再按名排序)。如果多个雇员有相同的姓,这样做很有用。

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

SQL
SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY prod_price,prod_name;

"SELECT `主流派`,`次流派`,`其他流派`FROM blockbusters
 ORDER BY `票房`"
3.按列位置排序

除了能用列名指出排序顺序外,ORDER BY 还支持按相对列位置进行排序。

SQL
SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY 2,3;
"SELECT ID ,`票房`,`电影级别`
 FROM blockbusters
 ORDER BY 2,3"

这里的2,3 指定的是选择列的相对位置而不是列名,2指定的是相对位置第二个列,3指定的是相对位置的第三个列。

4.指定排序方向

数据排序不限于升序排序(从A到Z),这只是默认的排序顺序。

还可以使用ORDER BY 子句 进行降序(从Z到A)排序。

为了降序排序,必须指定DESC

SQL
SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY prod_price DESC;
"SELECT ID ,`票房`,`电影级别`
 FROM blockbusters
 ORDER BY `票房` DESC"

如果用多个列排序可以这样实现

SQL
SELECT prod_id,prod_price,prod_name
FROM Products
ORDER BY prod_price DESC,prod_name
"SELECT ID ,`票房`,`电影级别`
 FROM blockbusters
 ORDER BY `电影级别` DESC,`票房`"
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部