4. 集合查询
集合操作主要包括并操作UNION,交操作INTETRSECT和差操作EXCEPT。
注意:参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同。
[例1] 查询计算机科学系的学生及年龄不大于19岁的学生。
SELECT *
FROM Student
WHERE Sdept='CS'
UNION
SELECT*
FROM Student
WHERE Sage<=19;
本查询实际上是求计算机科学系的所有学生与年龄不大于19岁的学生的并集。使用UNION将多个查询结果合并起来时,系统会自动去掉重复元组。如果要保留重复元组则用UNION ALL操作符。
[例2] 查询计算机科学系的学生与年龄不大于19岁的学生的交集。
SELECT *
FROM Student
WHERE Sdept='CS'
INTERSECT
SELECT*
FROM Student
WHERE Sage<=19;
这实际上就是查询计算机科学系中年龄不大于19岁的学生。
SELECT*
FROM Student
WHERE Sdept='CS' AND Sage<=19;
[例3] 查询计算机科学系的学生与年龄不大于19岁的学生的差集。
SELECT*
FROM Student
WHERE Sdept='CS'
EXCEPT
SELECT*
FROM Student
WHERE Sage<=19;
也就是查询计算机科学系中年龄大于19岁的学生
SELECT *
FROM Student
WhERE Sdept='CS' AND Sage>19;