问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

oracle 单表查询in和exist哪个效率更快

发布网友 发布时间:2022-04-07 16:32

我来回答

2个回答

懂视网 时间:2022-04-07 20:53

    T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。

2) select * from T1 where T1.a in (select T2.a from T2) ;

     T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。

exists 用法:

请注意 1)句中的有颜色字体的部分 ,理解其含义;

其中 “select 1 from T2 where T1.a=T2.a” 相当于一个关联表查询,相当于

“select 1 from T1,T2     where T1.a=T2.a”

但是,如果你当当执行 1) 句括号里的语句,是会报语法错误的,这也是使用exists需要注意的地方。

“exists(xxx)”就表示括号里的语句能不能查出记录,它要查的记录是否存在。

因此“select 1”这里的 “1”其实是无关紧要的,换成“*”也没问题,它只在乎括号里的数据能不能查找出来,是否存在这样的记录,如果存在,这 1) 句的where 条件成立。

 

in 的用法:

继续引用上面的例子

“2) select * from T1 where T1.a in (select T2.a from T2) ”

这里的“in”后面括号里的语句搜索出来的字段的内容一定要相对应,一般来说,T1和T2这两个表的a字段表达的意义应该是一样的,否则这样查没什么意义。

打个比方:T1,T2表都有一个字段,表示工单号,但是T1表示工单号的字段名叫“ticketid”,T2则为“id”,但是其表达的意义是一样的,而且数据格式也是一样的。这时,用 2)的写法就可以这样:

“select * from T1 where T1.ticketid in (select T2.id from T2) ”

Select name from employee where name not in (select name from student);

Select name from employee where not exists (select name from student);

第一句SQL语句的执行效率不如第二句。

通过使用EXISTS,Oracle会首先检查主查询,然后运行子查询直到它找到第一个匹配项,这就节省了时间。Oracle在执行IN子查询时,首先执行子查询,并将获得的结果列表存放在一个加了索引的临时表中。在执行子查询之前,系统先将主查询挂起,待子查询执行完毕,存放在临时表中以后再执行主查询。这也就是使用EXISTS比使用IN通常查询速度快的原因

Oracle中的exist和in

标签:

热心网友 时间:2022-04-07 18:01

数据的快慢和数据量以及索引的建立有关
in查询是全表扫描
exists为存在检测,无论多少查到一条即处理语句
你提到的1..100用oracle的exists不好写查询语句
UPDATE stuMarks1
SET writtenExam=writtenExam+2
where exists (select stuno from stuMarks1 where writtenExam>80);追问那只能用IN吗 ?还有别的查询方法效率更高的吗?
我只是举例NO= (1,2,3....100)的查询,其实实际不止100条

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
貔貅请多少只 生活的滋味 写写你的生活实际 这个短文收到什么启发 阳光城并州府施工进度 狙击手幽灵战士契约2伪装所在地点位置分享介绍_狙击手幽灵战士契约2伪 ... 狙击手幽灵战士契约2弹药怎么搜集_狙击手幽灵战士契约2弹药怎么获得 《狙击手幽灵战士2》攻略图文详解(精准射击) 生产经营能力主要形式 每到节假日新华书店坐满了看书的人把坐满了看书的人写具体 三星4300提示墨粉用尽 我手指上扎了冬瓜刺 谁能告诉我该怎么办啊? 我在火车上认识一个大学妹子我该如何找到她? 在马路上行走偶遇一年轻美女,我好像是一见钟情了!但是当时没搭讪,我该怎么找到她? 怎样才能找到同好的妹子啊 在深圳,如何结识广东妹子? 怎么样能在长沙快速泡到妹子 怎么追女孩子啊?? 男人的圈子太小,那么该如何认识到新的女生呢? 怎么才能找到妹子 求教在人生地不熟的地方怎么认识妹子,周围的环境也是接触不到异性,怕是要一直单身,好慌 怎么追一个不认识的妹子,以前好像经朋友微信加上的!后面一直没咋聊天!是本地的 工作的人怎样才能认识和泡到在本地上大学的妹子?有什么途径? 制作擀面皮 快速找当地女友方式 请问陕西宝鸡的擀面皮原料(调料)配方 求教陕西米皮,梗皮,擀面皮的做法? 陕西擀面皮怎么做才好吃 陕西擀面皮的制作 白癜风怎么能治好呢?是不是再也治不好了? 复方白芷酊和外搽白灵酊哪个好 刺扎进手里了比较深怎么办 手指被小刺刺扎进去了怎么办 手扎了刺,很深,进到肉里面了,怎么办 我的粉色衣服洗衣液洗后局部表白怎么办 冬瓜上怎么还有刺呢?还是毛? 洗衣液弄到衣服上变白了怎么办? 手上被木刺扎了,取不出来而且被我弄进肉里面了,怎么办?但是又不太痛 粉色棉性衣服部分有污渍,用洗衣液洗后变白怎么办? dha藻油需要放冰箱冷藏吗 金奇维藻油DHA软胶囊一定要放在冰箱里吗? 用的是蓝月亮深层洁净护理洗衣液,把粉色和白色衣服都漂白了好大一块,该怎么办呢 惠氏dha藻油可以放冰箱冷藏吗 狗狗发烧有什么症状? 洗衣液直接倒在衣服上成了一团白色,怎么去除 人体发烧的目的是为什么? 王者荣耀和火影忍者是用一个QQ号,但是只想卖王者咋办? 粉色裤子我们洗衣液泡了有些地方变白色了怎么办? 支付宝里绍兴电子公交卡柯桥能刷吗? 老祖宗说发烧要闷一下更好,现在这个说法还科学吗? 剪映怎么做出敲键盘字幕
  • 焦点

最新推荐

猜你喜欢

热门推荐