mysql学习教程,从入门到精通,SQL ORDER BY 子句(14)

1、SQL ORDER BY 子句

在本教程中,您将学习如何对SELECTSQL查询返回的数据进行排序。

1.1、对结果集排序

通常,当您使用SELECT语句从表中获取数据时,结果集中的行没有任何特定的顺序。如果要按特定顺序排列结果集,则可以在语句末尾指定ORDER BY子句,该子句告诉程序如何对查询返回的数据进行排序。默认排序顺序为升序。

1.2、语法

ORDER BY子句用于按升序或降序对查询返回的数据进行排序。该子句的基本语法可以通过以下方式给出:

sql 复制代码
SELECT column_list FROM table_name ORDER BY column_name ASC|DESC;

在这里,column_list是要获取其值的数据库表的名称,年龄,国家等列/字段的名称,而column_name是要排序的列的名称。让我们看一些示例,演示其实际工作方式。

考虑我们在数据库中有一个employees表,该表具有以下记录:

1.3、单列排序

下面的SQL语句将从employees表中返回所有employee,并按emp_name列的升序对结果集进行排序。

sql 复制代码
SELECT * FROM employees 
ORDER BY emp_name ASC;

您可以跳过该ASC选项,而仅使用以下语法。它返回与上一条语句相同的结果集,因为SQL默认排序顺序是升序的:

sql 复制代码
SELECT * FROM employees 
ORDER BY emp_name;

执行上述命令后,您将获得如下输出:

同样,您可以使用DESC选项以降序执行排序。以下语句将按数字薪水(salary)列的降序排列结果集。

sql 复制代码
SELECT * FROM employees 
ORDER BY salary DESC;

这次,您将获得如下结果集:

1.4、多列排序

您还可以在排序时指定多个列。但是,除非表中有一些重复的值,否则结果集的更改将不可见。好吧,让我们找出:

为了更好地理解多列排序,我们假设我们在数据库中有一个名为Trainees的表,其中包含以下记录:

如果您仔细查看表格,将会发现我们有一些重复的值。但是,受训者 Peter Parker 和 Peter Pan 的全名不同,但名字相同。

现在执行以下命令,该命令按first_name列对结果集进行排序。

sql 复制代码
SELECT * FROM trainees 
ORDER BY first_name;

执行后,您将获得如下输出:

现在执行此语句,该语句按first_name和last_name列对结果集进行排序。

sql 复制代码
SELECT * FROM trainees 
ORDER BY first_name, last_name;

您是否注意到以前的结果集和当前的结果集之间的区别-这次,学员" Peter Parker"的记录紧随" Peter Pan"之后。

由于两个受训者的名字都是" Peter",因此在这两个受训者的last_name列执行第二级排序,这就是为什么受训者" Peter Parker"的记录在" Peter Pan"之后。

相关推荐
巴拉巴拉~~几秒前
Flutter 通用下拉选择组件 CommonDropdown:单选 + 搜索 + 自定义样式
开发语言·javascript·ecmascript
ZHang......1 分钟前
LeetCode 1114. 按序打印
java·开发语言·算法
协同生态6 分钟前
天锐绿盾新版注册机【仅用于个人学习,禁止其他用途】
学习
缺点内向13 分钟前
如何在 C# 中重命名 Excel 工作表并设置标签颜色
开发语言·c#·excel
Cuby!14 分钟前
【AFDM与信号处理:论文阅读】仿射频分复用:扩展OFDM以实现场景灵活性和弹性
论文阅读·笔记·学习·信息与通信·信号处理
Можно16 分钟前
深入理解 JavaScript 函数:分类、特性与实战应用
开发语言·javascript
yumgpkpm17 分钟前
Iceberg在Hadoop集群使用步骤(适配AI大模型)
大数据·hadoop·分布式·华为·zookeeper·开源·cloudera
蜘蛛小助理18 分钟前
研发团队效率神器:手把手教你用蜘蛛表格构建自动化任务管理中枢
数据库·自动化·任务管理·多维表格·蜘蛛表格
淼淼76321 分钟前
工厂方法模式
开发语言·c++·windows·qt·工厂方法模式
计算机毕设VX:Fegn089528 分钟前
计算机毕业设计|基于springboot + vue酒店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计