一、分页查询,应用LIMIT实现分页查询
- 语法:
select 查询列表
from 表
[连接类型 join] 表名 on 连接条件
[where 筛选条件]
[group by 分组条件]
[having 筛选条件]
[order by 排序]
limit [startindex],size; --分页查询
-
其中:
startindex
表示要显示的条目的起始索引(从0开始)size
表示要显示的条目个数
-
特点:
①、limit
语句放在查询语句的最后
②、公式,若每页有size条记录,要显示的页数为pageselect 查询列表 from 表 limit (page-1)*size, size;
案例
1 显示前5名员工的信息
SELECT * FROM employees LIMIT 0,5;
SELECT * FROM employees LIMIT 5; #startindex表示默认从0开始显示
案例
2 显示11–25条员工的信息
SELECT * FROM employees LIMIT 11,15;
案例
3 查询有奖金的工资较高的前10名员工的信息
SELECT * FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY salary DESC
LIMIT 10;
二、 小总结:说出MySQL中所有的查询语句的关键词,以及执行顺序
select
查询列表 ⑧ -->根据要查询的具体字段,生成一个虚拟表
from
表 ① -->生成原始的表
连接类型join
表名 ② -->生成一个大表,笛卡尔乘积表
on
连接条件 ③ -->根据连接条件,留下符合条件的
where
筛选条件 ④ -->再根据筛选条件,生成一个符合该条件的表
group by
分组条件 ⑥ -->分组
having
筛选条件 ⑦ -->再根据筛选条件,生成一个符号条件的表
order by
排序 ⑨ -->对⑧中的表根据排序条件进行排序
limit
[startindex],size; ⑩ -->根据limit条件显示具体数目的结果
三、联合查询 union
-
union
联合查询 合并:将多条查询语句的结果合并成一个结果 -
语法:
查询语句1
union
查询语句2
union
....
-
应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时
-
特点或要求:
- ① 要求多条查询语句的查询列数一致
- ② 要求多条查询语句的每一列的类型和顺序最好一致
- ③ union联合查询默认会去重,union all 可以包含重复项
案例
4 查询部门编号大于90或工资高于12000的员工信息
SELECT * FROM employees WHERE department_id > 90
UNION
SELECT * FROM employees WHERE salary > 12000;