ORACLE_OCP之SQL_集合操作

ORACLE_OCP之SQL_集合操作

  • 集合操作准则

    • SELECT列表中的表达式必须在数字上匹配。
    • 后续查询中每列的数据类型必须与第一个查询中其对应列的数据类型匹配。
    • 括号可用于更改执行顺序。
    • ORDER BY子句只能出现在语句的最后
  • Oracle服务器和集合运算符

    • 除UNION ALL外,所有行都将自动消除。(重复)
    • 来自第一个查询的列名将出现在结果中。
    • 默认情况下,输出以升序排序,但UNION ALL除外
  • UNION ALL 运算符

    • UNION ALL运算符从两个查询返回行,包括所有重复项。
    • SELECT job_id, department_id
      FROM employees
      UNION ALL
      SELECT job_id, department_id
      FROM retired_employees
      ORDER BY job_id;

  • UNION 操作

    • 消除重复后,UNION运算符从两个查询返回行。
    • SELECT job_id
      FROM employees
      UNION
      SELECT job_id
      FROM retired_employees

UNION去重,UINON ALL不去重,并且如果缺少对应的列的话,需要找到对应的类型使用to_xxx(null)这种形式进行补充,也可以让语句正确执行

UNION ALL 没有指定的排序方式,但是UNION按照第一个查询中的第一列进行升序排序输出

  • INTERSECT 运算符

    • INTERSECT运算符返回两个查询共有的行。
    • SELECT manager_id,department_id
      FROM employees
      INTERSECT
      SELECT manager_id,department_id
      FROM retired_employees

  • MINUS 运算符

    • MINUS运算符返回第一个查询结果但第二个查询结果集中不存在的所有不同行。
    • SELECT employee_id, job_id
      FROM employees
      WHERE department_id = 80
      MINUS
      SELECT employee_id, job_id
      FROM retired_employees
      WHERE department_id = 90;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值