我是靠谱客的博主 优美胡萝卜,最近开发中收集的这篇文章主要介绍连接查询--嵌套查询,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

连接查询–嵌套查询

一、单层嵌套查询

嵌套查询分为相关嵌套查询、不相关嵌套查询。区分条件是分离之后是否可以单独查询。

不相关嵌套查询:由里向外查询,先执行子查询,得到的结果用来构造外部查询的条件。子查询中不可以排序

例如:使用 IN(可以返回多个值),或者 = (使用=时,返回值必须为单个值 , 表示大小关系时用 <, > ,>=,<=, !=

---查询跟刘晨在一个系的学生的姓名(使用in,考虑可能会有重名的情况分布在不同的系)
select Sname
from Student
where Sdepe in (
     			select Sdepe 
    		    from Student 
    			where Sname='刘晨') 

---查询年龄比学号为‘201215121’的学生 小的学生,学号,姓名,所在系
select Sno,Sname,Sdepe
from Student 
where Sage < (
			select Sage
			from Student
			where Sno = '201215121'
)

**'> ANY 等价于 >MIN **大于子查询结果中的某个值

'>'ALL 等价于>MAX大于子查询结果中的所有值

**'<'ANY 等价于 <MAX **小于子查询结果中的某个值

‘<’ ALL等价于<MIN小于子查询结果中的所有值

‘>’= ANY等价于 >MIN大于等于子查询结果中的某个值

‘>’= ALL等价于>=MAX大于等于子查询结果中的所有值

**<= ANY 等价于 <=MAX **小于等于子查询结果中的某个值

<= ALL等价于<=MIN小于等于子查询结果中的所有值

= ANY 等价于IN等于子查询结果中的某个值

=ALL等于子查询结果中的所有值(通常没有实际意义)

**!= (或<> )ALL等价于NOT IN ** ANY不等于子查询结果中的某个值

!= (或<> ) ALL不等于子查询结果中的任何一个值

NULL+num=NULL,NULL做比较运算结果是unknow

二、多层嵌套查询

例如:查询选修了课程名为‘信息系统’的学生学号和姓名。

分析:1)首先应该在Course表中找出信息系统的课程号

​ 2)然后再SC表中找出选修了该课程的学生的学号

​ 3)然后再根据学号,在Student表中找到该学生姓名

select Sno,Sname
from Student
where Sno in (
			select Sno
			from SC
			where Cno in (
						select Cno
						from Course where (Cname = '信息系统')
							)
				)

最后

以上就是优美胡萝卜为你收集整理的连接查询--嵌套查询的全部内容,希望文章能够帮你解决连接查询--嵌套查询所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部