ORACLE SQL SET 运算符

运算符指的是将多个查询用 SET 操作符连接组成一个新的查询。

1.UNION/UNION ALL

2.INTERSECT

3.MINUS

下面看下操作符的作用:

UNION 操作符

ORACLE SQL SET 运算符

这个的意思就是:UNION 操作符返回两个查询的结果集的并集。也就是说把两边的所有数据合并起来,把重复的内容去掉。

 代码举例:

SELECT employee_id, job_id

FROM   employees

UNION

SELECT employee_id, job_id

FROM   job_history;

部分效果演示:

ORACLE SQL SET 运算符

UNION ALL 操作符

ORACLE SQL SET 运算符

这个的意思就是:UNION ALL 操作符返回两个查询的结果集的并集。对于两个结果集的重复部分,不去重。

代码举例:

SELECT employee_id, job_id, department_id

FROM   employees

UNION ALL

SELECT employee_id, job_id, department_id

FROM   job_history

ORDER BY  employee_id;

部分效果演示:

ORACLE SQL SET 运算符

INTERSECT 操作符

ORACLE SQL SET 运算符

这个的意思就是:

INTERSECT 操作符返回两个结果集的交集,也就是说把两边的数据合并起来然后显示相同的部分。

代码示例:

SELECT employee_id, job_id

FROM   employees

INTERSECT

SELECT employee_id, job_id

FROM   job_history;

效果图:

ORACLE SQL SET 运算符

MINUS 操作符

ORACLE SQL SET 运算符

这个的意思就是:

MINUS操作符:返回两个结果集的差集,也就是说它运用在两个SQL语句上,第一条SQL语句所产生的结果,再看这些结果有没有在第二个SQL语句的结果中。有的话,那么这些数据就会被去除掉,而不会在最后的结果中出现。如果第二个SQL语句中的结果并没有存在于第一个SQL语句所产生的结果内,那么这些数据就会不显示。

 代码示例:

SELECT employee_id,job_id

FROM   employees

MINUS

SELECT employee_id,job_id

FROM   job_history;

部分效果图:

ORACLE SQL SET 运算符

注意事项:

在SELECT 列表中的列名和表达式在数量和数据类型上要相对应

括号可以改变执行的顺序

ORDER BY 子句:

只能在语句的最后出现

可以使用第一个查询中的列名, 别名或相对位置