进阶7 分页查询

news/2024/11/28 7:46:22/

进阶7 分页查询!!!

目录

    • 概述
    • 练习题

概述

  1. 应用场景:当要显示的数据一页显示不全,需要分页提交SQL请求

  2. 语法:
    select 查询列表
    from 表名
    【join type join 表2
    on 连接条件
    where 筛选条件
    group by 分组字段
    having 分组后的筛选条件
    order by 排序字段 】
    limit 【offset,】size;

    offset代表要显示条目的起始索引(起始索引从0开始) 注意SQL的索引是从1开始的
    offset为可选参数,默认为0
    size代表要显示的条目个数

  3. 特点:

    • limit语句放在查询语句的最后,执行顺序也是最后
      回顾执行顺序:
      先执行from子句(包括多表连接)
      再执行where子句,生成一张临时表
      再执行group by子句,生成若干张临时表
      再执行select子句,从若干张临时表得到一张临时表
      再执行having子句,对临时表中的数据进行过滤
      再执行order by子句
      最后是limit子句
    • 公式 【要显示的页数为page,每页的数目为size】
      select 查询列表
      from 表名
      limit (page-1)*size,size;
  • 案例1:查询前五条员工信息
    select * from employees limit 0,5;
    select * from employees limit 5;
    
  • 案例2:查询第11条到第25条的信息
    select * from employees limit 11,15;
    
  • 案例3:对有奖金的员工,按照工资从高到低排序,显示前15条员工信息
    select * from employees where commission_pct is not null order by salary desc limit 15;
    

练习题

已知表stuinfo
id 学号
name 姓名
email 邮箱 john@126.com
gradeId 年级编号
sex 性别 男 女
age 年龄

已知表grade
id 年级编号
gradeName 年级名称

#一、查询所有学员的邮箱的用户名(注:邮箱@前面的字符)
select substr(email,1,instr(email,'@')-1) '用户名' from stuinfo;
#二、查询男生和女生的个数
select sex,count(*) from stuinfo group by sex;
#三、查询年龄>18岁的所有学生的姓名和年级名称 
select `name`, 
(select gradeName from grade where id = s.gradeId)
from stuinfo s where age > 18;
#四、查询哪个年级的学生最小年龄>20
select gradeId,min(age) from stuinfo group by gradeId having min(age)>20;

试说出查询语句中涉及到的所有关键字,以及执行的先后顺序

select 查询列表                 7
from 表名                       1
【连接类型】 join2           2
on 连接条件                     3
where 分组前的筛选条件          4
group by 分组字段               5
having 分组后的筛选条件         6
order by 排序字段               8
limitoffset,】size;          9注:每一步都会生成虚拟表

http://www.ppmy.cn/news/24370.html

相关文章

linux系统常用命令

目录 一、系统介绍 二、Linux常用命令 1、Linux命令格式 2、文件目录操作命令:ls 3、文件目录操作命令:cd 4、文件目录操作命令:cat 5、文件目录操作命令:more 6、文件目录操作命令:tail 7、创建文件命令&…

使用太极taichi写一个只有一个三角形的有限元

公式来源 https://blog.csdn.net/weixin_43940314/article/details/128935230 GAME103 https://games-cn.org/games103-slides/ 初始化我们的三角形 全局的坐标范围为0-1 我们的三角形如图所示 ti.kernel def init():X[0] [0.5, 0.5]X[1] [0.5, 0.6]X[2] [0.6, 0.5]x[0…

【C++:STL之栈和队列 | 模拟实现 | 优先级队列 】

目录 1. stack的介绍和使用 1.1 stack的介绍 1.2 stack的使用 2 栈的模拟实现 3 queue的介绍和使用 3.1 queue的介绍 3.2 queue的使用 4 queue的模拟实现 5 deque的介绍 5.1deque的原理介绍 5.2 deque的缺陷 5.3 为什么选择deque作为stack和queue的底层默认容器 6 p…

2022年山东省中职组“网络安全”赛项比赛任务书正式赛题

2022年山东省中职组“网络安全”赛项 比赛任务书 一、竞赛时间 总计:360分钟 竞赛阶段竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 180分钟 200分 A-2 Nginx安全策略 A-3 日志监控 A-4 中间件服务加固 A-5 本地安全策略…

在 WebAssembly 中使用 C/C++ 和 libbpf 编写 eBPF 程序

作者:于桐,郑昱笙 eBPF(extended Berkeley Packet Filter)是一种高性能的内核虚拟机,可以运行在内核空间中,用来收集系统和网络信息。随着计算机技术的不断发展,eBPF 的功能日益强大&#xff0c…

【宝塔部署SpringBoot前后端不分离项目】含域名访问部署、数据库、反向代理、Nginx等配置

一定要弄懂项目部署的方方面面。当服务器上部署的项目过多时,端口号什么时候该放行、什么时候才会发生冲突?多个项目使用redis怎么防止覆盖?Nginx的配置会不会产生站点冲突?二级域名如何合理配置?空闲的时候要自己用服…

Vulkan Graphics pipeline Dynamic State(图形管线之动态状态)

Vulkan官方英文原文:请见 Vulkan 1.3.236 - A Specification 10.9 章节。对应的Vulkan技术规格说明书版本: Vulkan 1.3.2A dynamic pipeline state is a state that can be changed by a command buffer command during the execution of a command buff…

MongoDB--》MongoDB数据库以及可视化工具的安装与使用—保姆级教程

目录 数据库简介 MongoDB数据库的安装 MongoDB数据库的启动 MongoDB数据库环境变量的配置 MongoDB图形化管理工具 数据库简介 在使用MongoDB数据库之前,我们应该要知道我们使用它的原因: 在数据库当中,有常见的三高需求: Hi…