sql中exists和in区别是什么?怎么运用?
发布时间:2023-04-08 14:23:52 所属栏目:MsSql教程 来源:
导读:sql中exists和in的区别区别是什么?有些新手对于exists和in的区别并不是很清楚,其实exists和in的区别是很小的,但是两者还是存在一些不同,下面我们一起来了解一下。
exists和in的区别很小,几乎可以等价
exists和in的区别很小,几乎可以等价
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) ); insert into teacher values(1,'tz',1); insert into teacher values(2,'tw',2); insert into teacher values(3,'tl',3); 例如: select tname from teacher exists(select * from teacher); 此sql语句等价于select tname from teacher(主查询数据存在于子查询,则查询成功(校验成功)) 此sql返回为空,因为子查询并不存在这样的数据。 in语法: select … from table where 字段 in (子查询) select ..from table where tid in (1,3,5) ; select * from A where id in (select id from B); 区别: 如果主查询的数据集大,则使用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,效率高。 (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐