当前位置:首页 > 技术 >

sql语句中的exists用法(sql中exists与in区别)

来源:原点资讯(www.yd166.com)时间:2023-11-02 07:10:48作者:YD166手机阅读>>

1、简介

• 不相关子查询:子查询的查询条件不依赖于父查询的称为不相关子查询

• 相关子查询:子查询的查询条件依赖于外层父查询的某个属性值的称为相关子查询。带Exists的子查询就是相关子查询

• Exists表示存在量词:带有Exists的子查询不返回任何记录的数据,只返回逻辑值“True”或“False”

★相关子查询执行过程:先在外层查询中取“学生表”的第一行记录,利用该记录的相关属性值(在exists子查询的where

子句中用到的列)处理内层查询,若外层的where子句返回“true”,则本条记录放入结果表中。然后再取下一行记录,

重复上述过程直到外层表遍历完毕。


2、exists和not exists

Exists语句不关心子查询返回的具体内容,因此用“exists(select 1 from)”来判断子查询是否返回记录。

• Exists(select):若子查询的结果集非空时,exists()表达式返回true;子查询的结果集为空时,exists()表达式返回false。

• Not Exists(select):若子查询的结果集非空时,not exists()表达式返回false;子查询的结果集为空时,not exists()表达式返回true。


3、案例

a表(主表)

---------------

id name

1 刘王

2 李涛

3 渝佳

4 赵敏

---------------

b表(从表)

---------------

id_b gender

1 女

2 男

3 女

4 女

---------------

测试:获取性别为女的姓名

①exists语句:

select * from a where exists(select 1 from b where a.id=b.id_b and gender='女');

②not existe语句:

select * from a where not exists(select 1 from b where a.id=b.id_b and gender<>'女');

③in语句:

select * from a where id in (select id_b from b where gender='女');

④not in语句:

select * from a where id not in(select id_b from b where gender<>'女');

以上查询结果均为:

---------------

id name

1 刘王

3 渝佳

4 赵敏

栏目热文

数据库exists用法(数据库in和exists的效率如何)

数据库exists用法(数据库in和exists的效率如何)

一、用法1. 与IN结合使用子查询与IN结合使用时,通常通过子查询查询出某个表单列的值,然后作为外层的SELECT的IN...

2023-11-02 06:50:18查看全文 >>

评分最高的十部商战剧(最经典的商战剧是哪十部)

评分最高的十部商战剧(最经典的商战剧是哪十部)

《伟大的时代》:商战与疯狂,胜者为王。《大时代》是一部经典的电视剧,剧中丁蟹的形象塑造得十分立体,引人入胜。尤其是在法庭...

2023-11-02 06:50:08查看全文 >>

矩阵国际在哪个区(矩阵国际属于哪个区)

矩阵国际在哪个区(矩阵国际属于哪个区)

25日下午,2023“一带一路”媒体合作论坛联合采访团成员在湖南长沙黄花国际机场T3航站楼项目新型智慧安全体验中心,通过...

2023-11-02 07:03:29查看全文 >>

商业电视剧排行榜前十名(必看的十大商业电视剧排行榜)

商业电视剧排行榜前十名(必看的十大商业电视剧排行榜)

1、《大时代》丁蟹太特别了,极度自私,极度偏激,始终自认为自己是圣人。自己没有多大本事,运气却极好。这种坏人太特别了,道...

2023-11-02 07:27:52查看全文 >>

内地商战电视剧排行榜前十名(好看的商战电视剧排行榜前十名)

内地商战电视剧排行榜前十名(好看的商战电视剧排行榜前十名)

一. 《义不容情》《义不容情》是香港电视广播有限公司出品的一部时装剧。由韦家辉监制、李国立、叶昭仪、袁英明等执导,由黄日...

2023-11-02 07:17:55查看全文 >>

exists中文是什么(exists汉语是什么)

exists中文是什么(exists汉语是什么)

高中一年级英语必修2单词Unit5classical/'klæsɪkl/adj.古典的;经典的。classic(...

2023-11-02 07:24:00查看全文 >>

exists关键字的用法(exists方法的作用是)

exists关键字的用法(exists方法的作用是)

EXISTS语法:SELECT 字段 FROM table WHERE EXISTS (subquery); 参数:su...

2023-11-02 07:33:41查看全文 >>

exists函数怎么用(exists查询的语句格式)

exists函数怎么用(exists查询的语句格式)

概述抽空总结一下mysql的一些概念性内容,涉及存储过程、函数、视图、触发器等。一、查看存储过程、函数、视图、触发器、表...

2023-11-02 07:23:53查看全文 >>

exists的用法(exist用法和注意事项)

exists的用法(exist用法和注意事项)

概述一般在做SQL优化的时候讲究使用exists带替代IN的做法,理由是EXISTS执行效率要比IN高。个人理解:IN表...

2023-11-02 06:52:45查看全文 >>

exists用法总结动画(exist函数的使用方法)

exists用法总结动画(exist函数的使用方法)

MyBatis框架中的exists用法EXISTS用法使用示例总结exists用法exists:如果括号内子查询语句返回...

2023-11-02 07:05:48查看全文 >>

文档排行