当前位置: 首页 > news >正文

进阶7 分页查询

进阶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.lryc.cn/news/3554.html

相关文章:

  • 利用升序定时器链表处理非活动连接
  • MySQL 开发规范
  • 【C语言进阶】预处理与程序环境
  • 【Docker知识】将环境变量传递到容器
  • Allegro如何更改铜皮显示密度操作指导
  • ThinkPHP5酒店预订管理系统
  • 【MySQL】MyCat分库分表分片规则配置详解与实战(MySQL专栏启动)
  • OpenWrt路由器设置域名动态解析手把手教程
  • java流浪动物救助系统(毕业设计)
  • 阿里代码规范插件中,Apache Beanutils为什么被禁止使用?
  • NFC enable NFC使能流程
  • Redis实例绑定CPU物理核优化Redis性能
  • STC15中断系统介绍
  • 力扣HOT100 11-15
  • 深入浅出单调栈与单调队列
  • 深入C语言——实现可变参数函数
  • 41-Dockerfile-Dockerfile简介
  • 【408】操作系统 - 刻骨铭心自测题1(上)
  • 【老卫拆书】009期:Vue+Node肩挑全栈!《Node.js+Express+MongoDB+Vue.js全栈开发实战》开箱
  • 【LeetCode】动态规划总结
  • CAS详解.
  • Mock.js初步使用(浏览器端)
  • opencv保存图片
  • 【c++】数据类型
  • Elasticsearch的写的底层原理
  • 【网络编程】Java中的Socket
  • 有趣的Hack-A-Sat黑掉卫星挑战赛——跟踪卫星
  • Ubuntu安装配置Cuda和Pytorch gpu
  • 三、Java面向对象
  • pygame7 弹球游戏2