分页查询( limit )

应用场景

当要显示数据,一页显示不全,需要分页提交sql请求

语法

select 查询列表
from 表
join 连接 表2
where 筛选条件
group by 分组字段
having 分组后的筛选
order by 排序
limit offset,size;

offset显示条目的起始索引(默认从0开始)
size 显示条目个数

特点

  1. limit语句放在查询语句最后
  2. 公式

要显示的第几页page,每页显示条目数size
select from
limit (page-1)*size,size;
size=10
page
1 0
2 10
3 20

案例

查询前五条员工信息
方案1
select
from employees
limit 0 , 5;
方案2
select

from employees
limit 5 ,offset 0;

测试题🌟🌟🌟

1.查询所有学员的邮箱的用户名(注:邮箱@前的字符)🌟
select substr(email,1,instr(email,’@’)-1) 用户名
from stuinfo;
2.语句执行先后顺序

select 查询列表 7
from 表 1
join类型 连接 表2 2 笛卡尔乘积
on 连接条件 3
where 筛选条件 4
group by 分组字段 5
having 分组后的筛选 6
order by 排序 8
limit offset,size; 9

3.求出最低平均工资的部门编号
select departments.*
from departments
where departmentid =(
_select __department_id

from employees
group by department_id
order by __avg(salary)
limit 0,1
) ;

4.
Screen Shot 2020-04-25 at 8.04.46 PM.png

  1. 方案1

Screen Shot 2020-04-25 at 8.17.25 PM.png
方案2(冗余)
select *
from employees
where department_id=(
select department_id
from employees
group by department_id
order by avg(salary) desc
limit 1)
and employee_id in (
select distinct manager_id (冗余)
from emplyees
);
6.Screen Shot 2020-04-26 at 10.15.30 PM.png
结果1

Screen Shot 2020-04-26 at 10.11.48 PM.png
结果2

Screen Shot 2020-04-26 at 10.17.02 PM.png