【MySQL】一文带你了解排序检索数据

news2024/11/17 23:48:29

🎬 博客主页:博主链接
🎥 本文由 M malloc 原创,首发于 CSDN🙉
🎄 学习专栏推荐:LeetCode刷题集!
🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📆 未来很长,值得我们全力奔赴更美好的生活✨
------------------❤️分割线❤️-------------------------
————————————————

在这里插入图片描述
在这里插入图片描述

文章目录

  • 😇MySQL的前情介绍
  • 😇本文主要讲点
  • 😇排序数据
    • 😇子句(clause)
      • 😓ORDER BY(子句)
  • 😇按多个列排序
  • 😇指定排序方向
  • 😇区别大小写和排序顺序
  • 🤣如何巩固学习
  • 🤣小结

😇MySQL的前情介绍

😁大家好呀,今天是我第N次写MySQL,也是最近才学习MySQL,也想着记录一下自己的学习过程,并且分享给大家尼!

😇本文主要讲点

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

😇排序数据

正如前一篇文章所述,下面的SOL语句返回某个数据库表的单个列。但请看其输出,并没有特定的顺序。

输入

SELECT prod_name FROM products;

输出
在这里插入图片描述

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

😇子句(clause)

子句 (clause) SQL语句由子句构成,有些子句是必需的,而有的是可选的。一个子句通常由一个关键字和所提供的数据组成。子句的例子有SELECT语句的FROM子句,我们在前一篇文章讲到过这一个字句。

😓ORDER BY(子句)

ORDER BY(子句) 为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。请看下面的例子:

输入

SELECT prod_name FROM products ORDER BY prod_name;

分析

🤓这条语句除了指示MySQL对prod name列以字母顺序排序数据的ORDER BY子句外,与前面的语句相同。结果如下:

输出
在这里插入图片描述

通过非选择列进行排序通常,ORDER BY子中使用的列将是为显示所选择的列。但是,实际上并不一定要这样,用非检索的列排序数据是完全合法的。

😇按多个列排序

💐经常需要按不止一个列进行数据排序。例如,如果要显示雇员清单,可能希望按姓和名排序(首先按姓排序,然后在每个姓中再按名排序)。如果多个雇员具有相同的姓,这样做很有用。

💐为了按多个列排序,只要指定列名,列名之间用逗号分开即可(就像选择多个列时所做的那样)。

下面的代码检索3个列,并按其中两个列对结果进行排序一一首先按价格,然后再按名称排序

输入

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

输出
在这里插入图片描述

🍀 重要的是理解在按多个列排序时,排序完全按所规定的顺序进行。换句话说,对于上述例子中的输出,仅在多个行具有相同的prod_price值时才对产品按prod name进行排序。如果prod_price列中所有的值都是唯一的,则不会按prod_name排序。

😇指定排序方向

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

下面的例子按价格以降序排序产品(最贵的排在最前面):

输入

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

输出

在这里插入图片描述

但是,如果打算用多个列排序怎么办?下面的例子以降序排序产品最贵的在最前面),然后再对产品名排序:
输入

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

输出
在这里插入图片描述
在这里插入图片描述
分析

💐DESC关键字只应用到直接位于其前面的列名。在上例中,只对prod_price列指定DESC,对prod name列不指定。因此prod_price列以降序排序,而prod name列(在每个价格内)仍然按标准的升序排序。

💐在多个列上降序排序如果想在多个列上进行降序排序,必须对每个列指定DESC关键字

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

😇区别大小写和排序顺序

  1. 💐区分大小写和排序顺序在对文本性的数据进行排序时,A与a相同吗?a位于B之前还是位于Z之后?这些问题不是理论问题,其答案取决于数据库如何设置
  2. 💐在字典(dictionary)排序顺序中,A被视为与a相同,这是MySQL(和大多数数据库管理系统)的默认行为。但是,许多数据库管理员能够在需要时改变这种行为(如果你的数据库包含大量外语字符,可能必须这样做)
  3. 💐这里,关键的问题是,如果确实需要改变这种排序顺序,用简单的ORDERBY子句做不到。你必须请求数据库管理员的帮助

🏵使用ORDERBY和LIMIT的组合,能够找出一个列中最高或最低的值下面的例子演示如何找出最昂贵物品的值:

输入

SELECT prod_price FROM products ORDER BY prod_price DESC LIMIT 1;

输出
在这里插入图片描述
分析

prod_price DESC保证行是按照由最昂贵到最便宜检索的,而LIMIT 1告诉MySQL仅返回一行。

注意:ORDER BY子句的位置在给出ORDER BY子时,应该保证它位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY之后。使用子句的次序不对将产生错误消息。

🤣如何巩固学习

提示:在学习的过程中,我们需要先自行进行思考,而不是一遇到不会的就放弃思考直接看答案,如果最后遇到真的不会的题目,我们可以适当的进行观看答案,看自己的思路是否正确,在作出正确的判断

🤣小结

本文章学习了如何用SELECT语句的ORDER BY子句对检索出的数据进行排序。这个子句必须是SELECT语句中的最后一条子句。可根据需要利用它在一个或多个列上对数据进行排序。

好啦今日的分享到这里就结束啦,我是爱你们的M malloc希望可以帮助到你们噢,最后别忘记三连啦!!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/654743.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

经典电路分析——看看大佬设计或代代人改进的作品——欢迎批评指正

1、TTL反相器 1)输入0.3v a)T1,T2,T4 先分析T1的工作状态:计算ube1和uce1 ube1大于开启电压,所以ube10.7v。 因为T2,T4要想导通,V1b上需要有打通三个PN结的能力,也就是说V1b3*0.…

【UE 从零开始制作坦克】3-履带移动效果

目录 一、设置转向灵敏度 二、原地掉头 三、履带移动效果 效果 一、设置转向灵敏度 为了解决坦克转向灵敏度过高的问题,我们首先打开“TankZongLei”蓝图 选中“载具移动(MovementComp)(继承)”将转向输入率中的上…

数据结构图解--队列 的实现/算法+源码

图解--队列 最终的效果接下来 我们要做的就是 使用编程实现这种意识形态下的结构创建队列结构体初始化init进队入队 尾部插入队列的判断满操作出队队列是否为空遍历队列代码的操作交互意识 最终的效果 1.队列的结构形式 队列是一种线性结构 但是特殊的线性结构 只要的特殊在于…

【炫酷登录界面】详解5款高级的前端登录页面及实现源码(附完整源码)

【写在前面】 其实好早之前我就想写这篇文章了,也有些网友还会私信我,说有时候公司要求登录页面的改造,问我能不能出一期关于登录页的文章,于是乎我也是拖到这个时候才整理出来,其实每篇文章的效果内容我都是自己亲自去…

基于51单片机设计的花样流水灯设计

一、项目介绍 花样流水灯是一种常见的LED灯效果,被广泛应用于舞台表演、节日庆典、晚会演出等场合。在现代智能家居、电子产品中,花样流水灯也被广泛使用,通过调整亮灭顺序和时间,可以实现各种炫酷的灯光效果,增强用户体验。而51单片机作为一种常见的嵌入式开发平台,具有…

深搜-剪枝优化

目录 1.问题引入 2.知识讲解 【搜索术语】 (1) *可行性剪枝*: (2) *预处理剪枝*: (3) *重复性剪枝*: (4) *最优性剪枝*: &…

动态规划IV (118、119、198、213、337)

CP118 杨辉三角 题目描述: 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。 学习记录: 思想就是没有思想,的杨辉三角,但是注意resiz…

AUTOSAR MCAL之SPI(Specification of SPI Handler/Driver)

本文将详细介绍AUTOSAR MCAL SPI模块的知识点及注意事项,本模块的配置会在其他文章进行分享。本文大部分内容来源于标准,并参照了NXP S32K1系列的 MCAL SPI的代码。 耐心看完本文后,你就对AUTOSAR MCAL SPI有了非常深入的了解。 目录 1. 模…

在githhub上创建个人主页的方法【2023更新版】

01-进入github的网站,链接 https://github.com/ ,然后注册,登陆,注意登陆时设置的用户名(username)就是将来你个人主页的三级域名,所以这里一定要慎重填写username。如下图所示: 02-注册完成后进入个人主…

【备战秋招】每日一题:5月13日美团春招第四题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检,为了更好的阅读体检,,可以查看我的算法学习博客第四题-沙堡 在线评测链接:P1289 题目描述 塔子哥在海边建了一个沙堡乐园。 里面有一个巨大的沙堡,塔子哥每年都会增加这个沙堡的层数,但也有一定…

Found a swap file by the name “.credentials.swp“

问题 使用vim终端编辑一个文件的时候,遇到了一个提示:Found a swap file by the name ".credentials.swp" 解决 这是由于编辑文件意外退出导致的,产生了.swp文件,这个时候,只要按下键盘【A】键 然后,使用…

Easy_Trans轻松让你的项目减少30%SQL代码量

什么是Easy_Trans Easy Trans是一款用于做数据翻译的代码辅助插件,利用MyBatis Plus/JPA/BeetlSQL 等ORM框架的能力自动查表,让开发者可以快速的把ID/字典码 翻译为前端需要展示的数据。 easy trans的优点 功能多样 缓存支持 跨微服务翻译支持(User和…

蓝奥声核心技术分享 ——无线单火控制技术

1.技术背景 无线单火控制技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策,属于蓝奥声核心技术--边缘协同感知(EICS)技术的关键支撑性技术之一。该项技术属于物联网边缘域的无线通信与智能控制技术领域。 对于不同智能应用场景&am…

安庆师范大学之计科-数据结构MOOC期末考试

单选 5分/题,共30题 1、在长度为n的顺序表的第i个位置上插入一个元素,i的合理取值范围是( )。 A.1≤i≤n B.任意正整数 C.i≥0 D.1≤i≤n1 正确答案:D 2‏、已知L是带表头结点单链表的头指针,摘除…

kubernetes operator解析

您是否想过站点可靠性工程 (SRE) 团队如何有效地成功管理复杂的应用程序? 在 Kubernetes 生态中,只有一个答案:Kubernetes Operators! 在本文中,我们将研究它们是什么以及它们是如何工作的。 Kubernetes Operator 概念…

STM32 软件模拟SPI

STM32 软件模拟SPI 前言关于 SPISPI 协议软件模拟实现Driver_SPI.hDriver_SPI.c 前言 STM32库:标准函数库 测试环境:STM32F103系列 关于 SPI SPI 协议 SPI(Serial Peripheral Interface,串行外设接口)是由摩托罗拉…

Python ChatGPT API 新增的函数调用功能演示

文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 OpenAI 重磅更新,API 添加函数调用能力,能处理更长上下文,价格又有所降低 … 知乎讨论:https://www.zh…

【超详细教学】Python制作迷宫小游戏教程

文章目录 前言1.首先确定迷宫的大小2. 定义迷宫的墙壁和通道3.定义迷宫的起点和终点4.定义迷宫的方向5. 生成一个空的迷宫6. 在迷宫中随机选择一个起点和终点7. 在迷宫中随机选择一个方向8. 检查一个位置是否在迷宫内9. 检查一个位置是否是墙壁10. 检查一个位置是否是通道11. 检…

工程师卓越之旅:技术文档怎么写

0.意义和价值 当前信息共享长期技术知识传承加深作者的理解和思考交付包括代码和技术文档 1.准备阶段 明确文档需求、受众和内容范围 2.调研阶段 对比有代表性的同类或相似的技术文档,建立大致框架收集相关信息,分析验证进行技术决策在文档中将每个…

HttpServletRequest对象中获取客户端IP地址

什么是HttpServletRequest对象 HttpServletRequest对象是Java Servlet规范中定义的一种接口,它封装了客户端请求的所有信息,例如请求头、请求参数、请求方法、请求URL等。在Java Web开发中,HttpServletRequest对象非常常用,可以用…