【MYSQL 基础篇笔记】DQL——分页查询

分页查询

一、应用场景

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


二、语法

SELECT 查询列表
FROM 表
【JOIN type】JOIN 表2
ON 链接条件
WHERE 筛选条件
GROUP BY 分组字段
HAVING 分组后的筛选
ORDER BY 排序字段
LIMIT 【OFFSET】,size;

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

执行顺序:FROM → JOIN → ON → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT

三、特点

1、LIMIT语句在查询语句的最后
2、公式:要显示的页数是page,每页条目数是size


SELECT 查询列表
FROM 表
LIMIT (page-1)*size,size

(page-1)*size=起始索引,size为显示个数


#案例1:查询前5条员工信息
SELECT *FROM employees LIMIT 0,5;
SELECT *FROM employees LIMIT 5;

#案例2:查询第11条-25条员工信息
SELECT *FROM employees LIMIT 10,15;
SELECT *FROM employees LIMIT 24 OFFSET 9 #选取前0-24行,排除0-9行
#案例3:有奖金的员工信息,并且工资较高的前10名显示出来
SELECT * FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY salary DESC
LIMIT 10;
#案例4:查询平均工资最低的部门信息和该部门的平均工资
SELECT d.*
FROM departments d,(
	SELECT avg(salary),department_id
	FROM employees
	GROUP BY department_id
	ORDER BY avg(salary)
	LIMIT 1) avg
WHERE d.department_id=avg.department_id;
#或	
SELECT d.*
FROM departments d
WHERE d.department_id=(
	SELECT department_id
	FROM employees
	GROUP BY department_id
	ORDER BY avg(salary)
	LIMIT 1)

#案例5:各部门中,最高工资中最低的那个部门的,最低工资是多少?
SELECT MIN(salary),department_id
FROM employees
WHERE department_id=(
	SELECT department_id
	FROM employees
	GROUP BY department_id
	ORDER BY MAX(salary)
	LIMIT 1);
	
#案例6:查询平均工资最高的部门的manager的姓名、部门、邮箱、工资
SELECT last_name,e.department_id,email,salary
FROM employees e
JOIN departments d
ON d.manager_id=e.employee_id
WHERE e.department_id=(
	SELECT department_id
	FROM employees
	GROUP BY department_id
	ORDER BY AVG(salary) DESC
	LIMIT 1);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值