分页查询
简介
应用场景:当要显示的数据 一页显示不全 需要分页提交sql请求
语法:
SELECT COLUMN... ⑦
FROM table1 ①
[INNER |LEFT |RIGHT] JOIN table2 ② 笛卡尔乘积
ON 连接条件 ③ 过滤笛卡尔乘积
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 (OFFSET)
1 0
2 10
3 20
# 案例1: 查询前五条员工信息
SELECT * FROM employees LIMIT 0,5;
SELECT * FROM employees LIMIT 5;
#查询第11条数据
SELECT * FROM employees LIMIT 10,15
# 有奖金的员工信息 并且工资较高的前10名显示出来
SELECT
*
FROM
employees
WHERE
commission_pct IS NOT NULL
ORDER BY
salary DESC
LIMIT 10;
联合查询
特点:
UNION联合 合并:将多条查询语句的结果合并成一个结果
语法:
查询语句1
UNION
查询语句2
UNION
查询语句3
.....
应用场景:
要查询的结果来自于多个表 且多表没有直接的连接关系 但查询的信息一致
特点:
1、要求多条查询语句的查询列数是一致的
2、要求多条查询语句的查询的类型和顺序要一致
3、UNION 关键字默认去重 如果使用UNION ALL 可以包含重复项
#案例:查询部门编号>90 或邮箱包含a的员工信息
#普通写法
SELECT * FROM employees WHERE department_id >90 or email LIKE '%a%'
#联合查询的写法
SELECT
*
FROM
employees
WHERE
department_id > 90 UNION
SELECT
*
FROM
employees
WHERE
email LIKE '%a%'
# 查询中国男性的信息 和外国男性的信息
SELECT * FROM t_ca WHERE csex ='男'
UNION
SELECT * FROM t_ua WHERE tGender ='male'