- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用相关子查询 显示那些至少已经更换了两次工作的雇员 第三十页,共六十一页。 EXISTS运算符检测子查询的结果集中行的存在 如果一个子查询的行值被找到: — 内部查询中的搜索将不会继续 — 条件将会标记为TRUE 如果一个子查询的行值没有被找到: — 条件将会标记为FALSE — 内部查询中的搜索将会继续 使用EXISTS运算符 第三十一页,共六十一页。 使用EXISTS运算符 找到那些至少有一个人向他们报告的雇员 第三十二页,共六十一页。 使用NOT EXISTS运算符 找到没有任何职员的部门 第三十三页,共六十一页。 III、多表连接 第三十四页,共六十一页。 从多张表中获取数据 EMPLOYEES DEPARTMENTS 第三十五页,共六十一页。 笛卡尔连接 等值连接 非等值连接 外部连接 自连接 连接类型 第三十六页,共六十一页。 产生一个笛卡连接 EMPLOYEES (20行) DEPARTMENTS (8行) 笛卡尔积: 20x8=160行 第三十七页,共六十一页。 笛卡尔积在下列情况下产生: — 忽略了一个连接条件 — 一个连接条件失效 — 第一张表的所有行和第二张表的所有行连接 为了避免笛卡尔积的产生,通常包含一个有效连接条件的WHERE子句。 笛卡尔积 第三十八页,共六十一页。 使用Oracle语法连接表 使用一个连接去查询多张表的数据 在WHERE子句中设定连接条件 当多张表的列重名时,以表名作为列名的前缀。 第三十九页,共六十一页。 等值连接 外键 主键 EMPLOYEES DEPARTMENTS 第四十页,共六十一页。 使用等值连接检索记录 第四十一页,共六十一页。 用表前缀在多张表中限定列名 用表前缀提高系统性能 用列别名区分不同表中同名的列 限定使用二义性列名 第四十二页,共六十一页。 使用表别名 用表别名简化查询 用表名前缀提高性能 第四十三页,共六十一页。 两张表以上的连接 EMPLOYEES DEPARTMENTS LOCATIONS 连接n张表至少需要n-1个连接条件。例如:连接3张表至少 要2个连接条件 第四十四页,共六十一页。 Java程序员Oracle就业课程 Lesson 6 高级查询 主讲:杨昊 Q:952063095 第一页,共六十一页。 掌握集合运算 掌握子查询 掌握子查询所能够解决的各类问题 掌握多表连接查询 使用自连接让一个表连接它本身 掌握子查询解决程序中的各种业务逻辑 目 标 第二页,共六十一页。 I、集合运算 第三页,共六十一页。 集合运算符 A B A A A B B B UNION/UNION ALL INTERSECT MINUS 第四页,共六十一页。 EMPLOYEES:提供关于当前所有雇员的详细信息 JOB_HISTORY: 当一个雇员转换工作的时候,记录前面工作开始和结束的日期,以及工作的标识号和部门 本课中使用的表 本课中使用的表: 第五页,共六十一页。 UNION运算符 UNION运算符从两个查询中返回消除重复之后的结果 A B 第六页,共六十一页。 UNION运算符的使用 显示当前和先前的所有雇员的的工作细节。每个雇员 只显示一次 第七页,共六十一页。 UNION ALL运算符 A B UNION ALL返回两个查询的结果,其中包括重复的 第八页,共六十一页。 UNION ALL运算符的使用 显示当前和先前的所有雇员的部门 第九页,共六十一页。 INTERSECT运算符 A B 第十页,共六十一页。 INTERSECT运算符的使用 显示在开始公司的任期之前,拥有工作资格的雇员的IDs 和工作IDs 第十一页,共六十一页。 MINUS运算符 A B 第十二页,共六十一页。 MINUS运算符 显示那些一次都没有转换工作的雇员IDs 第十三页,共六十一页。 II、子查询 第十四页,共六十一页。 使用子查询解决问题 谁的工资比Abel高? 主查询 哪个雇员的工资比Abel高? Abel的工资是多少? 子查询 ? 第十五页,共六十一页。 子查询的语法 子查询(内部查询)在主查询之前执行一次 子查询的结果被用于主查询(外部查询) 第十六页,共六十一页。 使用子查询 第十七页,共六十一页。 单行子查询 只返回一行结果 使用单行比较运算符 第十八页,共六十一页。 执行单行子查询 第十九页,共六十一页。 在子查询中使用组函数 第二十页,共六十一页。 在子查询中使用HAVING子句 Oracle首先执行子查询 Oracle返回结果到主查询的HAVING子句 第二十一页,共六十一页。 这个语句的错误是什么? 第二十二页,共六十一页。 这个语句将返回行吗? 第二十三页,共六十一页。
文档评论(0)