首页 > 数据库 >14、Oracle中的Set运算符

14、Oracle中的Set运算符

时间:2024-08-10 13:16:35浏览次数:13  
标签:Set UNION 运算符 employee job 操作符 Oracle id SELECT

最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。
视频链接:
【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用
如果有侵权,请联系删除,谢谢。

学习目标:

  • 描述 SET 操作符
  • 将多个查询用 SET 操作符连接组成一个新的查询
    • UNION/UNION ALL
    • INTERSECT
    • MINUS
  • 排序:ORDER BY

1、 SET 操作符

1.1、UNION 操作符

UNION 操作符返回两个查询的结果集的并集

UNION 操作示例

SELECT employee_id, job_id
FROM   employees
UNION
SELECT employee_id, job_id
FROM   job_history;

1.2、UNION ALL 操作符

UNION ALL 操作符返回两个查询的结果集的并集。对于两个结果集的重复部分,不去重。

UNION ALL操作shili

SELECT employee_id, job_id, department_id
FROM   employees
UNION ALL
SELECT employee_id, job_id, department_id
FROM   job_history
ORDER BY  employee_id;

1.3、INTERSECT 操作符

INTERSECT 操作符返回两个结果集的交集

INTERSECT操作示例

SELECT employee_id, job_id
FROM   employees
INTERSECT
SELECT employee_id, job_id
FROM   job_history;

1.4、MINUS 操作符

MINUS操作符:返回两个结果集的差集

假设有集合A和B,所有属于A且不属于B的元素的集合被称为A与B的差集。

示例:对于集合A = {a, b, c, d}和集合B = {b, c, w},则A与B 的差集为{a, d}

MINUS操作示例

SELECT employee_id,job_id
FROM   employees
MINUS
SELECT employee_id,job_id
FROM   job_history;

1.5、使用 SET 操作符注意事项

  • 在SELECT 列表中的列名和表达式在数量和数据类型上要相对应

  • 括号可以改变执行的顺序

  • ORDER BY 子句:

    • 只能在语句的最后出现
    • 可以使用第一个查询中的列名, 别名或相对位置
  • 除 UNION ALL之外,系统会自动将重复的记录删除

  • 系统将第一个查询的列名显示在输出中

  • 除 UNION ALL之外,系统自动按照第一个查询中的第一个列的升序排列

2、匹配各SELECT 语句举例

SELECT department_id, TO_NUMBER(null) 
       location, hire_date
FROM   employees
UNION
SELECT department_id, location_id,  TO_DATE(null)
FROM   departments;

SELECT employee_id, job_id,salary
FROM   employees
UNION
SELECT employee_id, job_id,0
FROM   job_history;

使用相对位置排序举例

COLUMN a_dummy NOPRINT
SELECT 'sing' AS "My dream", 3 a_dummy
FROM dual
UNION
SELECT 'I`d like to teach', 1
FROM dual
UNION 
SELECT 'the world to', 2
FROM dual
ORDER BY 2;

标签:Set,UNION,运算符,employee,job,操作符,Oracle,id,SELECT
From: https://www.cnblogs.com/huageyiyangdewo/p/18352093

相关文章

  • 15、Oracle中的高级子查询
    最近项目要用到Oracle,奈何之前没有使用过,所以在B站上面找了一个学习视频,用于记录学习过程以及自己的思考。视频链接:【尚硅谷】Oracle数据库全套教程,oracle从安装到实战应用如果有侵权,请联系删除,谢谢。学习目标:书写多列子查询在FROM子句中使用子查询在SQL中使用单列子......
  • K11475 丑数[Ugly Numbers,UVa136](set解法)
    题目描述丑数是指不能被2,3,5以外的其他素数整除的数。然后把丑数从小到大排列起来,前11个数如下:1,2,3,4,5,6,8,9,10,12,15,...编写一个程序,计算出第1500个丑数并输出。输入格式无输出格式输出为一行计算出的第1500个丑数替换下面句子中的‘<number>’,再输出。The1500'thuglynum......
  • 算术运算符
    staticvoidMain(string[]args){//算术运算符:+-*/%//演示:某学生三门功课的成绩分别是:语文85数学95英语75求总分和平均分;doubledouChinese=85;doubledouMath=95;doub......
  • Oracle事务是怎么练成的
    什么是事务事务是数据库管理系统执行过程的一个逻辑单位,由一系列有限的数据库操作序列构成,事务必须满足‌ACID属性。ACID理论是数据库中最重要的概念之一,分别代表原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。原子性是指事务是一个不可分割的......
  • C语言入门零基础:6、运算符
    一、运算符分类:        1、赋值运算符:=         2、算术运算符:+-*/%(取余取模)        3、关系运算符:> >= < <= ==!=        4、逻辑运算符:&& ||!        5、其他运算符:++--?: 复合 += -= ......
  • Oracle数据库巡检
    数据库巡检列表序号业务系统1主机名2操作系统4单机/RAC4IP地址5地址类型6数据类型7数据库版本8实例名巡检方案检查方面具体检查内容检查标准集群配置集群软件版本集群软件版本要等于或高于DB软件版本集群服务状态各种服务状态(除GSD外)需是ONLINE注:使用asfforrac的环境下......
  • PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space
    PointNet++:DeepHierarchicalFeatureLearningonPointSetsinaMetricSpaceAbstract这篇论文的摘要介绍了PointNet++,是一个用于度量空间中点集的深度层次化特征学习的神经网络。PointNet++是PointNet的扩展,它通过递归地在输入点集的嵌套划分上应用PointNet,利用度量空......
  • PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
    Abstract通常情况下研究人员会把点云数据转换为规则的3D体素网格或图像集合。这导致数据不必要的庞大,所以本文引入了一种新型的神经网络,能很好的尊重点云的排列不变性,名称是pointnet,并且能够应用于分类、分割、场景解析等下游任务。同时,网络的架构简单而且非常的高效。Intro......
  • Android 13 移植EthernetSettings/Ethernet更新
    移植EthernetSettingsAndroid13在Settings搜索没有发现以太网设置,应该是移除了,但是客户的设备需要,所以移植Android11的.以太网相关的功能在Android13中进行模块化,提取到packages/modules/Connectivity/中,EthernetManager相关代码从framework移到packages/modules/Conne......
  • 如何关闭redis的自动清理缓存,声明式事务(含有redis)如何解决,redis setnx锁的使用。
    20240809一、解决redis数据被删除的方案1、发现问题2、解决注意!!二、声明式事务(当有redis的时候)1.先看代码2.@Transactional(rollbackFor=Exception.class)3.如何解决redis在事务里面,如何保证原子性和一致性3.1我们可以用trycatchfinally来实现3.2我们可以让red......