分页查询( limit )
应用场景
当要显示数据,一页显示不全,需要分页提交sql请求
语法
select 查询列表
from 表
join 连接 表2
where 筛选条件
group by 分组字段
having 分组后的筛选
order by 排序
limit offset,size;
offset显示条目的起始索引(默认从0开始)
size 显示条目个数
特点
- limit语句放在查询语句最后
- 公式
要显示的第几页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.
- 方案1
方案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.
结果1
结果2