【MySQL】(基础篇五) —— 排序检索数据

排序检索数据

本章将讲授如何使用SELECT语句的ORDER BY子句,根据需要排序检索出的数据。

排序数据

还是使用上一节中的例子,查询employees表中的last_name字段

SELECT last_name
FROM `employees`;

输出结果:

在这里插入图片描述

发现其输出并没有特定的顺序。其实,检索出的数据并不是以纯粹的随机顺序显示的。如果不排序,数据一般将以它在底层表中出现的顺序显示。这可以是数据最初添加到表中的顺序。但是,如果数据后来进行过更新或删除,则此顺序将会受到MySQL重用回收存储空间的影响。因此,如果不明确控制的话,不能(也不应该)依赖该排序顺序。关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有
意义。

子句(clause): SQL语句由子句构成,有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。我们使用过的SELECT语句的FROM语句都是子句。本次介绍的ORDER BY子句是一个可选子句。
为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。请看下面的例子:

【示例】对employees表中的last_name字段查询结果进行排序

SELECT last_name
FROM `employees`
ORDER BY last_name;

运行结果按照字典顺序排序:

在这里插入图片描述

按多个列排序

经常会有这样的需求,按照姓先排序,如果姓重复了,再按照名排序。ORDER BY子句后面可以接多个字段,其顺序就是排序的先后顺序

【示例】查询employees表中所有信息,先按照last_name排序,再对first_name排序

SELECT *
FROM `employees`
ORDER BY last_name, first_name;

运行结果:

在这里插入图片描述

排序方向

数据排序不限于升序排序(从A到Z)。这只是默认的排序顺序,还可以使用ORDER BY子句以降序(从Z到A)顺序排序。为了进行降序排序,必须指定DESC关键字。

【示例】查询employees表中的last_name字段,使用降序排序

SELECT last_name
FROM `employees`
ORDER BY last_name DESC;

运行结果:

在这里插入图片描述

如果对多个字段进行排序,每个字段后面都可以加上限制排序方向的关键字,如

SELECT *
FROM `employees`
ORDER BY last_name DESC, first_name;

上述表示先对last_name字段进行降序, 然后再对firtst_name进行升序。

与DESC相反的关键字是ASC(ASCENDING),在升序排序时可以指定它。但实际上,ASC没有多大用处,因为升序是默认的(上面例子中,既不指定ASC也不指定DESC,则假定为ASC)。

在字典(dictionary)排序顺序中,A被视为与a相同,这是MySQL(和大多数数据库管理系统)的默认行为。但是,许多数据库管理员能够在需要时改变这种行为(如果你的数据库包含大量外语字符,可能必须这样做)。

相关推荐

  1. MySQL基本查询

    2024-06-10 14:56:02       8 阅读
  2. MySQL数据库基础二)

    2024-06-10 14:56:02       21 阅读
  3. MySQL数据库基础-SQL

    2024-06-10 14:56:02       22 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-10 14:56:02       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-10 14:56:02       5 阅读
  3. 在Django里面运行非项目文件

    2024-06-10 14:56:02       4 阅读
  4. Python语言-面向对象

    2024-06-10 14:56:02       6 阅读

热门阅读

  1. 词向量对模型performance的影响

    2024-06-10 14:56:02       18 阅读
  2. Linux磁盘与文件系统管理

    2024-06-10 14:56:02       14 阅读
  3. 需求记录(共享元素)

    2024-06-10 14:56:02       21 阅读
  4. Vue3 组合式 API:依赖注入(四)

    2024-06-10 14:56:02       13 阅读
  5. 贪心算法03(leetcode1005,134,135)

    2024-06-10 14:56:02       20 阅读
  6. web前端三大主流框架

    2024-06-10 14:56:02       14 阅读
  7. C++中的if constexpr

    2024-06-10 14:56:02       15 阅读
  8. 驱动开发MISC 杂项驱动

    2024-06-10 14:56:02       18 阅读
  9. 自建 Docker 镜像

    2024-06-10 14:56:02       17 阅读
  10. Linux常见命令

    2024-06-10 14:56:02       12 阅读
  11. C++——时间复杂度

    2024-06-10 14:56:02       19 阅读
  12. 为何数据仓库需要“分层次”?

    2024-06-10 14:56:02       13 阅读
  13. tensorRT 自定义算子plugin的实现

    2024-06-10 14:56:02       16 阅读
  14. 使用git stash暂存改动,并备注改动内容

    2024-06-10 14:56:02       21 阅读