永发信息网

sql中in和exist语句的区别?

答案:3  悬赏:70  手机版
解决时间 2021-04-30 02:30
sql中in和exist语句的区别?
最佳答案
in和exists
in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。

如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:
例如:表A(小表),表B(大表)1:select * from A where cc in (select cc from B)
效率低,用到了A表上cc列的索引;select * from A where exists(select cc from B where cc=A.cc)
效率高,用到了B表上cc列的索引。
相反的2:select * from B where cc in (select cc from A)
效率高,用到了B表上cc列的索引;select * from B where exists(select cc from A where cc=B.cc)
效率低,用到了A表上cc列的索引。
not in 和not exists如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;而not extsts 的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快。

in 与 =的区别
select name from student where name in ('zhang','wang','li','zhao');与
select name from student where name='zhang' or name='li' or
name='wang' or name='zhao'
的结果是相同的。
全部回答
http://blog.csdn.net/lick4050312/archive/2009/08/23/4476333.aspx
这个写的不错
完全可以.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
太行山在哪
结婚好吗?
自考什么专业好?
约会专家经典台词,约会专家丁羽说备胎那段话
燕喜堂医药连锁靖海店地址在哪,我要去那里办
只有5000元,炒股能赚到钱吗??
潘玮柏 双人舞歌词?
QQ怎么发图片比如那个时间一样的东西
舍与得和智慧的句子,舍与得的名言警句
万福广场在那里?
中山旅行社(中山南路)地址在什么地方,想过去
口袋精灵2 小青龙琅琅和什么和可以出青龙琅琅
在女友不里我的情况下我要怎么办
台试电脑有一千的吗
七夕情人节送什么礼物好呢
推荐资讯
dnf装备+10想加到13怎么+
怎么把这个去掉!
宁强县2010年小学毕业考试成绩在网上怎么查?
格言箴言的英文怎么写,英语句子成分用英文怎
绝世好剑不是剑吗,怎么把血饮狂刀是给砍断的
S40的机器可以安装搜狗输入法吗?
跪求刀锋战士3的所有插曲
分光箱套什么定额,分光器安装套用什么定额、
长春通威饲料有限公司地址有知道的么?有点事
魔法卡片的婚礼需要几张卡
谁知道广西CF游戏什么幽灵战队厉害
I was kind of person and you!!!
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?