SQL语句(六)分页查询和联合查询
一、分页查询
语法格式
SELECT 查询列表
FROM 表
WHERE ...
GROUP BY
HAVING ...
ORDER BY
LIMIT 偏移, 记录数; <--
特点:
limit语句
放在查询语句的最后
- 公式
select 查询列表
from 表
limit (page-1)*size, size;
应用
取前面5
条记录:
SELECT * FROM employees LIMIT 0,5;
SELECT * FROM employees LIMIT 5;
第11
条到第25
条:
SELECT * FROM employees LIMIT 10, 15
有奖金的员工信息,而且将工资较高的前10名
显示出来:
SELECT *
FROM employees
WHERE commission_pct IS NOT NULL
ORDER BY salary DESC
LIMIT 10;
二、联合查询
语法和作用
作用:将多条查询语句的结果
合并成一个结果
语法:
查询语句1
UNION
查询语句2
应用场景:要查询的信息来自多个表
特点
1.要求多条查询语句中的列数是一致的
2.多条查询语句的查询的每一列的类型和顺序
最好一致
3.使用union是默认去重
的
应用
查询部门编号>90
或邮箱包含a
的员工信息
原来的操作【使用OR逻辑运算】
SELECT *
FROM employees
WHERE department_id>90 OR email LIKE '%a%';
【使用UNION联合查询】
SELECT * FROM employees WHERE email LIKE '%a%'
UNION
SELECT * FROM employees WHERE department_id>90;
查询中国以及外国男性用户
的信息
此时不同的信息被存储到了不同的表中,使用UNION来合并两次查询的结果
SELECT id, cname, csex FROM t_ca WHERE csex='男'
UNION
SELECT t_id, tName, tGender FROM t_ua WHERE tGender='male';
UNION和UNION ALL的区别
使用UNION
时结果会默认去重,而UNION ALL
不会:
#UNION 会去重
SELECT id, cname FROM t_ca WHERE csex='男'
UNION
SELECT t_id, tName FROM t_ua WHERE tGender='male';
# UNION ALL不会去重
SELECT id, cname FROM t_ca WHERE csex='男'
UNION ALL
SELECT t_id, tName FROM t_ua WHERE tGender='male';