数据库中的存在量词的解释

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

相关文档
最新文档