uniton
可以将查询结果集相加
SQL语句1
union
SQL语句2;
使用union时,SQL1和SQL2中列(字段)必须一样
案例1
// 找出工作岗位是salesman和manager的员工
mysql> select ename from emp where job='salesman' or job='manager';
mysql> select ename from emp where job in('salesman','manager');
// 找出工作岗位是salesman和manager的员工
mysql> select ename from emp where job='salesman'
-> union
-> select ename from emp where job='manager';
+--------+
| ename |
+--------+
| ALLEN |
| WARD |
| MARTIN |
| TURNER |
| JONES |
| BLAKE |
| CLARK |
+--------+
7 rows in set (0.00 sec)
limit
完成分页查询
分页查询就靠它了
limit是mysql中特有的,不通用
Oracle中有一个相同的机制,叫rownum
语法机制:
limit startIndex,length
startIndex 表示起始位置
length 表示取几个
下标从0开始
limit 是SQL最后执行的一个环节
执性顺序:
select 5
...
from 1
...
where 2
...
group by 3
...
having 4
...
order by 6
...
limit 7
...
案例1
// 取出工资前五名的员工
// 降序排
select ename,sal from emp order by sal desc;
// 取前五个
// 0可以不写,默认从0开始-
select ename,sal from emp order by sal desc limit 0,5;
select ename,sal from emp order by sal desc limit 5,;
案例2
// 找出工资排名在第4到第9名的员工
select
ename,sal
from
emp
order by
sal desc
limit 3,6;
mysql> select ename,sal from emp order by sal desc limit 4,6;
+--------+---------+
| ename | sal |
+--------+---------+
| BLAKE | 2850.00 |
| CLARK | 2450.00 |
| ALLEN | 1600.00 |
| TURNER | 1500.00 |
| MILLER | 1300.00 |
| WARD | 1250.00 |
+--------+---------+
6 rows in set (0.00 sec)