MySQL-排序与分页

1. 排序

如果没有使用排序操作,默认情况下查询返回的数据是按照添加数据的顺序显示的。

SELECT * FROM employees;

1.1 基本使用

1)使用 ORDER BY 对查询到的数据进行排序操作。

  • 升序:ASC(ascend)
  • 降序:DESC (descend)

练习:按照salary从高到低的顺序显示员工信息

SELECT employee_id,last_name,salary
FROM employees
ORDER BY salary DESC;

在这里插入图片描述

练习:按照salary从低到高的顺序显示员工信息

SELECT employee_id,last_name,salary
FROM employees
ORDER BY salary ASC;

在这里插入图片描述

SELECT employee_id,last_name,salary
FROM employees
ORDER BY salary; # 如果在ORDER BY 后没有显式指名排序的方式的话,则默认按照升序排列。

在这里插入图片描述

2)我们可以使用列的别名,进行排序

SELECT employee_id,salary,salary * 12 annual_sal
FROM employees
ORDER BY annual_sal;

在这里插入图片描述

列的别名只能在 ORDER BY 中使用,不能在WHERE中使用。
如下操作报错!

SELECT employee_id,salary,salary * 12 annual_sal
FROM employees
WHERE annual_sal > 81600;

在这里插入图片描述

3)强调格式:WHERE 需要声明在FROM后,ORDER BY之前。

SELECT employee_id,salary
FROM employees
WHERE department_id IN (50,60,70)
ORDER BY department_id DESC;

在这里插入图片描述

4)二级排序

练习:显示员工信息,按照department_id的降序排列,salary的升序排列

SELECT employee_id,salary,department_id
FROM employees
ORDER BY department_id DESC,salary ASC;

在这里插入图片描述

2. 分页

2.1 mysql使用limit实现数据的分页显示

需求1:每页显示20条记录,此时显示第1页

SELECT employee_id,last_name
FROM employees
LIMIT 0,20;

在这里插入图片描述

需求2:每页显示20条记录,此时显示第2页

SELECT employee_id,last_name
FROM employees
LIMIT 20,20;

在这里插入图片描述

需求3:每页显示20条记录,此时显示第3页

SELECT employee_id,last_name
FROM employees
LIMIT 40,20;

需求:每页显示pageSize条记录,此时显示第pageNo页:
公式:LIMIT (pageNo-1) * pageSize,pageSize;

2.2 WHERE … ORDER BY …LIMIT

LIMIT的格式: 严格来说:LIMIT 位置偏移量,条目数
结构"LIMIT 0,条目数" 等价于 “LIMIT 条目数”

SELECT employee_id,last_name,salary
FROM employees
WHERE salary > 6000
ORDER BY salary DESC
#limit 0,10;
LIMIT 10;

在这里插入图片描述

练习:表里有107条数据,我们只想要显示第 32、33 条数据怎么办呢?

SELECT employee_id,last_name
FROM employees
LIMIT 31,2;

在这里插入图片描述

2.3 MySQL8.0新特性:LIMIT … OFFSET …

练习:表里有107条数据,我们只想要显示第 32、33 条数据怎么办呢?

SELECT employee_id,last_name
FROM employees
LIMIT 2 OFFSET 31;

在这里插入图片描述

练习:查询员工表中工资最高的员工信息

SELECT employee_id,last_name,salary
FROM employees
ORDER BY salary DESC
#limit 0,1
LIMIT 1;

在这里插入图片描述

2.4 LIMIT 可以使用在MySQL、PGSQL、MariaDB、SQLite 等数据库中使用,表示分页。

不能使用在SQL Server、DB2、Oracle!

3.排序与分页的课后练习

1. 查询员工的姓名和部门号和年薪,按年薪降序,按姓名升序显示

SELECT last_name,department_id,salary * 12 annual_salary
FROM employees
ORDER BY annual_salary DESC,last_name ASC;

在这里插入图片描述

2. 选择工资不在 8000 到 17000 的员工的姓名和工资,按工资降序,显示第21到40位置的数据

SELECT last_name,salary
FROM employees
WHERE salary NOT BETWEEN 8000 AND 17000
ORDER BY salary DESC
LIMIT 20,20;

在这里插入图片描述

3. 查询邮箱中包含 e 的员工信息,并先按邮箱的字节数降序,再按部门号升序

SELECT employee_id,last_name,email,department_id
FROM employees
#where email like '%e%'
WHERE email REGEXP '[e]'
ORDER BY LENGTH(email) DESC,department_id;

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ARM汇编与逆向工程:揭秘程序背后的神秘世界

文章目录 一、ARM汇编语言:底层世界的密码二、逆向工程:软件世界的侦探工作三、ARM汇编与逆向工程的完美结合四、ARM汇编逆向工程的风险与挑战五、ARM汇编逆向工程的未来展望《ARM汇编与逆向工程 蓝狐卷 基础知识》内容简介作者简介译者简介ChaMd5安全团…

商标“五分法”,如何起名显著性更强通过率更高!

1976年在Abercrombie一案美国判例中提出的商标五分法, 基本上在全球范围内得到认可和共识,普推知产老杨平常检索时,我国一些专家相关的论文及专著和判例中也会经常涉及到。 商标五分法主要是把商标分成个五种类型, 通用的&#xf…

Linux 常用命令(持续更新中...)

1. ls 查看文件列表命令 语法: ls [-a -l -h] [Linux路径] -a -l -h 是可选的选项 (-h需配合-l命令一起使用)Linux路径是此命令可选的参数 ls #查看当前目录所有非隐藏文件(平铺方式显示) ls -a #查看当前目录下所有文件 …

多线程+互斥+条件变量题目

欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:题目解析 目录 👉🏻 完成两个线程通过条件变量实现交替打印错误代码加优化(c线程库版本)版本2(使用phtread.h库&#xff…

leetcode代码记录(买卖股票的最佳时机 IV

目录 1. 题目:2. 我的代码:小结: 1. 题目: 给你一个整数数组 prices 和一个整数 k ,其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说…

【stm32】I2C通信外设

【stm32】I2C通信外设 概念部分 如果简单应用,选择软件I2C。如果对性能指标要求比较高 选择硬件I2C 有硬件电路自动反转引脚电平,软件只需要写入控制寄存器CR和数据寄存器DR 为了实时监控时序的状态,还要读取状态寄存器SR 写入控制寄存器CR…

LC 226.翻转二叉树

226. 翻转二叉树 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入: root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 示例 2: 输入: root [2,1,3] 输出&#xff1a…

【Linux】进程控制之进程程序替换

目录 前言 替换的原理 替换函数 记忆技巧 函数使用 execl execlp execv execvp execle execvpe 调用其它语言的程序 模拟实现一个shell 前言 关于本文可以先去看看上一篇【Linux】进程控制详解-CSDN博客可以更好的理解这里的内容 学完本篇文章,你就…

【Linux操作系统】,Linux运维面试自我介绍

16、右击创建好的虚拟机,打开设置 17、添加自己的CentOS系统文件 18、开启虚拟机 19、使用方向键选择,enter键确定 20、选择中文 21、设置好系统时间以及语言,点击“安装位置” 22、选择自定义分区 23、点击“”,定义分区 24、设置…

jdbc工具类

jdbc 工具类,具体见下面代码,直接可以用。 /*** version 1.0* descpription: jdbc工具类* date 2024/4/6*/ public class JDBCUtils {private static final String URL "jdbc:mysql://127.0.0.1:3306/mybatis";private static final String …

InnoDB中的索引方案

文章目录 InnoDB中的索引方案 InnoDB支持多种类型的索引,包括B-tree索引、全文索引、哈希索引等。B-tree索引是InnoDB存储引擎的默认索引类型,适用于所有的数据类型,包括字符串、数字和日期等。 以下是创建InnoDB表及其B-tree索引的示例代码…

用一个程序解决SQLite常见的各项操作(实用篇)

文章说明: 本篇文章是在之前的一篇文章SQLite3进行数据库各项常用操作基础上写的,将SQLite涉及到的常用的几种操作,以函数的形式处理成相互调用的形式。 因为之前的文章对基础操作已经解释过了,所以这里直接放置可执行代码和结果…

Upload file to cloud server

Procedure is trifle,concentrate on current affair. Via js step1: book a website Official guidebook https://support.huaweicloud.com/usermanual-cloudsite/cloudsite_01_4140.html 流程如下: 为什么这么难,死活不知道怎么备案 /(ㄒoㄒ)/~~

Linux:数据链路层

文章目录 路由表数据链路层分片mac帧报头ARP协议ARP的周边话题 路由表 当主机a想要发送消息到主机b,这一整个过程中,数据报文在进行传输的过程实际上是一跳一跳的过去的,而报文可能会经过公网进行传递,本质上这些网络都是靠对应的…

使用vue开发的前后台框架推荐

对于Vue后台前台框架,以下是几个值得推荐的选项: Element UI:一个基于Vue.js的桌面端组件库,提供了丰富的UI组件和交互方式,非常适合构建后台管理系统。 Element UI是一套为开发者、设计师和产品经理准备的基于Vue 2.…

【计算机毕业设计】五台山景点购票系统,后附源码

🎉**欢迎来到琛哥的技术世界!**🎉 📘 博主小档案: 琛哥,一名来自世界500强的资深程序猿,毕业于国内知名985高校。 🔧 技术专长: 琛哥在深度学习任务中展现出卓越的能力&a…

LeetCode-热题100:118. 杨辉三角

题目描述 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRows 1 输出: [[1]]…

什么是SYN攻击,有什么办法防御SYN攻击

自进入数字化互联网时代,网络技术给我们带来了许多服务,为人们的生活增添了许多便利。但同时,网络安全问题也日益凸显,其中DDoS攻击,即分布式拒绝服务攻击,已经成为一种常见的网络威胁。这种攻击方式通过控…

anaconda虚拟环境安装apex0.1教程win10

我安装apex0.1的环境是:torch(gpu)1.8.0,cuda10.2,cuda7.6.5。 第一步:下载对应的pytorch、cuda、cudnn版本 这里就不详细介绍了,具体可以参考我的这篇博文win10中anaconda创建虚拟环境配置py…

「 典型安全漏洞系列 」10.跨域资源共享CORS漏洞详解

跨域资源共享(Cross-origin Resource Sharing,CORS)是一种浏览器机制,可以对于给定域之外的资源进行受控访问。它扩展并增加了同源政策(Same-origin Policy,SOP)的灵活性。然而,如果…