【MySQL系列】Select语句单表查询详解(二)ORDERBY排序

在这里插入图片描述

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤
📃个人主页 :阿然成长日记 👈点击可跳转
📆 个人专栏: 🔹数据结构与算法🔹C语言进阶
🚩 不能则学,不知则问,耻于问人,决无长进
🍭 🍯 🍎 🍏 🍊 🍋 🍒 🍇 🍉 🍓 🍑 🍈 🍌 🍐 🍍

文章目录

  • 一、排序ORDER BY
    • 1.ORDER BY的格式:
    • 2.ORDER BY的作用:
    • 3.ORDER BY的使用:
      • 1️⃣ 按照字段名排序
      • 2️⃣按字段照序号进行排序
      • 3️⃣降序DESC
      • 4️⃣根据多列排序
      • 5️⃣还可以结合搭配函数或者一些查询条件使用。
  • 二、遇到NULL的情况
    • 1.使用场景
    • 2.直接默认排序(不加排序规则)
    • 3.使用ASC升序
    • 4. 使用 IF ( isnull (字段名称),1,0)
    • 📝总结:
  • 🚩 ORDER BY排序与索引关系的注意事项

⬇️创建一个学生成绩表,供后续使用
在这里插入图片描述

一、排序ORDER BY

1.ORDER BY的格式:

SELECT [DISTINCT ] 【* 或 字段名1,字段名2……
FROM表名字
WHERE 【查询条件】
ORDER BY 【字段名】ASC/DESC;

2.ORDER BY的作用:

ORDER BY 关键字可以深紫色文字使查询返回的结果集按照指定的列进行排序,可以按照某一列排序或者同时按照多列进行排序,排序的顺序可以升序或者降序。

3.ORDER BY的使用:

1️⃣ 按照字段名排序

ORDER BY 关键字可以按照某「列名」进行排序,列名就是字段名

例如:根据id对学生进行排序

执行语句:
在这里插入图片描述
查询结果:
在这里插入图片描述

2️⃣按字段照序号进行排序

格式:ORDER BY n 表示,以“第n个字段”排序。

在这里插入图片描述
从左到右(1–n)

例如:根据第三个进行排序

执行语句
在这里插入图片描述
在这里插入图片描述

3️⃣降序DESC

在ORDER BY语句中,如果没有写排序规则,默认是ASC升序。如果想要降序,则必须加DESC后缀

例如:根据id降序排列

执行语句
在这里插入图片描述
在这里插入图片描述

4️⃣根据多列排序

例如:
根据数学成绩和id进行排序。

首先会进行数学成绩排队,如果相同,则只根据数学成绩排序。如果有相同的,则会再根据id序号进行排序。

执行语句
在这里插入图片描述
在这里插入图片描述

5️⃣还可以结合搭配函数或者一些查询条件使用。

执行语句
在这里插入图片描述
在这里插入图片描述

二、遇到NULL的情况

1.使用场景

当我们使用order by对某一字段进行排序时,该字段中包含null值,这种情况下,排序就会出现问题,我们可以根据实际情况,指定为空的排在前面或者排在后面。

2.直接默认排序(不加排序规则)

执行语句
在这里插入图片描述
在这里插入图片描述

可以发现NULL值被默认放到了最后。

3.使用ASC升序

在这里插入图片描述
可以发现NULL值又被放到了最前面。

4. 使用 IF ( isnull (字段名称),1,0)

执行语句
在这里插入图片描述
在这里插入图片描述
可以发现NULL值又跑到了最下面。

📝总结:

可以这样想,便于记忆:
(1)默认排序规则【升序,NULL在最下main】
(2)标明排序规则:NULL最小升序ASC肯定是排最上面,降序时DESC最小的NULL值放在最下面。
(3)如果需要变化,那么就使用特定格式。

🚩 ORDER BY排序与索引关系的注意事项

注意: ORDER BY的使用位置非常关键,甚至会影响查询性能。
通过验证得知:order by 中的字段出现在where条件中时,才会利用索引而不排序,更准确的说,order by 中的字段在执行计划中利用了索引时,不用排序操作
还应注意,在这里我使用的INNODB引擎,不同的引擎在排序方法上有所不同,不同的引擎,会有不同的查询速率。
后续会对索引进行单独讲解,在这仅仅一提

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

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

相关文章

C语言:选择+编程(每日一练Day8)

目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:字符个数统计 思路一: 题二:多数元素 思路一: 本人实力有限可能对一些…

em 和 rem 的区别

前言 em 和 rem 都是相对单位,在使用时由浏览器转换为像素值,具体取决于你的设计中的字体大小设置。 如果你使用值 1em 或 1rem,它可以被浏览器解析成 从16px 到 160px 或其他任意值。 em 和 rem 的区别 em 和 rem 单位之间的区别是浏览器…

k8s 安装 istio(二)

3.3 部署服务网格调用链检测工具 Jaeger 部署 Jaeger 服务 kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.16/samples/addons/jaeger.yaml 创建 jaeger-vs.yaml 文件 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata…

【面试】一文讲清组合逻辑中的竞争与冒险

竞争的定义:组合逻辑电路中,输入信号的变化传输到电路的各级逻辑门,到达的时间有先后,也就是存在时差,称为竞争。 冒险的定义:当输入信号变化时,由于存在时差,在输出端产生错误&…

Debug result = unpickler.load() ModuleNotFoundError: No module named ‘models‘

1.torch训练的yolov5转trt出现问题如下&#xff1a; Using CUDA device0 _CudaDeviceProperties(nameNVIDIA GeForce RTX 3080, total_memory10017MB)Find Pytorch weight Traceback (most recent call last):File "export.py", line 243, in <module>ckpt t…

Mac nvm 切换为淘宝镜像

编辑环境配置 # 或者 vim ~/.bash_profile $ vim ~/.zshrc贴入镜像 # 淘宝镜像 export NVM_NODEJS_ORG_MIRRORhttp://npm.taobao.org/mirrors/node export NVM_IOJS_ORG_MIRRORhttp://npm.taobao.org/mirrors/iojs# nvm环境配置 export NVM_DIR"$HOME/.nvm"[ -s &quo…

【实战】十一、看板页面及任务组页面开发(四) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十六)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…

使用haproxy搭建web架构

haproxy HAProxy是一个免费的负载均衡软件&#xff0c;可以运行于大部分主流的Linux操作系统上。 HAProxy提供了可以在七层和四层两种负载均衡能力&#xff0c;它可以提供高可用性、负载均衡、及基于TCP和HTTP应用的代理。适用于负载大的Web站点&#xff0c;在运行在硬件上可…

libdrm全解析十九 —— 源码全解析(16)

接前一篇文章&#xff1a;libdrm全解析十八 —— 源码全解析&#xff08;15&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; 特此致谢&#xff01; 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 27. DRM_IOCTL_SET_SAR…

在React中,如何进行组件间的通信?请解释一下React的生命周期方法(Lifecycle Methods)是什么,以及它们的作用。

1、在React中&#xff0c;如何进行组件间的通信&#xff1f; 在React中&#xff0c;组件间的通信主要依赖于以下三种方式&#xff1a; Props&#xff1a;这是React中最重要的组件间通信方式。你可以将数据从一个组件传递到另一个组件&#xff0c;数据可以是简单的数据&#x…

To_Heart—题解——P6234 [eJOI2019] T形覆盖

link. 突然很想写这篇题解。虽然题目不算难。 考场只有30分是为什么呢&#xff1f;看来是我没有完全理解这道题目吧&#xff01; 首先很明显的转换是&#xff0c;把 T 型覆盖看成十字形&#xff0c;再考虑最后减去某一块的贡献。 然后然后直接往原图上面放十字形!对于每一个…

企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理) em

​ 工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…

1.4 启动MySQL客户端程序

成功启动MySQL服务器程序之后&#xff0c;就可以接着启动客户端程序来连接这个服务器。 bin 目录下有许多客户端程序&#xff0c;比方说 mysqladmin 、 mysqldump 、 mysqlcheck 等等。这里我们重点要关注的是可执行文件 mysql &#xff0c;通过这个可执行文件可以让我们和服务…

mysql数据库root密码遗忘后,修改root密码

目录 方式一&#xff1a; 方式二&#xff1a; 2.1 也可以像我这样&#xff0c;普通用户登录进去后 2.2 执行如下命令&#xff0c;将已知的user1的加密密文更新到root中 2.3 查询数据库 2.4 用root用户登录 2.5 登录正常&#xff0c;但这会root登录进去后&#xff0c;无法…

2023深圳智博会,正运动助力智能装备“更快更准”更智能!

■展会名称&#xff1a; 2023 深圳国际智能装备产业博览会暨深圳国际电子装备产业博览会&#xff08;以下简称“EeIE 智博会”&#xff09; ■展会日期 2023年8月29日-31日 ■展馆地点 深圳国际会展中心(宝安新馆) ■展位号 3B030 正运动技术&#xff0c;作为国内领先的…

smartbi token回调获取登录凭证漏洞

前段时间&#xff0c;Smartbi官方修复了一处权限绕过漏洞。未经授权的攻击者可利用该漏洞&#xff0c;获取管理员token&#xff0c;完全接管管理员权限。于是研究了下相关补丁并进行分析。 0x01分析结果 依据补丁分析&#xff0c;得到如下漏洞复现步骤 第一步&#xff0c;设…

网络安全---负载均衡案例

一、首先环境配置 1.上传文件并解压 2.进入目录下 为了方便解释&#xff0c;我们只用两个节点&#xff0c;启动之后&#xff0c;大家可以看到有 3 个容器&#xff08;可想像成有 3 台服务器就成&#xff09;。 二、使用蚁剑去连接 因为两台节点都在相同的位置存在 ant.jsp&…

《Effective C++中文版,第三版》读书笔记5

条款26&#xff1a;尽可能延后变量定义式出现时间 原因&#xff1a; ​ 只要你定义了一个变量而其类型带有一个构造和一个析构&#xff0c;程序控制流到达其定义时有构造成本&#xff0c;控制流离开该变量的作用域时有析构成本 尽可能延后 ​ 不只因该延后变量的定义&#…

CAD泰森多边形框架3D插件

插件介绍 CAD泰森多边形框架3D插件可用于在AutoCAD软件内生成三维Voronoi框架结构实体模型&#xff0c;适用于多孔Voronoi科研论文渲染绘图、Voronoi框架有限元建模、Voronoi空间结构优化等方面的应用。 使用说明 插件可设置生成的几何尺寸、晶格尺寸及边框直径等信息。 插…

Java中字符串拼写常用方法和高级技巧,举例并说明,加上注释和实际运行效果说明

Java中字符串拼写常用方法和高级技巧&#xff0c;举例并说明&#xff0c;加上注释和实际运行效果说明 目录 1、使用""操作符拼接字符串 2、使用StringBuilder类拼接字符串 3、使用String.format()方法格式化字符串 4、使用String.concat()方法拼接字符串 5、使…