网站大量收购独家精品文档,联系QQ:2885784924

第6章 高级查-子查询与集合操作.ppt

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 高级查-子查询与集合操作

使用UNION ALL操作符 UNION ALL操作符从两个查询中返回行,包括重复行 所有规则与UNION相同,除了 不会删除重复行 不会对结果进行排序 使用INTERSECT操作符 INTERSECT操作符将返回两个查询的共同行 不会忽略NULL值 示例:显示符合以下条件的雇员ID和职务ID,这些职员的当前职务和以前的职务相同,即:曾担任过别的职务,现在又重新担任了以前的职务。 使用MINUS操作符 MINUS操作符将返回由第一个查询选定的但没有出现在第二个查询结果集的所有不同行 示例:查询从未更换过职务的雇员的ID 集合运算中使用ORDER BY子句 ORDER BY子句只能在复合查询的末尾出现一次 ORDER BY子句仅识别第一个SELECT中的列 默认情况下,如果不使用ORDER BY,则使用第一个SELECT中的第一列按照升序进行排序 上机任务 第7章练习 第8章练习 * * 先执行子查询,再执行主查询。 * * 实际上,内部子查询只是为了返回一个表结果,因此,是否排序没有任何意义。 * 子查询使用准则: 将子查询扩在括号内 将子查询放置在比较条件的右侧(只是建议) 只有在执行排序Top-N时,子查询中才需要使用ORDER BY子句 单行运算符用于单行子查询,而多行运算符用于多行子查询 子查询类型 单行子查询返回单个值 多行子查询返回多个值 单行子查询 仅返回一行 使用单行比较运算符 运算符 含义 = 等于 大于 = 大于或等于 小于 = 小于或等于 不等于 示例:显示与雇员141号职务ID相同的雇员信息 示例:查询职务与Taylor相同,但薪资高于Taylor的雇员信息 内外查询中可以使用不同的表 示例:查询“IT”部门的员工信息 SELECT * FROM employees WHERE department_id = (select department_id from departments where department_name=‘IT’) 在子查询中使用组函数 示例:查询薪资等于最高(最低)工资的员工的姓名、工种和薪资 Having子句中使用子查询 示例:查询最低薪资高于部门50的最低薪资的所有部门及其平均薪资 Oracle Server会先执行子查询 再将结果返回给主查询的HAVING子句 示例:查询平均薪资小于所有员工平均薪资的职务ID及平均薪资 常见错误 子查询返回了多个结果 子查询没有返回任何结果 编写多行子查询 知识点概述 # 知识点 重点 难点 应用 说明 1 多行子查询概要 介绍多行子查询的操作符 2 使用IN操作符 √ √ 介绍IN操作符的作用及使用 4 使用ANY操作符 √ √ 介绍ANY操作符的作用及使用 5 使用ALL操作符 √ √ 介绍ALL操作符的作用及使用 6 7 8 9 多行子查询概要 返回多个行的子查询称为多行子查询 在多行子查询中使用的是多行运算符 运算符 含义 IN 等于列表中的任意一个 ANY 将值与子查询返回的任意一个值进行比较。如果子查询结果没有返回行,则结果为false。 ALL 将值与子查询返回的每个值进行比较。如果子查询结果没有返回任何行,则结果为true 使用IN操作符 IN用来检查在一个值中是否包含指定的值 这个值列表可以是来自一个子查询返回的结果 示例: 查询每个部门薪资最低的雇员信息 使用ANY操作符 ANY用来将一个值与一个列表中的任何值进行比较 在ANY操作符前,必须使用一个=、、、、=或=操作符 示例: 查询不是IT_PROG且薪资低于任一IT_PROG的雇员信息。 上例等价于以下查询 说明 ANY:低于最高值 ANY:高于最低值 =ANY:等同于IN操作符 SELECT employee_id,last_name,job_id,salary FROM employees WHERE salary(SELECT max(salary) FROM employees WHERE job_id=‘IT_PROG’ ) 使用ALL操作符 ALL操作符用来将一个值与一个列表中的所有值进行比较 在ALL操作符前,必须使用一个=、、、、=或=操作符 示例; 查询不是IT_PROG且薪资高于任一IT_PROG的雇员信息 ALL:大于最高值 ALL:小于最低值 EXISTS运算符 在查询中使用EXISTS运算符,结果取决于某些行是否存在于表中。 如果EXISTS子查询中至少返回一样,则求值结果为true 一般来说,EXISTS子查询都和主查询进行条件关联 常见错误-2 子查询不能包含

文档评论(0)

5201314118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065201001000004

1亿VIP精品文档

相关文档