数据库含EXISTS的查询

2023-12-13 17:28:14

一、含EXISTS的简单子查询

SELECT Sname
FROM Student
WHERE EXISTS
		(SELECT *
		FROM SC
		WHERE Sno=Student.Sno AND Cno='1');

在上述例子中,查询过程如下:
首先取外层查询中Student表的第一个元组,根据它与内层查询相关的属性值(Sno值)处理内层查询,若WHERE子句返回值为真,则取外层查询中该院组的Sname放入结果表
然后再取Student表的下一个元组
重复这一过程,直至外层Student表全部检查完为止

若有以下表:
Student表:

学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept
1李勇20CS
2刘晨19CS
3王敏18MA
4张立19IS

SC表:

学号Sno课程号Cno成绩Grade
1192
1285
1388
2290
2380

则具体过程如下:
首先取第一个数据

学号Sno姓名Sname性别Ssex年龄Sage所在系Sdept
1李勇20CS

在表SC中找符合Sno=1且Cno=1的数据,有符合条件的元组,则子查询返回1,该元组加入结果中
对后续元组类似处理

二、含双重NOT EXISTS的查询语句

文章来源:https://blog.csdn.net/qq_39991776/article/details/134843864
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。