相关子查询与不相关子查询有什么区别?举例说明

 我来答
家和万事兴2306
高粉答主

2019-10-25 · 关注我不会让你失望
知道小有建树答主
回答量:643
采纳率:100%
帮助的人:11.4万
展开全部

相关子查询与不相关子查询区别为:处理次数不同、依赖不同、效率不同。

一、处理次数不同

1、相关子查询:相关子查询被多次处理,需要重复求值以供外部查询使用。

2、不相关子查询:不相关子查询的处理一次完成,执行后传递给外部查询。

二、依赖不同

1、相关子查询:相关子查询中的查询条件取决于外部查询中的值。

2、不相关子查询:无关子查询是独立于外部查询的子查询,不依赖于外部查询中的值。

三、效率不同

1、相关子查询:相关子查询可以嵌套在多个层中,但嵌套层越多,效率越低。

2、不相关子查询:不相关子查询不能嵌套,效率高于相关子查询。

扩展资料:

非相关子查询的执行不依赖与外部的查询。

执行过程: 

1、执行子查询,其结果不被显示,而是传递给外部查询,作为外部查询的条件使用。 

2、执行外部查询,并显示整个结果。

通常,非相关子查询可以分为两种类型:返回单个值的子查询和返回列表的子查询。

内部查询是指外部查询的表->子查询的执行次数取决于外部查询。每行外部查询执行一次子查询。

交叉表查询中允许某些子查询,特别是谓词(where子句中的谓词)。在交叉表查询中不允许使用子查询作为输出(select中列出的那些)。

使用all谓词只检索主查询中的这些记录,这些记录满足子查询中检索的所有记录的比较条件。如果将前面示例中的任何更改为“全部”,则查询将只返回单价高于以25%或更高折扣销售的所有产品的单价的产品。这更多的是一种限制。

参考资料来源:

百度百科-子查询

百度百科-相关子查询

kuilei61
推荐于2017-11-23
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
不相关子查询是指子查询独立于外层语句(主查询),他不依赖于其外层语句的操作结果,他们执行时可分为两个独立的步骤,即先执行子查询,在执行外层查询。例如:
SELECT 姓名 FROM STUDENT WHERE入学成绩>(select avg(入学成绩) FROM STUDENT )
相关子查询时一种其子查询和外层相互交叉的数据检索方法.从概念上讲包含相关子查询的语句在执行时部能分为一先一后两个步骤.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式