avatar

一条在知识海洋的咸鱼

这个家伙很懒,啥也没有留下😋

  • 首页
  • Linux
  • OCJP
  • Java核心技术卷
  • J2EE相关标准
  • 深入理解Java虚拟机
  • NIO与SOcket编程技术指南
  • Java多线程编程核心技术
  • Redis开发与运维
  • Spring Cloud Alibaba 微服务原理与实践
  • DevOps
  • Docker
  • MySQL必知必会
  • AI自学路线
  • Spring Boot 编程思想(核心篇)
主页 第五章 排序检索数据
文章

第五章 排序检索数据

发表于 2021-06-27 更新于 2026-06- 10
作者 Administrator
9~12 分钟 阅读

ORDER BY子句

  • 排序数据 DESC ASC
    • 子句
    • 通过非选择列进行排序
  • 按多个列排序
  • 指定排序方向 DESC
    • 多个列排序
    • 在多个列上降序排序
    • 区分大小写和排序顺序
    • 找出一个最高或最低的值
    • ORDER BY子句位置

排序数据 DESC ASC

如果不排序,数据一般将以其在底层表中出现的顺序显示。可以为数据最初添加到表中的顺序,但是如果数据后来进行过更新或删除,则此顺序将会收到MySQL重用回收存储空间的影响
如果不明确排序,则检索出的数据顺序没有任何意义

子句

SQL语句由子句构成,有些子句是必须的,而有的是可选的

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

SELECT
	prod_name 
FROM
	products 
ORDER BY
	prod_name;

image.png

通过非选择列进行排序

通常ORDER BY子句中使用的列是SELECT展示的列,但实际上可以按非检索的列排序展示

按多个列排序

只需要指定列名,列名之间用逗号分开
按不止一个列进行数据排序,如要现实雇员清单(首先按姓排序,然后每个姓中按照名排序)。
注意仅在第一个排序字段相同的情况下,才按照第二个排序字段继续排序

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

image.png
仅在多个行具有相同的prod_price值时才对产品按prod_name进行排序。如果所有的prod_price值唯一,则不会按照prod_name排序

指定排序方向 DESC

除了默认的升序排序,可以使用ORDER BY子句以降序排序,

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

image.png
按价格降序排序产品。

多个列排序

以价格降序排序产品,然后在对产品名排序

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

image.png
DESC关键字只应用到直接位于其前面的列名字段,其他字段仍然按照默认的升序排序

在多个列上降序排序

必须对每个排序的列指定DESC

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

区分大小写和排序顺序

A a排序问题,
在字典排序顺序中A被视为与a相同,是MySQL的默认设置。可以在设置中进行更改。
简单的ORDER BY子句无法区分A a排序,DBA必须对数据库进行相应的设置

找出一个最高或最低的值

使用ORDER BY和LIMIT的组合

SELECT
	prod_price 
FROM
	products 
ORDER BY
	prod_price DESC 
	LIMIT 1;

image.png
通过按照价格降序排序返回1行找出最昂贵的价格值

ORDER BY子句位置

ORDER BY 位于FROM之后
LIMIT 位于ORDER BY 之后
子句次序不对将产生错误消息

MySQL必知必会
SQL
许可协议: 
分享

相关文章

7月 6, 2021

第二十九章 数据库维护

7月 6, 2021

第二十八章 安全管理

确保数据的安全和完整需要利用访问控制访问控制root账户不要使用root管理用户创建用户账号简单创建一个新用户账号使用GRANT或INSERT创建重命名用户账号删除用户账号设置访问权限访问控制用户需要对其数据具有适当的访问权,既不能过多,也不能过少,例如多数用户需要对表进行读写,少数用户需要创建和删

7月 6, 2021

第二十七章 全球化和本地化

MySQL处理不同字符集和语言的基础知识字符集和校对顺序校对的重要性使用字符集和校对顺序字符集和校对顺序数据库表被用来存储和检索数据。不同的语言和字符集需要以不同的方式存储和检索MySQL需要适应不同的字符集(字母和字符),应应不同的排序和检索数据的方法字符集:字母和符号的集合编码:某个字符集成员的

下一篇

第六章 过滤数据

上一篇

第四章 检索数据

最近更新

  • 55 异常兜底:工具失败、非法输出、空检索与超时
  • 54 Agent Memory:短期记忆、用户上下文与摘要
  • 53 Human-in-the-loop:让关键动作暂停、确认与恢复
  • 52 工单 Tool:字段校验、创建结果与失败补偿
  • 51 订单 Tool:Mock、鉴权、状态解析与脱敏

热门标签

java基础 微服务 maven Spring Tomcat DDD Linux Linux基础 SQL基础 数据结构算法

目录

©2026 一条在知识海洋的咸鱼. 保留部分权利。

使用 Halo 主题 Chirpy