MySQL排序检索数据操作方法梳理

 更新时间:2022年10月21日 08:46:11   作者:刘婉晴  
SELECT语句是SQL中最常用的语句。它的用途是从一个或多个表中检索信息。为了使用SELECT检索表数据,必须至少给出两条信息:想选择什么、从什么地方选择,这篇文章主要介绍了MySQL排序检索数据

前言

本实验中所用数据库创建SQL语句以及插入数据到数据库中的SQL语句链接:

链接: https://pan.baidu.com/s/14q4kBP9vGVbOU_4Ggo07GQ?pwd=4w4y

提取码:4w4y

书接上回说到,MySQL检索数据

本篇文章主要介绍如何使用 select 的 MySQL 语言,根据我们的想要排序检索出的数据。

1. 排序数据

检索出的数据不是随机显示的,若不排序,数据以其在表中出现的顺序显示。关系数据库设计理论认为,如果不规定排序顺序,则不能假定检索出的数据的顺序有任何意义。

为了明确地排序用 select 语句检索出的数据,可以使用 order by 字句 取一个或多个列的名字,以此对输出进行排序

如下:

select prod_name
from Products
order by prod_name;

注意: order by 字句的位置一定是 select 语句的最后一条字句,如果不是最后一条字句,将会出错

2. 按多个列排序

通常我们不只需要按单个列排序,而是需要按多个列排序,当第一个列相等时,按第二个列排序…以此类推。这是,我们只需要将需要排序的多个列间用逗号隔开即可。

如下: 先按 prod_price 排序,prod_price 相同时,按照 prod_name 排序

select prod_id, prod_price, prod_name
from Products
order by prod_price, prod_name;

3. 按列位置排序

order by 字句还支持按照列位置进行排序,这种方法的好处是不需要重新输入列名。但是它也有缺点,比如进行排序的列必须在 select 清单中,并且这种方式当 select 清单变化时容易造成错误。

如下:2, 3 分别表示 select 清单中的第二(prod_price),第三列(prod_name)

select prod_id, prod_price, prod_name
from Products
order by 2, 3;

4. 指定排序方式(升序或者降序)

order by 默认为升序排序 (asc),可以通过指定 desc 关键字来实现降序排序

如下: 通过在 order by 字句的最后加上 desc,实现降序排序

select prod_id, prod_price, prod_name
from Products
order by prod_price desc;

思考:当我们需要对多个列降序排序时,应该怎么写呢?

desc 作用域问题: desc 关键字只作用于直接位于其前面的列名,因此若是想要对多个列降序排序,需要在需要降序排序的每个列的最后都加上 desc 关键字

如下: 按照 prod_price 降序排序,当 prod_price 相同时,按照 prod_id 降序排序;同理,当 prod_id 相同时,按照 prod_name 降序排序。

select prod_id, prod_price, prod_name
from Products
order by prod_price desc, prod_id desc, prod_name desc;

注: desc 只作用于直接位于其前面的列名的特点,使得我们可以很好的定制化排序,在需要降序排序的列后加 desc,而其他列仍然可以按照升序排序,这种机制非常灵活。

5. 扩展—文本性数据如何排序

在对文本性数据进行排序时,A与a是否相同;a位于B之前,还是Z之后,取决于数据库的设计方式。

实际上,在字典排序顺序中,A被视为与a相同,大部分数据库也采取这种默认做法。要想改变这种行为,可以求助数据库管理员的帮助,许多DBMS容许数据库管理员改变这种行为。

到此这篇关于MySQL排序检索数据操作方法梳理的文章就介绍到这了,更多相关MySQL检索数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL索引失效原理

    MySQL索引失效原理

    索引可以加快查找速度是因为,在每一层的兄弟节点之间,索引是有序的,因此可以通过二分法快速定位到相应位置。如果一些操作破坏了索引排列的有序性或者不能利用索引的有序性,这个索引自然就失效了,下文更详细说明,需要的朋友可以参考一下
    2021-12-12
  • MySQL:explain结果中Extra:Impossible WHERE noticed after reading const tables问题

    MySQL:explain结果中Extra:Impossible WHERE noticed after rea

    这篇文章主要介绍了MySQL:explain结果中Extra:Impossible WHERE noticed after reading const tables问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • mysql 5.7.21 解压版安装配置图文教程

    mysql 5.7.21 解压版安装配置图文教程

    这篇文章主要为大家详细介绍了mysql 5.7.21 解压版安装配置图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 20分钟MySQL基础入门

    20分钟MySQL基础入门

    这篇文章主要为大家分享了20分钟MySQL基础入门教程,快速掌握MySQL基础知识,真正了解MySQL,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • 阿里云ESC 安装 MYSQL8.0的教程

    阿里云ESC 安装 MYSQL8.0的教程

    这篇文章主要介绍了阿里云ESC 安装 MYSQL8.0的教程,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • MySQL的LEFT JOIN表连接的进阶学习教程

    MySQL的LEFT JOIN表连接的进阶学习教程

    这篇文章主要介绍了MySQL的LEFT JOIN表连接的进阶学习教程,包括对左连接的查询效率分析以及相关建议,需要的朋友可以参考下
    2015-12-12
  • MySQL5.6安装步骤图文详解

    MySQL5.6安装步骤图文详解

    这篇文章主要为大家详细介绍了MySQL安装步骤配置方法图文,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Centos 7下使用RPM包安装MySQL 5.7.9教程

    Centos 7下使用RPM包安装MySQL 5.7.9教程

    这篇文章主要为大家详细介绍了Centos 7下使用RPM包安装MySQL 5.7.9的教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • windows下MySQL数据库移动到其它盘

    windows下MySQL数据库移动到其它盘

    大家好,本篇文章主要讲的是windows下MySQL数据库移动到其它盘,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏
    2021-12-12
  • mysql分区功能详解,以及实例分析

    mysql分区功能详解,以及实例分析

    下面小编就为大家带来一篇mysql分区功能详解,以及实例分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论