UNION

查询选修了180101号或180102号课程或二者都选修了的学生学号、课程号和成绩。

(SELECT  学号, 课程号, 成绩

FROM   学习

WHERE   课程号='180101')

UNION

(SELECT 学号, 课程号, 成绩

FROM 学习

WHERE    课程号='180102')

与SELECT子句不同,UNION运算自动去除重复。因此,在本例中,若只输出学生的学号,则相同的学号只出现一次。如果想保留所有的重复,则必须用UNION ALL代替UNION,且查询结果中出现的重复元组数等于两个集合中出现的重复元组数的和。

INTERSECT

查询同时选修了180101和180102号课程的学生学号、课程号和成绩。

(SELECT  学号, 课程号, 成绩

FROM   学习

WHERE 课程号='180101')

INTERSECT

(SELECT 学号, 课程号, 成绩

FROM 学习

WHERE 课程号='180102')

INTERSECT运算自动去除重复,如果想保留所有的重复,必须用INTERSECT ALL代替INTERSECT,结果中出现的重复元组数等于两集合出现的重复元组数里较少的那个。

intersect运算 返回查询结果中相同的部分既他们的交集

minus-(oracle)

返回在第一个查询结果中与第二个查询结果不相同的那部分行记录,
即两个结果的差集
select * from abc2
minus
select * from abc ;

EXCEPT

查询选修了180101号课程的学生中没有选修180102号课程的学生学号、课程号和成绩。
(SELECT  学号, 课程号, 成绩
FROM   学习
WHERE  课程号='180101')
EXCEPT
(SELECT 学号, 课程号, 成绩
FROM 学习
WHERE   课程号='180102')
EXCEPT运算自动去除重复,如果想保留所有的重复,必须用EXCEPT ALL代替EXCEPT,结果中出现的重复元组数等于两集合出现的重复元组数之差(前提是差是正值)。

在不支持INTERSECT和EXCEPT运算的DBMS中,必须使用其它方法实现,其中,嵌套查询是十分有效的一种方法。

Sql语句之并(UNION)、交(INTERSECT)、差(minus)、除去(EXCEPT)的更多相关文章

  1. sql语句or与union all的执行效率比较

    看到一篇文章是讲sql语句or与union all的执行效率比较的,以前没怎么注意这个问题,感觉文章写的不错,转来一看. 文章原链接:http://www.cunyoulu.com/zhuanti/q ...

  2. 【转】Oracle集合操作函数:union、intersect、minus

    集合操作符专门用于合并多条select 语句的结果,包括:UNION, UNION ALL, INTERSECT, MINUS.当使用集合操作符时,必须确保不同查询的列个数和数据类型匹配. 集合操作符 ...

  3. Oracle集合操作函数:union、intersect、minus

    [转]Oracle集合操作函数:union.intersect.minus 集合操作符专门用于合并多条select 语句的结果,包括:UNION, UNION ALL, INTERSECT, MINU ...

  4. LINQ to SQL 中 Concat、Union、Intersect、Except 方法的使用

    Ø  前言 LINQ to SQL 中需要对两个或多个数据集进行操作,比如:合并.取交集等,主要使用下面四个方法,这四个方法都是 System.Linq.IQueryable<out T> ...

  5. SQL语句技巧(上个样式太差了)

      以下并非本人整理,但是看后感觉相当不错,特此分享. 1.应用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数:通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担:能够分 ...

  6. linux之SQL语句简明教程---UNION ALL

    UNION ALL 这个指令的目的也是要将两个 SQL 语句的结果合并在一起. UNION ALL 和UNION 不同之处在于 UNION ALL 会将每一笔符合条件的资料都列出来,无论资料值有无重复 ...

  7. linux之SQL语句简明教程---UNION

    UNION 指令的目的是将两个 SQL 语句的结果合并起来.从这个角度来看, UNION 跟 JOIN有些许类似,因为这两个指令都可以由多个表格中撷取资料. UNION 的一个限制是两个 SQL 语句 ...

  8. SQL 语句中的union操作符

    前端时间,用到了union操作符,周末有时间总结下,w3c手册内容如下: SQL UNION操作符 UNION操作符用于合并两个或多个select语句的结果集. 注意:UNION内部select语句必 ...

  9. SQL语句计算距离今天生日还差几天

    转载于:http://www.w3dev.cn/article/20110125/sql-compute-birthdate-now-days.aspx SQL语句计算距离生日还差几天原理很简单,将要 ...

  10. SQL语句or查询,union all查询,分页查询,分组,AND查询

    一.OR查询 1.在AND多个筛选条件和一个or条件时,如果没有括号包裹,or会就近原则包裹之后的所有and条件,也就是同级的多个and条件只能对,or条件的一边起作用 2.如果or条件两边的筛选条件 ...

随机推荐

  1. 在java1.8下使用jetty报错java.lang.CharSequence cannot be resolved

    环境: JDK: 1.8Jetty: jetty6,jetty7(在eclipse中使用run-jetty-run插件) 在JSP页面中使用StringBuilder或者StringBuffer,示例 ...

  2. Impala系列: Impala常用的功能函数

    --=======================查看内置的函数--=======================hive 不需要进入什么内置数据库, 即可使用 show functions 命令列出 ...

  3. EFCodeFirst示例

    1.定义一个基础模板类 namespace WebApplication1.Models { /// <summary> /// 可持久到数据库的领域模型的基类. /// </sum ...

  4. python S2-45 漏洞利用工具

    初学python脚本,写个工具练练手.第一次写勿喷.呃...忘了截图了,补上了. 程序对于处理 JSON post 有些问题,其他地方还没发现有啥问题. #coding:utf-8 import ch ...

  5. 基于WebSocket 私聊、ws_session、httpsession

    [解码器跟编码器]为了可以直接sendObject 解码 => 解成计算机需要的码 => 将用户输入的文本或者二进制 序列化成消息对象.    (dll 给机器吃的) 编码 => 编 ...

  6. [MVC框架]利用@Scheduled注解创建定时执行的程序

    新写的项目中有一个地方要用到定时器,然后就用了spring的@Scheduled注解,顺手就给记录下来了,免得下次用的时候还要翻以前的项目,顺便分享出来,给没用过的兄弟姐妹们做个参考. 这次主要用的是 ...

  7. 4-24日 collections模块 random模块 time模块 sys模块 os模块

    1, collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdi ...

  8. vue请求java服务端并返回数据

    最近在自学vue怎么与java进行数据交互.其实axios还是挺简单的,与ajax请求几乎一样,无外乎也就是要解决下跨域的问题. 废话不多说了,直接贴代码,一看就懂! //向springmvc Con ...

  9. .netcore 写日志(使用NLog,log4net)

    参考地址: NLog:http://www.cnblogs.com/linezero/p/Logging.html Log4Net:http://www.cnblogs.com/linezero/p/ ...

  10. 剑指Offer题解索引

    数组 数组中重复的数字 二维数组中的查找 构建乘积数组 字符串 替换空格 字符流中第一个不重复的字符 表示数值的字符串 递归和循环 斐波那契数列 跳台阶 变态跳台阶 矩形覆盖 链表 从尾到头打印链表 ...