数据库学习笔记——03排序检索数据

排序数据_ORDER BY

SELECT prod_name from products ORDER BY prod_name

ORDER BY必须是select语句的最后一个子句。

数据库学习笔记——03排序检索数据_第1张图片
order_by.png

通常,ORDER BY 子句中使用的列将是为显示而选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。比如: SELECT prod_name from products ORDER BY prod_price;

按多个列排序

SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name

数据库学习笔记——03排序检索数据_第2张图片
order_by2.png

按列位置排序

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

数据库学习笔记——03排序检索数据_第3张图片
按列位置排序.png

SELECT清单中指定的是选择列的相对位置而不是列名。ORDER BY 2表示按SELECT清单中的第二个列prod_price进行排序。ORDER BY 2,3表示先按prod_price,再按prod_name进行排序。

  • 优点:不用重复输入列名
  • 缺点:(1)不明确给出列名有可能造成错用列名排序。(2)在对SELECT清单进行更改时容易忘记ORDER BY做相应的修改。(3)如果进行排序的列不在SELECT清单中,显然不能使用。

提示: 按非选择列进行排序
当根据不出现在SELECT清单中的列进行排序时,不能采用这项技术。但是,如果有必要,可以混合使用实际列名和相对位置。比如:SELECT prod_id,prod_price,prod_name FROM products ORDER BY 2,vend_id

指定排序方向

查询结果默认是升序——ASC(ascending的缩写)
如果需要将查询结果按降序来排序,需要使用关键字DESC(descending的缩写)

SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC

数据库学习笔记——03排序检索数据_第4张图片
desc.png

按多个列排序:
SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name
数据库学习笔记——03排序检索数据_第5张图片
desc2.png

DESC关键字只应用到直接位于其前面的列名。如果想在多个列上进行降序排序,必须对每一个列指定DESC关键字

SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name DESC

数据库学习笔记——03排序检索数据_第6张图片
desc3.png

你可能感兴趣的:(数据库学习笔记——03排序检索数据)