数据库系统概论王珊第5版PPT第3章(二).ppt
文本预览下载声明
带有EXISTS谓词的子查询(续)? 用NOT EXISTS谓词表示: SELECT DISTINCT Sno FROM SC SCX WHERE NOT EXISTS (SELECT * FROM SC SCY WHERE SCY.Sno = 201215122 AND NOT EXISTS (SELECT * FROM SC SCZ WHERE SCZ.Sno=SCX.Sno AND SCZ.Cno=SCY.Cno)); 3.4 数据查询 3.4.1 单表查询 3.4.2 连接查询 3.4.3 嵌套查询 3.4.4 集合查询 3.4.5基于派生表的查询 3.4.5 Select语句的一般形式 3.4.4 集合查询 集合操作的种类 并操作UNION 交操作INTERSECT 差操作EXCEPT 参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同 集合查询(续) [例 3.64] 查询计算机科学系的学生及年龄不大于19岁的学生。 SELECT * FROM Student WHERE Sdept= CS UNION SELECT * FROM Student WHERE Sage=19; UNION:将多个查询结果合并起来时,系统自动去掉重复元组 UNION ALL:将多个查询结果合并起来时,保留重复元组 集合查询(续) [例 3.65] 查询选修了课程1或者选修了课程2的学生。 SELECT Sno FROM SC WHERE Cno= 1 UNION SELECT Sno FROM SC WHERE Cno= 2 ; 集合查询(续) [例3.66] 查询计算机科学系的学生与年龄不大于19岁的学生 的交集。 SELECT * FROM Student WHERE Sdept=CS INTERSECT SELECT * FROM Student WHERE Sage=19 集合查询(续) [例 3.66] 实际上就是查询计算机科学系中年龄不大 于19岁的学生。 SELECT * FROM Student WHERE Sdept= CS AND Sage=19; 集合查询(续) [例 3.67]查询既选修了课程1又选修了课程2的学生。 SELECT Sno FROM SC WHERE Cno= 1 INTERSECT SELECT Sno FROM SC WHERE Cno=2 ; 集合查询(续) [例3.67]也可以表示为: SELECT Sno FROM SC WHERE Cno= 1 AND Sno IN (SELECT Sno FROM SC WHERE Cno= 2 ); 集合查询(续) [例 3.68] 查询计算机科学系的学生与年龄不大于19岁的学生的差集。 SELECT * FROM Student WHERE Sdept=CS EXCEPT SELECT * FROM Student WHERE Sage =19; 集合查询(续) [例3.68]实际上是查询计算机科学系中年龄大于19岁的学生
显示全部