转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/9865711

正确答案是:AC

EXISTS谓词非常简单,它是对一个非空集的测试。如果在其子查询中存在任何行,则返回TRUE,否则为FALSE。该谓词不会返回UNKNOWN结果。EXIST()谓词语法如下: <EXISTS谓词>::=[NOTEXISTS]<表子查询>

对exists的测试,看执行计划:

gyj@MYDB> create table t3(id number,name varchar2(100));  Table created.  gyj@MYDB> insert into t3  select level,'a'||level from dual connect by level<1000000;  999999 rows created.  gyj@MYDB> create index idx_t3 on t3(id);  Index created.  gyj@MYDB> create table t4(id number,name varchar2(100));  Table created.  gyj@MYDB> insert into t4  select level,'a'||level from dual connect by level<10;  9 rows created.  gyj@MYDB> commit;  Commit complete.  gyj@MYDB> exec dbms_stats.gather_table_stats(user,'t3',cascade => true);  PL/SQL procedure successfully completed.  gyj@MYDB> exec dbms_stats.gather_table_stats(user,'t4');  PL/SQL procedure successfully completed. 

看完计行计划就明白了EXISTS的执行步骤:

gyj@MYDB> set autot traceonly; gyj@MYDB> select * from t4 where id in (select id from t3);  9 rows selected.   Execution Plan ---------------------------------------------------------- Plan hash value: 1092212754  ----------------------------------------------------------------------------- | Id  | Operation          | Name   | Rows  | Bytes | Cost (%CPU)| Time     | ----------------------------------------------------------------------------- |   0 | SELECT STATEMENT   |        |     9 |    99 |    21   (0)| 00:00:01 | |   1 |  NESTED LOOPS SEMI |        |     9 |    99 |    21   (0)| 00:00:01 | |   2 |   TABLE ACCESS FULL| T4     |     9 |    54 |     3   (0)| 00:00:01 | |*  3 |   INDEX RANGE SCAN | IDX_T3 |   999K|  4882K|     2   (0)| 00:00:01 | -----------------------------------------------------------------------------  Predicate Information (identified by operation id): ---------------------------------------------------     3 - access("ID"="ID")   Statistics ----------------------------------------------------------           1  recursive calls           0  db block gets          20  consistent gets           0  physical reads           0  redo size         723  bytes sent via SQL*Net to client         520  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           0  sorts (memory)           0  sorts (disk)           9  rows processed 

EXISTS半连接的伪代码

 open tab1   while tab1 still has records      fetch  record from tab1      result = false      open tab2      while tab2 still has records          fetch record from tab2          if(tab1.record matches tab2.record) then             result = true             exit loop           end if      end loop      close tab2      if (result = true) return tab1 record   end loop   close tab1 

QQ:252803295

学习交流QQ群:
DSI&Core Search  Ⅰ 群:127149411(技术:已满)
DSI&Core Search  Ⅱ 群:177089463(技术:未满)
DSI&Core Search  Ⅲ 群:284596437(技术:未满)
DSI&Core Search  Ⅳ 群:192136702(技术:未满)
DSI&Core Search  Ⅴ 群:285030382(闲聊:未满)


MAIL:oracledba_cn@hotmail.com

BLOG: http://blog.csdn.net/guoyjoe

WEIBO:http://weibo.com/guoyJoe0218

ITPUB: http://www.itpub.net/space-uid-28460966.html

OCM:   http://education.oracle.com/education/otn/YGuo.HTM

转载于:https://blog.51cto.com/guoyjoe/1428886

[每日一题] OCP1z0-047 :2013-08-08   相关子查询中EXISTS的使用.....................................28...相关推荐

  1. Leetcode每日一题:24.swap-nodes-in-pairs(两两交换链表中的节点)

    思路:递归或者迭代,每次使用三个节点,pre.now.next即可实现交换,主要对链表头两个节点的交换有特殊性(不能用pre): 奇怪的是递归和迭代所占空间竟然差不多: struct ListNode ...

  2. Leetcode每日一题:剑指 Offer 04.(二维数组中的查找)

    思路:有序+查找元素,第一想到的就是二分法,所以我对每行采用二分法,每行的复杂度为O(m),那么总的复杂度就是O(nlogm):看题解从右上角开始,这个数比目标值大,就往左移一列,比目标值小,就往下移 ...

  3. leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树

    leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...

  4. 2013.08.08——— android 中文简繁体转换

    2013.08.08--- android 中文简繁体转换 参考:[url]http://www.pupuliao.info/2012/09/java%E7%9A%84utf-8-%E7%B9%81% ...

  5. (每日一题)P4841 [集训队作业2013]城市规划 (无向连通图计数)(普通生成函数 + 多项式求逆)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每日一题(莫反 / 多项式 / 母函数 / 群论) 2021.4.14 生成函数 + 多项式求逆 Pr ...

  6. android 部分文字加粗,2013.04.08——— android 关于部分文字加粗的有关问题

    2013.04.08--- android 关于部分文字加粗的问题 2013.04.08--- android  关于部分文字加粗的问题 参考:http://blog.csdn.net/garretl ...

  7. 面试—每日一题(8)

    好长时间没有更新博客了,特别是这个专栏,一是因为自己比较忙,二是因为我还是比较懒的缘故.让各位见笑了.今天在更新一篇. 像什么strcpy.strcat等等字符串的操作和实现在面试中经常出现,不管是上 ...

  8. 老男孩每日一题(一)

    老男孩IT教育-每日一题汇总 第几天 第几周 日期 快速访问链接 第123天 第二十五周 2017年8月25日 出现Swap file-.already exists以下错误如何解决? 第122天 2 ...

  9. 运维面试题(每日一题)

    每日一题 第一周 1.添加路由 2.如何防止Linux命令行或脚本里MySQL登录密码泄露? 3.将前端运行的服务或脚本,如何可以放置到后端进行执行 4.linux网络配置中如何给一块网卡添加多个IP ...

最新文章

  1. 千人千面,撩拨你的个性化广告
  2. mysql olap 工具_OLAP分析工具之Presto
  3. PHP5.5安装GeoIP扩展
  4. 平面设计要掌握的实用技巧
  5. Linux vms windows,Windows、Windows NT、DOS、VMS、Linux都是微机上用的操作系统。
  6. 2019年ICPC银川区域赛 Easy Problem(简单莫比乌斯函数 + 欧拉降幂)
  7. Akka Notes –演员记录和测试
  8. esxi 修改服务器配置失败,R720服务器安装 ESXI 5.5update1后出现XXX错误
  9. arraylist线程安全吗_Java中的集合和线程安全
  10. eclipse——JUnit单元测试的使用
  11. 使用Json封装scroll,已处理其兼容性问题
  12. 【关键字】volatile
  13. 如何查看页面是否开启gzip压缩
  14. 数据分析 时间序列分析 ARMA模型
  15. 分享文章到新浪微博(源码)
  16. 玩转MAC OS!实测DIY兼容机装苹果系统
  17. 图像处理:图像特效之油画效果
  18. 计算机科学与技术职业生涯规划,计算机科学与技术职业生涯规划ppt
  19. 我希望有个如你一般的人-张嘉佳
  20. 商务英文信函写法大全篇

热门文章

  1. mycat集群执行带有join的sql语句时报错_can‘t find table define in schema_分片join---Linux运维工作笔记052
  2. AndroidStudio_android中实现图片动态设置图片的位置以及图片动态缩放---Android原生开发工作笔记234
  3. C++_引用_引用的基本语法_注意事项_引用做函数参数---C++语言工作笔记031
  4. Linux多线程工作笔记0005---Linux多线程基础_创建线程pthread_create_线程等待_线程终止
  5. linux ftp使用相关
  6. linux mysql --help_深入理解mysql帮助命令(help)
  7. linux mysql 主从数据库_Linux下安装MySQL及MySQL主从同步配置
  8. 样条曲面_SolidWorks肥皂块曲面建模,你的肥皂掉了
  9. curl查看swift状态命令_微服务之——docker高级命令
  10. centos so查看_照片信息查看器app安卓下载-照片信息查看器app下载v1.1.0 安卓版