sql中的并、交、差

⑸ 集合运算连接

有时候,用户希望在SQL查询中利用关系代数中的集合运算(并、交、差)来组合关系,SQL为此提供了相应的运算符:UNION、INTERSECT、EXCEPT(oracle的minus?),分别对应于集合运算的∪、∩、-。它们用于两个查询之间,对每个查询都要用圆括号括起来。对于不同的DBMS,支持的集合运算有所不同,如ACCESS,SQLSERVER都不支持集合的交运算和差运算。

 

【例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/news/494493.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言实现大数据除法

本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A B * Q R成立。 输入格式: 输入在1行中依次给出A和B,中间以1空格分隔。 输出格式: 在1行中依次输出Q和R&a…

每日一道题,划水有意义,看我不卷死你们(评论送书)

🍅 作者主页:不吃西红柿 🍅 简介:CSDN博客专家 & 总榜前十🏆、HDZ核心组成员。欢迎点赞、收藏、评论 🍅 粉丝专属福利:知识体系、面试题库、技术互助、简历模板。文末公众号领取 &#x1f…

计算机视觉已超越人类眼睛?腾讯优图与《科学》杂志全面解读

来源: 腾讯研究院摘要:视觉是人类认知世界的重要组成部分,而计算机视觉作为人工智能的核心技术之一,近几年的发展现状如何?视觉是人类认知世界的重要组成部分,而计算机视觉作为人工智能的核心技术之一,近几…

海量数据笔试真题

1、 海量数据分布在100台电脑中,想个办法高校统计出这批数据的TOP10。 方案1: s 在每台电脑上求出TOP10,可以采用包含10个元素的堆完成(TOP10小,用最大堆,TOP10大,用最小堆)。比如求…

ScrollView与TableView实现选择效果

在cocos2dx中,ScrollView与TableView都可以实现选择效果,其中ScrollView较为原始,TableView的格子大小可以不与winSize一样大。 ScrollView实现 #include "T25ScrollView.h" #include "AppMacros.h"CCScene* T25Scroll…

科学家发现新的人类脑细胞,或可解答一个难题

来源:中国生物技术网关于人类大脑最令人感兴趣的问题之一,也是神经科学家们最难回答的问题之一,就是到底是什么让我们的大脑与其他动物的大脑区别开来。Allen脑科学研究所的研究员Ed Lein博士说:“我们并不清楚是什么让人类大脑变…

Cocos2dx中零散知识点

cocos2dx中有三种定时器:schedule,scheduleUpdate,scheduleOnce。功能分别是 每隔几秒调用自定义函数、调用系统默认的update()函数、只调用一次自定义函数 1、scheduleUpdate 加入当前节点后,程序会每帧都会自动执行一次默认的…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 6丨统计各专业学生人数【难度中等】

活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升。 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人会走得很远。 🍅题目汇总(…

五问智能教育未来发展:重点解决什么问题?

来源:人民日报日前,首届中国智能教育大会在北京举行,教育部有关负责人、人工智能专家和教育专家、一些地方政府及教育行政部门负责人、大中小学校长、教师和企业家等近1000人参加。与会代表认为,智能教育将会越来越多地影响每一个…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 6丨寻找用户推荐人【难度简单】

活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升。 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人会走得很远。 🍅题目汇总(…

Ubuntu下Memcache的安装与基本使用

在全世界范围内很多大负载站点采用了Memcache作缓存服务,以分担数据库服务器的压力。 这里只介绍在Ubuntu下如何配置Memcache和如何在PHP使用Memecache,对于更深入的了解,比如Memcache的运作机理或更高级的应用还是Google一下…^_^ 关于Memca…

实现超级玛丽上下左右运动

用Cocos2dx实现超级玛丽&#xff0c;首先用帧循环定时器判断方向&#xff0c;再在类中实现运行以及判断是否能运动。 方向控制 void LayerGame::moveMario(float dt) { #ifdef WIN32short key;key GetKeyState(F);if (key < 0) _marioDir Common::RIGHT;key GetKeyStat…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 7丨大的国家【难度简单】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

自动驾驶前沿报告!解密六大关键技术,全球人才分布

来源&#xff1a;智东西摘要&#xff1a;清华-中国工程院知识智能联合研究中心从技术、人才、应用和趋势的维度盘点自动驾驶的发展。从传统车企到新造车势力&#xff0c;再到互联网大佬&#xff0c;都在加注自动驾驶。自动驾驶既指向了更高效安全的交通运营系统&#xff0c;也意…

利用工厂模式实现怪物系统

利用工厂模式可以有效的降低类与类的藕合性&#xff0c;增强代码的可重用性&#xff0c;工厂模式主要通过虚函数的原理进行。 当基类指针指向一个子类对象&#xff0c;通过这个指针调用子类和基类同名成员函数的时候&#xff0c;基类声明为虚函数「子类不写也可以」就会调子类…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 7丨好友申请 I :总体通过率【难度简单】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…

边缘计算技术发展与对策研究

来源&#xff1a;5G作者&#xff1a;洪学海&#xff0c;中国科学院计算技术研究所&#xff0c;中国科学院计算机网络信息中心&#xff0c;研究员&#xff1b;汪洋&#xff0c;中国科学院计算机网络信息中心。未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能&a…

Android初探:LINUX(Ubuntu)下安装开发环境

第一步&#xff1a; 安装Ubuntu, 我现在装的是12.04LTS&#xff0c;12.04LTS 将得到长达5年的更新支持&#xff0c;而新出来的12.10则只有两年的更新支持&#xff0c;并且Google Android开发/源码网站上也将12.04作为支持系统之一&#xff0c;所以不推荐12.10安装完ubuntu系统后…

windows下同时安装python2与python3

由于python2与python3并不相互兼容&#xff0c;并且差别较大&#xff0c;所以有时需要同时安装&#xff0c;但在操作命令行时&#xff0c;怎么区别python2与python3呢&#xff1f; 1.下载并安装Python 2.7.9和Python 3.4.1。 2.找到Python 2.7.9的安装目录C:\Python27&#x…

【每日SQL打卡】​​​​​​​​​​​​​​​DAY 7丨字节面试真题【难度困难】

活动介绍&#xff1a; 「数据仓库技术交流群」已经正式启动每日SQL打卡&#xff0c;帮助大家扎实基础&#xff0c;努力工作之余&#xff0c;别忘了自我提升。 欢迎报名和邀请小伙伴参与&#xff0c;一个人可能走得很快&#xff0c;但一群人会走得很远。 &#x1f345;题目汇总(…