什么是相关子查询

 我来答
白露饮尘霜17
2022-10-22 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6873
采纳率:100%
帮助的人:38.1万
展开全部
问题一:SQL里,什么叫相关子查询? 相关子查询指的是查询中再查询,通常是以一个查询作为条件来供另一个查询使用1>非相关子查询是独立于外部查询的子查询,子查询总共执行一次,执行完毕后将值传递给外部查询。
相关子查询的执行依赖于外部查询的数据,外部查询执行一行,子查询就执行一次。

问题二:相关子查询与不相关子查询有什么区别 不相关子查询是指子查询独立于外层语句(主查询),他不依赖于其外层语句的操作结果,他们执行时可分为两个独立的步骤,即先执行子查询,在执行外层查询。例如:
SELECT 姓名 FROM STUDENT WHERE入学成绩>(select avg(入学成绩) FROM STUDENT )
相关子查询时一种其子查询和外层相互交叉的数据检索方法.从概念上讲包含相关子查询的语句在执行时部能分为一先一后两个步骤.

问题三:数据库,相关子查询是怎样实现的啊? 你可以这样理解:
select sno, o form sc x; 把全表中的数据查询出来
然后,再操作
select avg(grade) from sc y where y.sno=x.sno ; 根据上面的查询中的每一个x.sno查询对应的平均成绩
最后,检查x.grade比其平均成绩大的数据,进行输出

问题四:SQL子查询 分别用于什么情况下 条件里需要用到另一个查询的结果

问题五:为什么要用嵌套查询?什么是相关子查询和不相关子查询?有什么区别?... 嵌套查询是通过where子句的子查询返回内层查询的值作为查询条件,进而实现外层查询的查询结果。
相关子查询:执行查询的时候先取得外层查询的一个属性值,然后执行与此属性值相关的子查询,执行完毕后再取得外层父查询的下一个值,依次再来重复执行子查询;
不相关子查询:子查询的执行不需要提前取得父查询的值,只是作为父查询的查询条件。
索引:使用索引是为了加快查询速度。

问题六:相关子查询事例,具体点的,都有哪些类型,最好能举出实例 1、使用别名的子查询
USE AdventureWorks;
GO
SELECT e1.EmployeeID, e1.ManagerID
FROM HumanResources.Employee AS e1
INNER JOIN HumanResources.Employee AS e2
ON e1.ManagerID = e2.ManagerID
AND e2.EmployeeID = 12
2、使用 IN 的子查询和使用 NOT IN 的子查询。
USE AdventureWorks;
GO
SELECT Name
FROM Production.Product
WHERE ProductSubcategoryID in ('17')------not in 不再给出实例。
3、UPDATE、DELETE 和 INSERT 语句中的子查询。
USE AdventureWorks;
GO
UPDATE Production.Product
SET ListPrice = ListPrice * 2
WHERE ProductID IN
(SELECT ProductID
FROM Purchasing.ProductVendor
WHERE VendorID = 51);
GO--------delete和insert不再给出实例。
4、使用比较运算符的子查询。子查询可以由一个比较运算符(=、、>、> =、、!
(SELECT AVG (ListPrice)
FROM Production.Product)----其他不再给出实例。
5、用 ANY、SOME 或 ALL 修改的比较运算符
USE AdventureWorks;
GO
SELECT Name
FROM Production.Product
WHERE ListPrice >= ANY
(SELECT MAX (ListPrice)
FROM Production.Product
GROUP BY ProductSubcategoryID)----some和all不再给出实例,做相应替换即可。
6、使用 EXISTS 的子查询和使用 NOT EXISTS 的子查询。
USE AdventureWorks;
GO
SELECT Name
FROM Production.Product
WHERE EXISTS
(SELECT *
FROM Production.ProductSubcategory
WHERE ProductSubcategoryID =
Production.Product.ProductSubcategoryID
AND Name = 'Wheels')----not exists不再给出实例,做相应替代即可。
7、用于替代表达式的子查询。
USE AdventureWorks;
GO
SELECT Name, ListPrice,
(SELECT AVG(ListPrice) FROM Production.P......>>

问题七:sql子查询和连接查询的区别是什么呢?悬赏100求答案 子查询就是查询中又嵌套的查询,嵌套的级数随各数据库厂商的设定而有所不同,一般最大嵌套数不超过15级,实际应用中,一般不要超过2级,否则代码难以理解.一般来说,所有嵌套子查询都可改写为非嵌套的查询,但是这样将导致代码量增大.子查询就如递归函数一样,有时侯使用起来能达到事半功倍之效,只是其执行效率同样较低,有时用自身连接可代替某些子查询,另外,某些相关子查询也可改写成非相关子查询
表连接都可以用子查询,但不是所有子查询都能用表连接替换,子查询比较灵活,方便,形式多样,适合用于作为查询的筛选条件,而表连接更适合与查看多表的数据
子查询不一定需要两个表有关联字段,而连接查询必须有字段关联(所谓的主外键关系)

问题八:嵌套查询和子查询是一样的概念吗? 嵌套查询
是包括外层主查询和内层子查询的查询。
子查询还可以包括子查询,可以是多层子查询,主查询也可以包括多个子查询。
子查询
就是括号中的查询。
看出来了吧:子查询是嵌套查询必不可少的组成部份。
他们虽不是一个概念,但是相关的概念。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式