08_SQL-数据查询-79.ppt

嵌套查询(子查询) 带有EXISTS谓词的子查询 例:查询(至少)选修了学生95002选修的全部课程的学生号码。 解题思路 用逻辑蕴函表达:查询学号为x的学生,对所有的课程y,只要95002学生选修了课程y,则x也选修了y。形式化表示: 用P表示谓词 “学生95002选修了课程y” 用q表示谓词 “学生x选修了课程y” 则上述查询为: (?y) p ? q 嵌套查询(子查询) 带有EXISTS谓词的子查询 等价变换: (?y)p ? q ≡?(?y(?(p? q)) ≡?(?y(?(?p∨q) ≡??y(p∧?q) 变换后语义:不存在这样的课程y,学生95002选修了y,而学生x没有选。 嵌套查询(子查询) 带有EXISTS谓词的子查询 例:查询(至少)选修了学生95002选修的全部课程的学生号码。 SELECT DISTINCT Sno FROM SC SCX WHERE NOT EXISTS (SELECT * FROM SC SCY WHERE SCY.Sno = 95002 AND NOT EXISTS(SELECT * FROM SC SCZ WHERE

文档评论(0)

1亿VIP精品文档

相关文档