加入收藏 | 设为首页 | 会员中心 | 我要投稿 南通站长网 (https://www.0513zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 系统 > 正文

sql中exists和in差异是什么?怎么使用?

发布时间:2022-04-22 10:29:56 所属栏目:系统 来源:互联网
导读:sql中exists和in的区别区别是什么?有些新手对于exists和in的区别并不是很清楚,其实exists和in的区别是很小的,但是两者还是存在一些不同,下面我们一起来了解一下。 exists和in的区别很小,几乎可以等价,但是sql优化中往往会注重效率问题,今天咱们就来说
       sql中exists和in的区别区别是什么?有些新手对于exists和in的区别并不是很清楚,其实exists和in的区别是很小的,但是两者还是存在一些不同,下面我们一起来了解一下。
 
       exists和in的区别很小,几乎可以等价,但是sql优化中往往会注重效率问题,今天咱们就来说说exists和in的区别。
       exists语法:
       select … from table where exists (子查询)
       将主查询的结果,放到子查询结果中进行校验,如子查询有数据,则校验成功,那么符合校验,保留数据。
 
create table teacher
(
tid int(3),
tname varchar(20),
tcid int(3)
 
       区别:
       如果主查询的数据集大,则使用in;
       如果子查询的数据集大,则使用exists;
       例如:
 
select tname from teacher where exists (select * from teacher);
       这里很明显,子查询查询所有,数据集大,使用exists,效率高。
 
select * from teacher where tname in (select tname from teacher where tid = 3);
       这里很明显,主查询数据集大,使用in,效率高。
 
       现在大家对于sql中exists和in区别应该都清楚了吧,从上述示例可见exists和in各有其优点,对于选择哪个要看查询的使用。最后,希望文本对大家学习有帮助。

(编辑:南通站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读