数据库基础——6.排序与分页

news2025/1/12 1:46:01

这篇文章来讲一下数据库的排序与分页

目录

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 单列排序

例:SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date ;

例:SELECT last_name, job_id, department_id, hire_date FROM employees ORDER BY hire_date DESC ; 

说明:单列排序就是依照某一单列的数据来进行排序

1.3 多列排序

例:SELECT last_name, department_id, salary FROM employees ORDER BY department_id, salary 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/580274.html

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

相关文章

怎么一键保存浏览器中打开的所有标签页?

2023年5月28日&#xff0c;周日晚上&#xff1a; 被这个问题困扰很久了&#xff0c;之前一直不知道怎么全部保存浏览器中打开的所有标签页&#xff0c;浪费了不少的时间&#xff0c;今天下午偶然发现了解决办法。 很简单&#xff0c;直接在浏览器里使用快捷键“CtrlShiftD” …

本周大新闻|传Meta与Magic Leap谈专利授权;PS VR2前6周出货60万台

本周XR大新闻&#xff0c;AR方面&#xff0c;苹果XR项目核心高管曝光&#xff1b;传Meta与Magic Leap洽谈专利授权合作&#xff1b;歌尔光学公布新一代AR显示模组&#xff1b;Lumus公布二代波导Z-Lens最新细节&#xff1b;JBD X-cube发布全彩Micro LED光机Hummingbird&#xff…

我用GPT写了一个关于GPT的文章,大家看看写的如何

声明&#xff1a;以下内容来自GPT-3.5大模型&#xff08;图片除外&#xff09; 目录 I. 引言 1.1 研究背景和意义 1.2 现有研究综述 II. ChatGPT技术介绍 2.1 ChatGPT技术原理 2.2 ChatGPT技术优势 III. ChatGPT技术在智能客服中的应用和挑战 3.1 ChatGPT技术在智能客…

【TOP生物信息】使用Seurat包自带的方法进行单细胞类型注释

扫码关注下方公粽号&#xff0c;回复推文合集&#xff0c;获取400页单细胞学习资源&#xff01; 本文共计1318字&#xff0c;阅读大约需要4分钟&#xff0c;目录如下&#xff1a; 方法简介演示数据来源代码演示小结代码参考往期单细胞系统教程 单细胞自动注释细胞类型的软件和…

华为OD机试真题B卷 Java 实现【查字典】,附详细解题思路

一、题目描述 输入一个单词前缀和一个字典&#xff0c;输出包含该前缀的单词。 二、输入描述 单词前缀字典长度字典。 字典是一个有序单词数组。 输入输出都是小写。 三、输出描述 所有包含该前缀的单词&#xff0c;多个单词换行输出。 若没有则返回-1。 四、解题思路…

Java的包:提高代码可维护性和可扩展性的神器

&#x1f9d1;‍&#x1f4bb;CSDN主页&#xff1a;夏志121的主页 &#x1f4cb;专栏地址&#xff1a;Java基础进阶核心技术专栏 目录 &#x1f354; 一、包名 &#x1f9c6; 二、类的导入 &#x1f958; 三、静态导入 &#x1f958; 四、在包中增加类 &#x1f371; 五、…

腾讯云服务器地域有什么不同?地域怎么选?

腾讯云服务器地域有什么区别&#xff1f;怎么选择比较好&#xff1f;地域选择就近原则&#xff0c;距离地域越近网络延迟越低&#xff0c;速度越快。关于地域的选择还有很多因素&#xff0c;地域节点选择还要考虑到网络延迟速度方面、内网连接、是否需要备案、不同地域价格因素…

Docker环境下将已运行的容器打包成新的镜像并运行在另一个服务器上的Docker容器中

1、 查看当前运行的容器 1.1、使用root账户登录进入Linux系统中&#xff0c;键入docker ps命令。 2、打包容器为镜像包 2.1、正在运行的容器一行中CONTAINER ID一列下面的字符串就是容器id&#xff0c;复制想要打包的容器ID并执行docker commit 容器id 容器新名称 例如&…

Spring Boot集成Seata利用AT模式分布式事务示例 | Spring Cloud 53

一、前言 通过以下系列章节&#xff1a; docker-compose 实现Seata Server高可用部署 | Spring Cloud 51 Seata AT 模式理论学习、事务隔离及部分源码解析 | Spring Cloud 52 我们对Seata及其AT事务模式有了基础的了解&#xff0c;今天我们通过搭建Spring Boot集成Seata示例…

组合总和--纯垃圾内容别看,浪费时间

1题目 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被选…

[电脑使用技巧]Windows 11安装安卓手机APP

如果你的电脑已经运行Windows 11,经常在电脑和手机来复制内容&#xff0c;那我们为什么不在Windows 上实现安卓APP的应用呢&#xff1f;其实操作真的非常简单&#xff0c;我们接下来给大家分享下如何实现在Windows 11的系统上安装的app。只要按照下面的步骤逐个完成你就可以开启…

ffmpeg编译成wasm

最近在看ffmpeg的源码 https://ffmpeg.xianwaizhiyin.net/ffplay/ https://crifan.github.io/media_process_ffmpeg/website/audio_process/ 做个可运行的例子 代码在找了一堆&#xff0c;可用的版本放在这 https://github.com/killinux/ffmpeg_wasm_demo 先把ffmpeg 编译成 …

50 Projects 50 Days - Scroll Animation 学习记录

项目地址 Scroll Animation 展示效果 Scroll Animation 实现思路 HTML结构比较简单&#xff0c;就是10个盒子元素。当鼠标滚动时&#xff0c;盒子分别从左右移动过来。 思路上最开始想到的是给每一个盒子标记一个序号&#xff0c;滚动屏幕后&#xff0c;计算已经划动屏幕的…

C++ - 非类型模版参数和模版的特化

目录 非类型模版参数 模版的特化 函数模版特化 类模版特化 全特化 半特化(偏特化) 参数更进一步的限制 非类型模版参数 在之前学过的例子来看&#xff0c;我们使用模版&#xff0c;它们的参数都是类型模版&#xff0c;根据类型来决定实例化 而模版其实还有一种参数&…

通过Python的pdfplumber库提取pdf中表格数据

文章目录 前言一、pdfplumber库是什么&#xff1f;二、安装pdfplumber库三、查看pdfplumber库版本四、提取pdf中表格数据1.引入库2.定义pdf文件路径3.打开pdf文件4.获取pdf文件中的页数5.遍历每一页6.获取当前页内容7.提取表格数据8.输出表格数据9.效果 总结 前言 大家好&#…

聊聊美剧202306

刚把《黄石》系列看完&#xff0c;决定写点最近看的美剧&#xff0c;总共十一部&#xff0c;小评一下&#xff0c;写点东西~ 《黄石》 《黄石》已经到第五季了&#xff0c;看样子还得继续拍。刚开始看《黄石》的时候&#xff0c;确实有种陷进去的感觉&#xff0c;很美很宏伟的电…

leetcode 264.丑数

题目描述跳转去leetcode 给你一个整数 n &#xff0c;请你找出并返回第 n 个 丑数 。 丑数 就是只包含质因数 2、3 和/或 5 的正整数。 来源&#xff1a;leecode&#xff1a;https://leetcode.cn/problems/ugly-number-ii/ 解法1&#xff0c; 动态规划 定义一个数组用来记录前…

VMware Workstation 安装 AlmaLinux 9.2

VMware Workstation 安装 AlmaLinux 9.2 AlmaLinux 9.2 镜像下载AlmaLinux 9.2 安装创建新用户配置免密 sudo 到 root 用户配置 ssh key 登录挂载新磁盘 AlmaLinux 9.2 镜像下载 访问 https://mirrors.almalinux.org/isos.html 下载安装镜像&#xff0c; AlmaLinux 9.2 安装 …

K8s进阶7——Sysdig、Falco、审计日志

文章目录 一、分析容器系统调用&#xff1a;Sysdig1.1. 安装1.2 常用参数1.3 采集分析1.4 示例1.4.1 查看某进程系统调用事件1.4.2 查看建立TCP连接事件1.4.3 查看某目录下打开的文件描述符1.4.4 查看容器的系统调用 1.5 Chisels工具1.5.1 网络类1.5.2 硬盘类1.5.3 cpu类1.5.4 …

新型智慧园区解决方案之园区通行管理设计

智慧园区作为现代化城市化建设的重要组成部分&#xff0c;已经成为未来城市的重要发展方向。在智慧园区的建设中&#xff0c;通行管理是一个十分重要的问题。为了解决这一问题&#xff0c;我们需要进行一系列的设计和方案的制定。 一、园区交通规划设计 园区交通规划设计是通…