MySQL——分页查询

2023.9.11

        分页查询学习笔记:

#分页查询 
/*
应用场景:当要显示的数据,一页显示不全,需要分页提交sql请求
语法:
	select 查询列表
	from 表
	【join type join 表2
	on 连接条件
	where 筛选条件
	group by 分组字段
	having 分组后的筛选
	order by 排序的字段】
	limit 【offset,】size;
	
	offset要显示条目的起始索引(起始索引从0开始) 
	size 要显示的条目个数
特点:
	①limit语句放在查询语句的最后
	②公式
	要显示的页数 page,每页的条目数size
	
	select 查询列表
	from 表
	limit (page-1)*size,size;	
*/
#案例1:查询前五条员工信息
SELECT * FROM `employees` LIMIT 0,5; #limit后第一个参数代表起始索引(从0开始算),第二个参数代表显示条数
# 也可以直接
SELECT * FROM `employees` LIMIT 5;
#案例2:查询第11条——第25条
SELECT * FROM `employees` LIMIT 10,15;
#案例3:有奖金的员工信息,并且工资较高的前10名显示出来
SELECT * FROM `employees`
WHERE `commission_pct` IS NOT NULL 
ORDER BY salary DESC
LIMIT 0,10;

        课后习题:

#课后习题
/*
已知表 stuinfo
id 学号
name 姓名
email邮箱  [email protected]
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,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
HAVING MIN(age)>20;

猜你喜欢

转载自blog.csdn.net/m0_61028090/article/details/132811951