第4章-SQL语言基础2.pptVIP

  • 3
  • 0
  • 约1.67万字
  • 约 78页
  • 2018-12-19 发布于北京
  • 举报
第4章-SQL语言基础2.ppt

An Introduction to Database System 带有EXISTS谓词的子查询(续) 等价变换: (?y)p ? q ≡ ? (?y (?(p ? q )) ≡ ? (?y (?(? p∨ q) )) ≡ ? ?y(p∧?q) 变换后语义:不存在这样的课程y,学生200215122选修了y,而学生x没有选。 An Introduction to Database System 带有EXISTS谓词的子查询(续)? 用NOT EXISTS谓词表示: SELECT DISTINCT Sno FROM SC SCX WHERE NOT EXISTS (SELECT * FROM SC SCY WHERE SCY.Sno = 200215122 AND NOT EXISTS (SELECT * FROM SC SCZ WHERE SCZ.Sno=SCX.Sno AND SCZ.Cno=SCY.Cno)); An Introduction to Database System 4.4 数据查询 4.4.1 单表查询 4.4.2 连接查询 4.4.3 嵌套查询 4.4.4 集合查询 4.4.5 Select语句的一般形式 An Introduction to Database System 4.4.4 集合查询 集合操作的种类 并操作UNION 交操作INTERSECT 差操作EXCEPT 参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同 An Introduction to Database System 集合查询(续) [例48] 查询计算机科学系的学生及年龄不大于19岁的学生。 方法一: SELECT * FROM Student WHERE Sdept= CS UNION SELECT * FROM Student WHERE Sage=19; UNION:将多个查询结果合并起来时,系统自动去掉重复元组。 UNION ALL:将多个查询结果合并起来时,保留重复元组 An Introduction to Database System 集合查询(续) 方法二: SELECT DISTINCT * FROM Student WHERE Sdept= CS OR Sage=19; An Introduction to Database System 集合查询(续) [例49] 查询选修了课程1或者选修了课程2的学生。 SELECT Sno FROM SC WHERE Cno= 1 UNION SELECT Sno FROM SC WHERE Cno= 2 ; An Introduction to Database System 集合查询(续) [例50] 查询计算机科学系的学生与年龄不大于19岁的学生的交集 SELECT * FROM Student WHERE Sdept=CS INTERSECT SELECT * FROM Student WHERE Sage=19 An Introduction to Database System 集合查询(续) [例50] 实际上就是查询计算机科学系中年龄不大于19岁的学生 SELECT * FROM Student WHERE Sdept= CS AND Sage=19; An Introduction to Database System 集合查询(续) [例51] 查询选修课程1的学生集合与选修课程2的学生集合的交集 SELECT Sno

文档评论(0)

1亿VIP精品文档

相关文档