数据库中的存在量词的解释
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle中存在量词的解释
在student表中,哪些学生选修了全部的课程?
(student:学生信息表,course:课程信息表,sc:选课表)
SQL> select sname
2 from student
3 where not exists( ------1
4 select * from course
5 where not exists( ------2
6 select * from sc
7 where sno=student.sno -------3
8 and cno=o)
9 );
注:在SQL查询中,SQL语句根据where后面的条件表达式,从待选表中,自上而下选出符合条件的记录,若遇到不符合条件的记录,则跳过,继续筛选下一条,直至结束;
在关联子查询中,子查询的查询条件依赖于父查询即外查询,现在以上面的关联子查询为例,叙述一下SQL语句的执行过程:1)从表student中取出一条记录,记为x, 放到条件1中进行对比;
2)子查询1的表course中取出一条记录,记为y, 放到条件2
中进行对比;
3)步骤1)和步骤2)取出的记录在3中即在表sc中进行比对;4)若步骤3)比对成功,则条件3为true,条件2为false,此时若y是表course中的最后一条记录,则条件1为true,
最外层会有一条记录加入到结果表中,否则会重新执行
步骤2)和步骤3);
5)若步骤3)比对没有成功即没有在表sc中找到相应的记录,则条件3为false,条件2为true,条件1为false,此时会重新执行步骤1)