exists在sql中用法(详解sql中exists和in的语法与区别)
类别:数据库 浏览量:1792
时间:2021-10-15 00:18:32 exists在sql中用法
详解sql中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,效率高。
到此这篇关于sql中exists和in的语法与区别的文章就介绍到这了,更多相关sql中exists和in语法区别内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!
您可能感兴趣
- sqlserver电脑休眠时断开连接(浅谈sqlserver下float的不确定性)
- mysql关联查询详解(详解mysql 组合查询)
- SQL Server Management Studio(SSMS)复制数据库的方法(SQL Server Management StudioSSMS复制数据库的方法)
- mysql数据表实例教程(mysql数据库入门第一步之创建表)
- mysql怎么创建联合索引(mysql的联合索引复合索引的实现)
- MySQL中NULL和空值的区别
- python对mysql数据分析(python使用adbapi实现MySQL数据库的异步存储)
- mysql使用步骤(聊一聊MySQL角色Role功能)
- mysql根据子节点查询父节点(mysql 递归查找菜单节点的所有子节点的方法)
- mysql将字符串转换为日期的函数(Mysql中时间戳转为Date的方法示例)
- mysql发生系统错误(MySQL too many connections错误的原因及解决)
- sqlserver中复合索引(浅析SQL Server 聚焦索引对非聚集索引的影响)
- mysql数据库事务处理(MySQL数据库事务与锁深入分析)
- mysql高可用集群(MySQL之高可用集群部署及故障切换实现)
- mysql写入效率越来越差(MYSQL大量写入问题优化详解)
- sql server 获取时间(SQL SERVER中常用日期函数的具体使用)
- 王牌部队,你看的剧情我看的时尚(你看的剧情我看的时尚)
- 被鉴定的古董价值300万 当心,你可能遇到诈骗了(被鉴定的古董价值300万)
- 英语难学吗(初中英语难学吗)
- 如何追女孩子(如何追女孩子的技巧和方法)
- 是不是快乐全被你拿走了(而是你得到的)
- 世界上只有妈妈好(世界上只有妈妈好的歌词)
热门推荐
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9