目录
1. union合并查询结果集
查询工作岗位是 MANAGER 和 SALESMAN 的员工?
mysql> select ename, job from emp where job = 'MANAGER' or job = 'SALESMAN';
mysql> select ename, job from emp where job in('MANAGER', 'SALESMAN');
mysql> select ename, job from emp where job = 'MANAGER' union select ename, job from emp where job = 'SALESMAN';
union 的效率要高一些。
对于表的连接,每一次连接新表,则匹配的次数满足笛卡尔积,成倍的翻…
但是 union 可以减少匹配的次数。在减少匹配次数的情况下,还可以完成两个结果集的拼接。
a 连接 b 一个结果:10 * 10 --> 100
a 连接 c 一个结果:10 * 10 --> 100
使用 union 的话:100 + 100 --> 200
注意事项:
- 使用 union 进行结果集合并,要求两个结果集的列数相同。
- 两个结果的列的数据类型也要一致(mysql不要求一致)
2. limit分页查询
limit 作用:将查询结果集的一部分取出来。通常使用在分页查询当中。
按照薪资降序,取出排名在前5名的员工?
mysql> select ename, sal from emp order by sal desc limit 5;
mysql> select ename, sal from emp order by sal desc limit 2, 3;
2:从第三个开始(下标从0开始)
3:三个数据
注意:mysql 中 limit 在 order by 之后执行!!!