【MySQL新手到通关】第四章 排序与分页

news2024/11/15 13:43:53

文章目录

  • 🐼1. 排序数据
    • 🪂🪂1.1 排序规则
    • 🪂🪂1.2 单列排序
    • 🪂🪂1.3 多列排序
  • 🐼2. 分页
    • 🪂🪂2.1 背景
    • 🪂🪂2.2 实现规则
    • 🪂🪂2.3 扩展


在这里插入图片描述


🐼1. 排序数据

🪂🪂1.1 排序规则


  • 使用 ORDER BY 子句排序
    • ASC(ascend): 升序 ( 默认)
    • DESC(descend):降序
  • ORDER BY 子句在 SELECT 语句的结尾。

🪂🪂1.2 单列排序

  1. 按照 current_level 排序 (升序)
SELECT * FROM `procatch_work_om_sp_type` ORDER BY current_level

在这里插入图片描述


  1. 按照 sp_num 升序
SELECT * FROM `procatch_work_om_sp_type` ORDER BY sp_num ASC

在这里插入图片描述

  1. 按照 create_time 降序
SELECT * FROM `procatch_work_om_sp_type` ORDER BY create_time DESC

在这里插入图片描述


🪂🪂1.3 多列排序

  1. 按照 current_level 升序 ,再按照 create_time 降序
SELECT * FROM `procatch_work_om_sp_type` ORDER BY current_level ASC,  create_time DESC

在这里插入图片描述


说明

  • 可以使用不在 SELECT 列表中的列排序。
  • 在对多列进行排序的时候,首先排序的第一列必须有相同的列值,才会对第二列进行排序。如果第
    一列数据中所有值都是唯一的,将不再对第二列进行排序。

🐼2. 分页

🪂🪂2.1 背景

背景1:查询返回的记录太多了,查看起来很不方便,怎么样能够实现分页查询呢?
背景2:表里有 4 条数据,我们只想要显示第 2、3 条数据怎么办呢?

🪂🪂2.2 实现规则


分页原理

所谓分页显示,就是将数据库中的结果集,一段一段显示出来需要的条件。

MySQL中使用 LIMIT 实现分页

格式

LIMIT [位置偏移量,] 行数

第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移
量”,将会从表中的第一条记录开始(第一条记录的位置偏移量是0,第二条记录的位置偏移量是
1,以此类推);第二个参数“行数”指示返回的记录条数。


举例

--前10条记录:
SELECT * FROM 表名 LIMIT 0,10;
或者
SELECT * FROM 表名 LIMIT 10;
--第11至20条记录:
SELECT * FROM 表名 LIMIT 10,10;
--第21至30条记录:
SELECT * FROM 表名 LIMIT 20,10;
MySQL 8.0中可以使用“LIMIT 3 OFFSET 4”,意思是获取从第5条记录开始后面的3条记录,和
“LIMIT 4,3;”返回的结果相同。

  • 分页显式公式:(当前页数-1)*每页条数,每页条数
SELECT * FROM table
LIMIT(PageNo - 1)*PageSize,PageSize;
注意:LIMIT 子句必须放在整个SELECT语句的最后!
使用 LIMIT 的好处
	约束返回结果的数量可以 减少数据表的网络传输量 ,也可以 提升查询效率 。如果我们知道返回结果只有 1
	条,就可以使用 LIMIT 1 ,告诉 SELECT 语句只需要返回一条记录即可。这样的好处就是 SELECT 不需
	要扫描完整的表,只需要检索到一条符合条件的记录即可返回。

🪂🪂2.3 扩展

在不同的 DBMS 中使用的关键字可能不同。在 MySQL、PostgreSQL、MariaDB 和 SQLite 中使用
LIMIT 关键字,而且需要放到 SELECT 语句的最后面。

  • 如果是 SQL Server 和 Access,需要使用 TOP 关键字,比如:
SELECT TOP 5 name, hp_max FROM heros ORDER BY hp_max DESC

  • 如果是 DB2,使用 FETCH FIRST 5 ROWS ONLY 这样的关键字:
SELECT name, hp_max FROM heros ORDER BY hp_max DESC FETCH FIRST 5 ROWS ONLY

  • 如果是 Oracle,你需要基于 ROWNUM 来统计行数:
SELECT rownum,last_name,salary FROM employees WHERE rownum < 5 ORDER BY salary
DESC;

需要说明的是,这条语句是先取出来前 5 条数据行,然后再按照 hp_max 从高到低的顺序进行排序。但
这样产生的结果和上述方法的并不一样。我会在后面讲到子查询,你可以使用

SELECT rownum, last_name,salary
FROM (
SELECT last_name,salary
FROM employees
ORDER BY salary DESC)
WHERE rownum < 10;

得到与上述方法一致的结果。


在这里插入图片描述

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

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

相关文章

实用交互设计工具大盘点

近年来&#xff0c;页面交互设计有了很好的发展&#xff0c;越来越受到人们的重视。如果你想成为一名页面交互设计师&#xff0c;除了对平面设计和产品设计有一定的了解外&#xff0c;更重要的是要知道哪个软件适合页面交互设计。本文将带您了解5款流行的页面交互设计软件。 1…

一题都看不懂,大厂面试真的变态......

最近我的一个读者朋友去了字节面试&#xff0c;来给我发信息吐槽&#xff0c;说字节的面试太困难了&#xff0c;像他这种三年经验的测试员&#xff0c;在技术面&#xff0c;居然一题都答不上来&#xff0c;这要多高的水平才能有资格去面试字节的测试岗位。 确实&#xff0c;字…

Hudi(三)集成Flink

1、环境准备 将编译好的jar包放到Flink的lib目录下。 cp hudi-flink1.13-bundle-0.12.0.jar /opt/module/flink-1.13.2/lib 2、sql-client方式 2.1、修改flink-conf.yaml配置 vim /opt/module/flink-1.13.2/conf/flink-conf.yamlstate.backend: rocksdb execution.checkpoi…

SpringCloud Gateway高级应用

目录 1 SpringCloud技术栈1.1 SpringCloud技术栈1.2 SpringCloud经典技术介绍1.3 SpringCloud项目场景 2 SpringCloud Gateway2.1 Gateway工作原理2.2 Gateway路由2.2.1 业务说明2.2.2 基于配置路由设置2.2.3 基于代码路由配置2.2.4 Gateway-Predicate2.2.5 断言源码剖析 2.3 G…

Settings apk进行系统签名覆盖安装

由于AndroidStudio中Settings编译出来的包是未签名的,不能将设备覆盖安装替换原先签名的包,故需要将AndroidStudio打包出来的apk进行签名 一.拷贝未签名的apk 注意签名过程需要在ubuntu中进行,所以需要将未签名的apk拷贝到ubuntu中,如下: 二.拷贝libconscrypt_openjd…

Sketch文件用什么软件打开

现在&#xff0c;想要在线打开 Sketch 文件只需要 2 步就能搞定了&#xff01; 第一步&#xff0c;访问Windows 也能用的「协作版 Sketch」——即时设计官网并点击免费使用&#xff0c;即可进入即时设计工作台。 第二步&#xff0c;进入即时设计工作台后&#xff0c;点击【文件…

【软件分析/静态分析】学习笔记01——Introduction

&#x1f517; 课程链接&#xff1a;李樾老师和谭天老师的&#xff1a;南京大学《软件分析》课程01&#xff08;Introduction&#xff09;_哔哩哔哩_bilibili 目录 一、静态程序分析介绍 1.1 PL and Static Analysis 程序语言和静态分析 1.2 为什么要学 Static Analysis? …

JavaScript 基础 DOM (三)

日期对象 实例化 获得当前时间 const date new Date() 获得指定时间 const date1 new Date( 指定时间) 方法 // 1. 实例化const date new Date();// 2. 调用时间对象方法// 通过方法分别获取年、月、日&#xff0c;时、分、秒const year date.getFullYear(); // 四位年份 时…

JDK8以后接口的新特性

JDK8以前&#xff0c;接口内只能定义抽象方法&#xff1b; JDK8&#xff0c;接口内允许定义默认方法、静态方法&#xff1b; JDK9&#xff0c;接口内允许定义私有方法 default&#xff1a;默认方法 public interface Essay01 {/*** 在接口内定义默认方法*/public default v…

CMU - FarPlanning 代码速读

https://github.com/MichaelFYang/far_planner https://www.cmu-exploration.com/ 系统结构 Far Planner 属于 High-level planning module&#xff0c;进行全局规划&#xff0c;找到可行路径&#xff1b;将 way_point发布给 Local planner和 path following KeyPoint Local-la…

帮公司面了个要21K的测试,结果.....

深耕IT行业多年&#xff0c;我们发现&#xff0c;对于一个程序员而言&#xff0c;能去到一线互联网公司&#xff0c;会给我们以后的发展带来多大的影响。 很多人想说&#xff0c;这个我也知道&#xff0c;但是进大厂实在是太难了&#xff0c;简历投出去基本石沉大海&#xff0…

arm嵌入式系统下,手把手教你移植pppoe拨号客户端,使用pppoe拨号上网

移植pppoe拨号客户端 一、概述二、移植过程1、内核配置2、pppd工具编译3、pppoe工具编译 三、配置pppoe参数四、创建节点信息五、pppoe服务器搭建 一、概述 PPPoE&#xff08;英语&#xff1a;Point-to-Point Protocol Over Ethernet&#xff09;&#xff0c;以太网上的点对点协…

Windows GUI自动化控制工具之python uiAutomation

对 Windows GUI进行自动化控制的工具有很多&#xff0c;比如pywinauto、pyautogui、pywin32、Autoit、airtest、UIAutomation等&#xff0c;UI Automation API是微软提供的自动化框架&#xff0c;可在支持 Windows Presentation Foundation (WPF) 的所有操作系统上使用&#xf…

Niagara—— Niagara Editor界面

目录 一&#xff0c;菜单栏 二&#xff0c;工具栏 三&#xff0c;预览面板 四&#xff0c;参数面板 五&#xff0c;系统总览面板 六&#xff0c;暂存区面板 七&#xff0c;选择面板 打开Niagara Editor&#xff1a; 双击Niagara发射器或系统&#xff1b;右击Niagara发射…

Qt--事件分发器

写在前面 在 Qt 中&#xff0c;事件分发器(Event Dispatcher)是一个核心概念&#xff0c;用于处理 GUI 应用程序中的事件。事件分发器负责将事件从一个对象传递到另一个对象&#xff0c;直到事件被处理或被取消。 每个继承自QObject或QObject的类都可以在本类中重写bool even…

基于 Amazon API Gatewy 的跨账号跨网络的私有 API 集成

一、背景介绍 本文主要讨论的问题是在使用 Amazon API Gateway&#xff0c;通过 Private Integration、Private API 来完成私有网络环境下的跨账号或跨网络的 API 集成。API 管理平台会被设计在单独的账号中(亚马逊云科技提供的是多租户的环境)&#xff0c;因为客观上不同业务…

生于零售的亚马逊云科技,如何加速中国跨境电商企业出海?

导读&#xff1a;跨境电商进入精耕细作的新阶段。 作为中国企业出海的重要领域之一&#xff0c;近几年跨境电商行业处在快速发展中。商务部数据显示&#xff0c;2022年中国跨境电商出口达1.55万亿&#xff0c;同比增长11.7%。2023年1-2月&#xff0c;跨境电商进出口总额同比增长…

【wpf】视觉树上找元素的注意事项

前言 我们通过 VisualTreeHelper类 可以在视觉树上找元素&#xff0c;下面提供几个封装好的方法&#xff1a; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media; using Sy…

分析| Flutter 3.10版本有哪些变化?

Flutter是Google推出的一款用于构建高性能、高保真度移动应用程序、Web和桌面应用程序的开源UI工具包。Flutter使用自己的渲染引擎绘制UI&#xff0c;为用户提供更快的性能和更好的体验。Flutter还提供了丰富的构建工具、库和插件&#xff0c;使开发人员能够更快地构建应用程序…

从浅入深理解序列化和反序列化

文章目录 什么是java序列化什么情况需要使用 Java 序列化为什么要序列化序列化和反序列化过程如下RPC 框架为什么需要序列化序列化用途序列化机制可以让对象地保存到硬盘上&#xff0c;减轻内存压力的同时&#xff0c;也起了持久化的作用序列化机制让Java对象可以在网络传输 实…