it在线学习网站开发网站更新了
it在线学习网站开发,网站更新了,怎么做原创动漫视频网站,网页游戏大全网⑸ 集合运算连接 有时候#xff0c;用户希望在SQL查询中利用关系代数中的集合运算#xff08;并、交、差#xff09;来组合关系#xff0c;SQL为此提供了相应的运算符#xff1a;UNION、INTERSECT、EXCEPT(oracle的minus?)#xff0c;分别对应于集合运算的∪、∩、-。它…⑸ 集合运算连接 有时候用户希望在SQL查询中利用关系代数中的集合运算并、交、差来组合关系SQL为此提供了相应的运算符UNION、INTERSECT、EXCEPT(oracle的minus?)分别对应于集合运算的∪、∩、-。它们用于两个查询之间对每个查询都要用圆括号括起来。对于不同的DBMS支持的集合运算有所不同如ACCESSSQLSERVER都不支持集合的交运算和差运算。 【例3-40】 查询选修了180101号或180102号课程或二者都选修了的学生学号、课程号和成绩。 (SELECT 学号, 课程号, 成绩 FROM 学习 WHERE 课程号180101) UNION (SELECT 学号, 课程号, 成绩 FROM 学习 WHERE 课程号180102) 输出结果 学号 课程号 成绩 090101 180101 59 090101 180102 56 090102 180101 70 090102 180102 65 … … … 与SELECT子句不同UNION运算自动去除重复。因此在本例中若只输出学生的学号则相同的学号只出现一次。如果想保留所有的重复则必须用UNION ALL代替UNION且查询结果中出现的重复元组数等于两个集合中出现的重复元组数的和。 【例3-41】查询同时选修了180101和180102号课程的学生学号、课程号和成绩。 (SELECT 学号, 课程号, 成绩 FROM 学习 WHERE 课程号180101) INTERSECT (SELECT 学号, 课程号, 成绩 FROM 学习 WHERE 课程号180102) INTERSECT运算自动去除重复如果想保留所有的重复必须用INTERSECT ALL代替INTERSECT结果中出现的重复元组数等于两集合出现的重复元组数里较少的那个。 或者多次的子查询 补充: 1、intersect运算返回查询结果中相同的部分既他们的交集SQL select * from abc 2 intersect 3 select * from abc2 ;2、minus运算返回在第一个查询结果中与第二个查询结果不相同的那部分行记录,即两个结果的差集SQL select * from abc2 2 minus 3 select * from abc ; 【例3-42】查询选修了180101号课程的学生中没有选修180102号课程的学生学号、课程号和成绩。 (SELECT 学号, 课程号, 成绩 FROM 学习 WHERE 课程号180101) EXCEPT (SELECT 学号, 课程号, 成绩 FROM 学习 WHERE 课程号180102) EXCEPT运算自动去除重复如果想保留所有的重复必须用EXCEPT ALL代替EXCEPT结果中出现的重复元组数等于两集合出现的重复元组数之差前提是差是正值。 在不支持INTERSECT和EXCEPT运算的DBMS中必须使用其它方法实现其中嵌套查询是十分有效的一种方法。转载于:https://www.cnblogs.com/sumsen/archive/2012/12/10/2811757.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88136.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!