集合运算
2.8.SQL语句-----》集合运算
对于查询的结果也可以进行集合的运算,但是要进行集合运算则要求查询返回的结构一定要相同。----查询的内容也要是相同的结构
集合运算:将SQL查询的语句的结果进行整合
2.8.1集合运算语法
在SQL之中集合的运算可以采用如下的形式语法完成:(严格上讲,集合运算没有语法)
SELECT [DISTINCT] * | 列名1【别名1】,列名2 【别名2】。。。。| 计算过程 统计函数
FROM 数据表1 【别名1】
【WHERE 限定条件1,限定条件2。。。。;】
【ORDER BY 排序字段1 【ASC|DESC】, 排序字段2【ASC|DESC】……】;
【UNION | UNION ALL | MINUS | INTERSECT】
SELECT [DISTINCT] * | 列名1【别名1】,列名2 【别名2】。。。。| 计算过程 | 统计函数
FROM 数据表1 【别名1】
【WHERE 限定条件1,限定条件2。。。。;】
【ORDER BY 排序字段1 【ASC|DESC】, 排序字段2【ASC|DESC】……】;
1.UNION运算
Union 运算:将集合结果整合在一起使用,但是相同的部分不重复显示,会去除重复的内容
SQL> SELECT ename,job
2 FROM emp
3 where deptno=10
-----》查询部门编号为10 的员工的姓名和工作
4 UNION
5 SELECT ename,job
6 FROM emp;
-----》查询所有员工的姓名和工作
2.UNION ALL运算
UNION ALL 运算,将集合结果保存在一起显示,重复的部分也显示,不会去重。
SELECT ename,job
FROM emp
where deptno=10
UNION ALL
SELECT ename,job
FROM emp;
3.MINUS运算
Minus 用来整合查询结果,求差集。注意一定是大集合减去小集合,若小集合减去大集合,则结果为空
SELECT ename,job
FROM emp
MINUS
SELECT ename,job
FROM emp
WHERE deptno=10;
4.INTERSECT运算
Intersect 运算:交集运算-----》这个没有大集合小集合的区别
结果仅会将集合中相同的元素查询出来
SELECT ename,job
FROM emp
WHERE deptno=10
INTERSECT
SELECT ename,job
FROM emp;
这些运算符都是以查询结果为目标进行处理的,也就是说可以执行多个不同的查询,然后用以上的连接符将这些结果的内容放到一起进行显示。