RSS
热门关键字:  项目经理  分析师  中间件  CEO  报名费





集合查询

来源: 作者: 时间:2008-03-16 点击:

每一个SELECT语句都能获得一个或一组元组。若要把多个SELECT语句的结果合并为一个结果,可用集合操作来完成。集合操作主要包括并操作UNION、交操作INTERSECT和差操作MINUS。

使用UNION将多个查询结果合并起来,形成一个完整的查询结果时,系统会自动去掉重复的元组。需要注意的是,参加UNION操作的各数据项数目必须相同;对应项的数据类型也必须相同。

例45 查询计算机科学系的学生及年龄不大于19岁的学生
  SELECT *
FROM Student
WHERE Sdept='CS'
UNION
SELECT *
FROM Student
WHERE Sage<=19
例46 查询选修了课程1或者选修了课程2的学生
  本例实际上是查选修课程1的学生集合与选修课程2的学生集合的并集。

SELECT Sno
FROM SC
WHERE Cno='1'
UNION
SELECT Sno
FROM SC
WHERE Cno='2';
  标准SQL中没有直接提供集合交操作和集合差操作,但我们可以用其他方法来实现。具体实现方法依查询不同而不同。
例47 查询计算机科学系的学生与年龄不大于19岁的学生的交集
  本查询换种说法就是,查询计算机科学系中年龄不大于19岁的学生。

SELECT *
FROM Student
WHERE Sdept='CS' AND Sage<=19;
例48 查询计算机科学系的学生与年龄不大于19岁的学生的差集
  本查询换种说法就是,查询计算机科学系中年龄大于19岁的学生。

SELECT *
FROM Student
WHERE Sdept='CS' AND Sage>19;
例49 查询选修课程1的学生集合与选修课程2的学生集合的差集
  本例实际上是查询选修了课程1但没有选修课程2的学生。

SELECT Sno
FROM SC
WHERE Cno='1' AND
      Sno NOT IN
         (SELECT Sno
           FROM SC
          WHERE Cno='2');





最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
企业电子商务

赞助商