数据库系统6数据更新概论.ppt

数据库系统6数据更新概论

授课主题;例32:查询所有选修了”k01”号课程的学生姓名。;执行过程: 首先用student中的第一条记录中的学号值“200215121”和sc表中的每一个元组进行比较,若有满足条件(学号=student.学号 and 课程代号=‘k01’)的元组则返回true,那么将此元组放入结果集中。然后再把student表中的第二个元组”200215122”与sc表中每个元组进行比较……,直到student表中的每一个元组的学号,均与sc表中每一个元组比较后,最终返回所有为true的结果。 说明: ①在这例中,子查询的查询条件依赖于外层父查询的某个属性值,因此也被称为相关子查询。其求解过程是:先取外层查询中的第一个元组,根据它与内层查询相关的属性值处理内层查询,若where子句返回值为真,则取此元组放入结果表;然后检查下一个元组,重复这一过程,直至外层查询的元组全部检索过。 ②由于exists只返回逻辑值,所以在exists后的子查询一般使用”*”来代替列名,因为即使指定列名也无意义。;in和exists查询的区别:结果相同,但操作过程不同;例33:查询选修了全部课程的学生姓名。 方法一的思路:由于没有全称量词,我们将题目的意思转换成等价的存在量词的形式:查询这样的姓名,没有一门课是他不选的。 select 学号,姓名 from student where not exists

文档评论(0)

1亿VIP精品文档

相关文档