1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,十四,.,使用集合,运算符,目标,本次课的主要内容:,描述集合运算符,使用集合运算符将多个查询组合成一个查询,控制返回行的顺序,使用集合(,SET,)运算符,A,B,UNION,/,UNION ALL,A,B,A,B,INTERSECT,A,B,MINUS,在这一章中使用的表,在这一章中使用的表包括,:,EMPLOYEES,:,提供当前所有员工的细节,JOB_HISTORY,:,记录了如下的细节:某一员工在职位变换时,前一职位的开始日期、结束日期、职位的标识号、和部门,UNION,运算符,UNION,运
2、算符返回两个查询的结果,但是要去掉重复行,A,B,使用,UNION,运算符,显示所有员工当前和之前的职位细节,但是每个员工只显,示一次,SELECT,employee_id,job_id,FROM employees,UNION,SELECT,employee_id,job_id,FROM,job_history,;,UNION ALL,运算符,A,B,UNION ALL,运算符返回两个查询的结果,并且包括重复行,使用,UNION ALL,运算符,显示所有员工当和之前的职位和部门信息,SELECT,employee_id,job_id,department_id,FROM employees,
3、UNION ALL,SELECT,employee_id,job_id,department_id,FROM,job_history,ORDER BY,employee_id,;,INTERSECT,运算符,A,B,INTERSECT,返回两个查询的共有部分,使用,INTERSECT,运算符,按如下的原则显示员工的,ID,和职位的,ID,:该职位是他以前在公司担任过的,SELECT,employee_id,job_id,FROM employees,INTERSECT,SELECT,employee_id,job_id,FROM,job_history,;,MINUS,运算符,A,B,MINU
4、S,返回第一个查询有而第二个查询没有的数据,MINUS,运算符,SELECT,employee_id,job_id,FROM employees,MINUS,SELECT,employee_id,job_id,FROM,job_history,;,显示那些职位从来都没有发生过变化的员工的,ID,和职位的,ID,SET,运算符规则,每个查询列表中的表达式的个数和数据类型必须相匹配,可以使用括号来改变执行的顺序,ORDER BY,子句的使用,:,只可以在语句的最后出现,可以使用第一个查询语句的列名、别名、或位置(号),Oracle,服务器集合运算符,除了,UNION ALL,之外,所有重复行被自动
5、删除,第一个查询语句的列名出现在结果中,除了,UNION ALL,之外,输出结果默认按升序排序,查询语句的匹配,SELECT,department_id,TO_NUMBER(null),hire_date,FROM employees,UNION,SELECT,department_id,location_id,TO_DATE(null,),FROM departments;,使用,UNION,运算符显示所有员工的部门,ID,、位置、和雇用日期,查询语句的匹配,使用,UNION,运算符显示所有员工的雇员,ID,、职位,ID,、和工资,SELECT,employee_id,job_id,sala
6、ry,FROM employees,UNION,SELECT,employee_id,job_id,0,FROM,job_history,;,控制行的顺序,使用两个,UNION,运算符生成一个英语句子,COLUMN,a_dummy,NOPRINT,SELECT sing AS My dream,3,a_dummy,FROM dual,UNION,SELECT,Id,like to teach,1,FROM dual,UNION,SELECT the world to,2,FROM dual,ORDER BY 2;,总结,使用,UNION,返回所有不同行,使用,UNION,ALL,返回所有行,也包括重复行,使用,INTERSECT,返回两个查询所共享的所有行,使用,MINUS,返回第一个查询所选择的所有行,但是不包括第二个查询所选择的行,只在语句的最后使用,ORDER BY,子句,