集合运算

  • INTERSECT(交集),返回两个查询共有的记录。

  • UNION ALL(并集重复),返回各个查询的所有记录,包括重复记录。

  • UNION(并集不重复),返回各个查询的所有记录,不包括重复记录 。

  • MINUS(补集),返回第一个查询的记录减去第二个查询的记录之后剩余的记录。

-- 交集
select * from stuinfo1
intersect
select * from stuinfo2; -- 并集重复
select * from stuinfo1
union all
select * from stuinfo2; -- 并集不重复
select * from stuinfo1
union
select * from stuinfo2; -- 补集
select * from stuinfo1
minus
select * from stuinfo2;

内连接

两张表通过某个字段进行内关联,查询结果是通过该字段按关系运算符匹配出的数据行。

select a.stuid, a.stuname, a.classno,
b.classno, b.classname, b.monitorid, b.monitorname
from stuinfo a, class b
where a.classno = b.classno;

外连接

  • left join:等价于 left outer join,返回左表中的所有记录和右表中联结字段相等的记录。

  • right join:等价于 right outer join,返回右表中的所有记录和左表中联结字段相等的记录。

  • full join:等价于 full outer join,查询结果等于左外连接和右外连接的和。

--左外连接(stuinfo1表中数据都保留,stuinfo2不在stuinfo1中存在的字段为null值)
select a.*, b.stuid, b.stuname
from stuinfo1 a left join stuinfo2 b
on a.stuid = b.stuid; --左外连接另外一种写法
select a.*, b.stuid, b.stuname
from stuinfo1 a,stuinfo2 b
where a.stuid = b.stuid(+); --右外连接(stuinfo2表中数据都保留,stuinfo1不在stuinfo2中存在的字段为null值)
select a.*, b.stuid, b.stuname
from stuinfo1 a right join stuinfo2 b
on a.stuid = b.stuid; --右外连接另外一种写法
select a.*, b.stuid, b.stuname
from stuinfo1 a,stuinfo2 b
where a.stuid(+)=b.stuid; --全外连接(stuinfo1、stuinfo2表中数据都保留,stuinfo1不在stuinfo2存在的学生相关字段为null值,stuinfo2不在stuinfo1存在的学生相关字段为null值)
select a.*, b.stuid, b.stuname
from stuinfo1 a full join stuinfo2 b
on a.stuid = b.stuid;

伪列

  • ROWID:返回数据在数据文件中的物理地址。ROWID 值可以唯一的标识表中的一行。
  • ROWNUM:标识查询结果集的顺序,第一行标识为1,后面依次递增。
select t.*, t.rowid from stuinfo t;
select t.*, t.rowid from stuinfo t where t.rowid='AAAShjAAEAAAAEFAAD'; select t.*, rownum from stuinfo t; -- 返回学生信息表中学生年龄最低的前四位同学
select * from (
select t.*, rownum from stuinfo t order by t.age asc
) where rownum <= 4;

[学习笔记] Oracle集合运算、内连接、外连接、伪列的更多相关文章

  1. 知识点:Oracle+表连接方式(内连接-外连接-自连接)+详解 来自百度文库

    Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制)        (2)右外连接(右边的表不加限制)        (3)全外连接(左右 ...

  2. CNN学习笔记:卷积运算

    CNN学习笔记:卷积运算 边缘检测 卷积 卷积是一种有效提取图片特征的方法.一般用一个正方形卷积核,遍历图片上的每一个像素点.图片与卷积核重合区域内相对应的每一个像素值乘卷积核 .内相对应点的权重,然 ...

  3. mysql中的内连接,外连接实例详解

    内连接: 只连接匹配的行左外连接: 包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行右外连接: 包含右边表的全部行(不管左边的表中是否存在与它们匹配的行),以及左边 ...

  4. 软件测试之loadrunner学习笔记-02集合点

    loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行 ...

  5. sql内连接外连接自然连接

    为什么我们要使用内连接和外连接呢?可以从两张或者多张表中找出,我们需要的属性. 这个比较好:http://www.cnblogs.com/youzhangjin/archive/2009/05/22/ ...

  6. Java学习笔记之---集合

    Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...

  7. mysql数据库中的多表查询(内连接,外连接,子查询)

    用两个表(a_table.b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接.外连接( 左(外)连接.右(外)连接.全(外)连接). MySQL版 ...

  8. Oracle学习笔记—Oracle左连接、右连接、全外连接以及(+)号用法(转载)

    转载自: Oracle左连接.右连接.全外连接以及(+)号用法 对于外连接,Oracle中可以使用“(+)”来表示. 关于使用(+)的一些注意事项: (+)操作符只能出现在WHERE子句中,并且不能与 ...

  9. oracle 内连接 外连接 查询 笔记

    elect ename,job,sal from emp where deptno>10 order by sal desc; 联合查询,PK dept.deptno FK emp.deptno ...

随机推荐

  1. 为什么要重写hashcode和equals方法

    我在面试 Java初级开发的时候,经常会问:你有没有重写过hashcode方法?不少候选人直接说没写过.我就想,或许真的没写过,于是就再通过一个问题确认:你在用HashMap的时候,键(Key)部分, ...

  2. 【编程思想】【设计模式】【其他模式】graph_search

    Python版 https://github.com/faif/python-patterns/blob/master/other/graph_search.py #!/usr/bin/env pyt ...

  3. 实现new Date(), 获取当前时间戳

    JS 获取时间戳: 我相信大家找了很久了吧! 希望我写的这个对您有些帮助哦~ 大家是不是以为时间戳是关于时间的,都去 new Date() 里面找方法了啊,我来告诉你们正确的吧 其实大家用 JS 里的 ...

  4. python之异步编程

    一.异步编程概述 异步编程是一种并发编程的模式,其关注点是通过调度不同任务之间的执行和等待时间,通过减少处理器的闲置时间来达到减少整个程序的执行时间:异步编程跟同步编程模型最大的不同就是其任务的切换, ...

  5. 资源的批量删除与替换(Project)

    <Project2016 企业项目管理实践>张会斌 董方好 编著 资源分配好以后,嗯,很满意! 可是!有人看了不满意,或者自己手贱分配错了,要改? 改就改呗,和分配有什么区别吗? 没有啊! ...

  6. Spring Boot程序插入时间和MySQL数据库显示时间不一样(设置数据库时区)

    首先查看数据库时区 show variables like "%time_zone%"; # 设置全局时区 mysql> set global time_zone = '+8 ...

  7. 【LeetCode】9. Palindrome Number 回文数

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 公众号:负雪明烛 本文关键词:回文数,回文,题解,Leetcode, 力扣,Python ...

  8. 【LeetCode】67. Add Binary 解题报告(Python)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 BigInteger类 模拟加法 日期 题目地址:h ...

  9. 【LeetCode】52. N-Queens II 解题报告(Python & C+)

    作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 全排列函数 回溯法 日期 题目地址:https:// ...

  10. 【LeetCode】554. Brick Wall 解题报告(Python)

    [LeetCode]554. Brick Wall 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fux ...