DQL - 分页查询(Paging Query)、联合查询(Union Query)
本站字数:108k 本文字数:441 预计阅读时长:1min 访问次数:次分页查询
应用场景
当要显示的数据一页显示不全,需要分页提交sql提交
语法
1 | select 查询列表 |
特点
- limit语句放在查询语句的最后
- 公式
要显示的页数是page,每页的条目数时size
select 查询列表
from 表
limit (page-1)*size size;
相关案例
案例1:查询前五条的员工信息
1
2
3
4
5
6
7
8
9
10
11SELECT
*
FROM
employees
LIMIT 0 , 5;
## offset[Optional]
SELECT
*
FROM
employees
LIMIT 5;案例2:查询第11条到第25条
1
2
3
4
5SELECT
*
FROM
employees
LIMIT 11, 15;案例3:有奖金的员工姓名,工资,奖金率,并且工资较高的前10名
1
2
3
4
5
6
7
8SELECT
last_name, salary, commission_pct
FROM
employees
WHERE
commission_pct IS NOT NULL
ORDER BY salary DESC
LIMIT 10;
union联合查询
概念
union 联合 合并:将多条查询的结果合并成一个结果
语法
1 | 查询语句1 |
应用场景
要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致
特点
- 要求多条查询语句的查询列数是一致的
- 要求多条查询语句的查询的每一列的类型和顺序最好是一致的
- union关键字默认去重,如果要使Union关键字不去重则需要使用关键字all
相关案例
案例:查询部门编号大于90,或者邮箱包含a的员工信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20## 普通的筛选
SELECT
*
FROM
employees
WHERE
employee_id > 90 OR email LIKE '%a%';
## 联合查询
SELECT
*
FROM
employees
WHERE
employee_id > 90
UNION SELECT
*
FROM
employees
WHERE
email LIKE '%a%';