第三课 排序检索数据

使用 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仍按照升序排列(如果有价格相同的情况)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这一篇最主要是记录下命令,方便以后查找 使用Mysql 创建数据库 create database mysql_t...
    Treehl阅读 3,677评论 0 0
  • (一)几个数据库相关的概念 1.数据库 数据库: 保存有组织数据的容器。 数据的所有存储、检索、管理和处理实际上是...
    快乐的小飞熊阅读 3,570评论 0 1
  • 表 存储在表中的数据是同一种类型的数据或清单。 数据库中的表有为一个名字来标识自己。 表具有一些特性,这些特性定义...
    蛐蛐囍阅读 5,133评论 0 7
  • 于是又到了梧桐絮飘满校园的四月,又到了梧桐色相簿的季节,我们迎来了实习生招聘。 “范老湿从不写代码”,“范老湿从不...
    Lance_Van阅读 4,073评论 0 1
  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 12,341评论 5 116