mysql-分页查询

分页查询

应用场景:
当要显示的数据,一页显示不全,需要分页提交sql请求
语法:

select  查询列表  ⑦
from 表     ①
【join type  join 表2   ②
on   连接条件        ③
where 筛选条件  ④
group by 分组字段  ⑤
having  分组后的筛选  ⑥
order by 排序字段】  ⑧
limit 【offset】,size  ⑨

offset:要显示条目的起始索引,(起始索引从0开始)
size:要显示的条目个数

案例1:查询五条员工信息

SELECT * FROM employees
LIMIT 0,5;

案例2“查询第11条-第25条的员工信息”
一共要查询:25-11+1=15

select * from employees
limit 10,15;

案例3:有奖金的员工信息,并且工资高的前10名显示出来

select * from
employees
where commission_pct is not null 
order by salary desc
limit 10;

特点

1、limit语句放在查询语句的最后
2、分页查询的公式:
要显示的页数page,每页显示的条目数size
select 查询列表
from 表
limit (page-1)*size,size
size=10
page 1 0
2 10
3 20

练习:
已知表stuinfo
id:学号
name:姓名
email:邮箱
grade_id :年级编号
sex:性别
age:年龄

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

一、查询所有学员的邮箱的用户名(邮箱中@前边的字符)

select   substr(email,1,instr(email,'@')-1) 用户名
from stuinfo;

二、查询男生和女生的个数

select count(*),sex
from stuinfo
group by sex;

三、查询年龄>18岁的所有的学生的姓名和年级名称

select name,gradeName
from stuinfo s
inner join grade  g
on s.gradeId=g.id
where age>18;

四、查询哪个年级的学生的年龄大于20岁
①查询每个年级的最小年龄

select  min(age),gradeId
from  stuinfo
group by gradeId;

在①的结果上进行筛选

select  min(age),gradeId
from  stuinfo
group by gradeId
having min(age)>20;

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

select  查询列表
from  表
连接 类型 join   表2
on 连接条件
where 筛选条件
group by 分组字段
having 分组后的筛选
order by 排序列表
limit 偏移,条目数

执行顺序 :
先from
在执行 join
接着 on
接着where
接着group by
接着 having
接着select
在接着 order by
最后 limit
没执行一步:都会生成一张虚拟的表。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值