MySQL基础知识——ORDER BY

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: MySQL基础知识

ORDER BY作用

ORDER BY 关键字用于对结果集进行排序。


ORDER BY 关键字

ORDER BY 关键字用于按升序(ASC)或降序(DESC)对结果集进行排序。

ORDER BY 关键字默认情况下按升序(ASC)排序记录,默认排序可以不写ASC。

如果需要按降序对记录进行排序,可以使用DESC关键字,不可省略。


ORDER BY 语法

SELECT column1, column2, ... FROM table_name
ORDER BY column1, column2, ... ASC|DESC;


示例数据库

以下是 "Customers" 表中的数据:

10.jpg

ORDER BY 实例

下面的 SQL 语句从 "Customers" 表中选取所有客户,并按照 "省份" 列排序:

实例:

SELECT * FROM Customers
ORDER BY 省份;

结果:

11.jpg


这里排序方式默认是升序。这里排序规则,是按照省份里的拼音首字母的ASCII规则排序的。例如北京市首字母是B,广东省的首字母是G,湖北省的首字母是H,上海市的首字母是S,浙江省的首字母是Z。排序后就是上述结果了,如果排序的首字母相同,则比较第二位字母,依次类推。


ORDER BY DESC 实例

下面的 SQL 语句从 "Customers" 表中选取所有客户,并按照 "省份" 列降序排序:

实例:

SELECT * FROM Customers
ORDER BY 省份 DESC;

结果:

12.jpg

加了DESC后排序方式变成了降序,排序规则与升序相反。


ORDER BY 多列 实例

为了让大家更加好理解,我们在Customers表中添加两行数据。


INSERT INTO `Customers` (客户ID,姓名,地址,城市,邮编,省份)
VALUES
( 6, '宋一', '花城大道21号', '广州', '510000', '广东省' );
INSERT INTO `Customers` (客户ID,姓名,地址,城市,邮编,省份)
VALUES
( 7, '刘二', '长安街121号', '北京', '100000', '北京市' );


添加数据后的Customers表如下:

13.jpg

下面的 SQL 语句从 "Customers" 表中选取所有客户,并按照 "省份" 和 "姓名" 列排序:

示例

SELECT * FROM Customers
ORDER BY 省份, 姓名;

结果:


14.jpg

可以看到,对省份排序的时候,北京市和广东省各出现了两条。这时候再对姓名这一列的拼音首字母进行排序。在省份一致的前提下,刘二的首字母是L,赵七的首字母是Z,所以刘二排在赵七的前面。同理宋一的首字母是S,王五的首字母是W,所以宋一排在王五的前面。


ORDER BY 多列 实例2

以下SQL语句从"Customers" 表中选择所有客户,按 "省份" 升序排列,并按 "姓名" 列降序排列:

SELECT * FROM Customers
ORDER BY 省份 ASC, 姓名 DESC;

结果:

15.jpg

对姓名进行降序排列后,姓名的排序结果与升序相反。


注意:如果要对多个列进行降序排列,必须每个列后面都使用DESC。


ORDER BY与LIMIT组合实例

使用LIMIT后,我们可以找出排好序后的前几名,例如找出对省份进行升序排列后的前三名客户信息:

SELECT * FROM Customers
ORDER BY `省份`
LIMIT 3

结果为:

16.jpg

结果只显示了排好序的前三位客户信息。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
SQL 关系型数据库 MySQL
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
【MySQL】— —熟练掌握用SQL语句实现数据库和基本表的创建。熟练掌握MySQL的安装、客户端登录方法;熟练掌握MySQL的编码、数据类型等基础知识;掌握实体完整性的定义和维护方法、掌握参照完整性
|
10月前
|
监控 关系型数据库 MySQL
|
8月前
|
SQL 算法 搜索推荐
mysql 之order by工作流程
本文深入解析了MySQL中`ORDER BY`的排序机制,通过具体示例展示了排序过程及性能优化方法。文章首先分析了基于内存和磁盘的排序方式,包括`sort_buffer_size`的影响以及临时文件的使用场景。接着介绍了`rowid`排序算法,该算法通过减少参与排序的数据量来提升性能,并对比了其与传统排序的区别。此外,还探讨了随机查询`ORDER BY RAND()`的执行流程及其优化策略。最后提到了MySQL 5.6引入的优先队列排序算法,适用于仅需部分有序结果的场景。文章结合`optimizer_trace`工具详细说明了各配置参数对排序行为的影响,为优化查询提供了实用指导。
130 1
mysql 之order by工作流程
|
存储 SQL 关系型数据库
MySQL基础知识
【6月更文挑战第13天】MySQL基础知识
118 7
|
SQL 搜索推荐 关系型数据库
MySQL 如何实现 ORDER BY 排序?
本文详细解析了MySQL中`ORDER BY`的实现原理及优化方法。通过解析与优化、执行及多种优化技术,如索引利用、内存排序、外部排序等,帮助你提升排序性能。了解其背后的机制,可显著优化查询效率。
716 4
|
SQL 搜索推荐 关系型数据库
MySQL 如何实现 ORDER BY 排序?
在实际开发中,我们经常会使用 MySQL 的 `ORDER BY`进行排序,那么,`ORDER BY`是如何实现的排序的?我们该如何优化 `ORDER BY`的排序性能?这篇文章,我们来聊一聊。
165 3
|
关系型数据库 MySQL 数据处理
Mysql关于同时使用Group by和Order by问题
总的来说,`GROUP BY`和 `ORDER BY`的合理使用和优化,可以在满足数据处理需求的同时,保证查询的性能。在实际应用中,应根据数据的特性和查询需求,合理设计索引和查询结构,以实现高效的数据处理。
1432 1
|
关系型数据库 MySQL Linux
MySQL数据库基础知识
【6月更文挑战第20天】MySQL数据库基础知识。
244 3
|
关系型数据库 MySQL 数据库
【MySQL进阶之路 | 基础篇】排序(ORDER BY)与分页(LIMIT)
【MySQL进阶之路 | 基础篇】排序(ORDER BY)与分页(LIMIT)
|
SQL 关系型数据库 MySQL
MySQL数据库——SQL优化(2/3)-order by 优化、group by 优化
MySQL数据库——SQL优化(2/3)-order by 优化、group by 优化
240 0

推荐镜像

更多