• Oracle篇 之 多表查询


    一、概念

    从多个表中查询数据时,需要在表和表间建立连接,一般使用主外键建立连接

    二、连接种类

    1.

    等连接:连接条件使用等号

    非等连接:连接条件使用等号以外的其它符号

    2.

    内连接:根据指定的连接条件进行连接查询,满足连接条件的数据才会出现在结果集(最常见的等值连接)

    外连接:在内连接的基础上,将某个连接表不符合连接条件的记录加入结果集

    3.自连接:自身表中的列关联自身表中的其它列

    4.集合操作符

    union:两个集合的并集,去掉重复内容

    union all:两个集合的并集,重复内容取2

    minus:第一个集合减去和第二个集合相交的内容

    intersect:两个集合的交集

    三、连接查询操作

    1).连接查询语法

    select last_name,name

    from s_emp,s_dept

    where s_emp.dept_id=s_dept.id;

    左外连接:A left outer join B-----中的A为基准,遇到A中不符合条件的也加入, B中用null填充,包含左边表的全部行

    基本写法:

    1. Select  e.last_name,d.name

    From s_emp e left outer join s_dept d

    On e.dept_id=d.id;

     Oracle特有写法:

    2. Select  e.last_name,d.name

    From s_emp e ,s_dept d

    Where  e.dept_id(+)=d.id;

    右外连接:A right outer join B -----B为基准,遇到B中不符合条件的也加入 A中用null填充,包含右边表的全部行

    全外连接(包含左、右两个表的全部行,不管另外一边的表中是否存在与它们匹配的行)

    查询所有员工名、员工部门名(员工没有分配部门、部门没有员工)?

    select e.last_name,d.name

    from s_emp e full outer join s_dept d

    on e.dept_id=d.id;

    select e.last_name,d.name

    from s_emp e,s_dept d

    where e.dept_id(+)=d.id(+); //Errororacle没有全外连接特有写法

    2)集合操作符

    eg:

    union:两个集合的并集,去掉重复内容

    select e.last_name,d.name

    from s_emp e,s_dept d

    where e.dept_id=d.id(+)

    union

    select e.last_name,d.name

    from s_emp e,s_dept d

    where e.dept_id(+)=d.id;

  • 相关阅读:
    ABAP常用函数归纳
    abap 优化之ST05
    对统驭科目和特别总账标志的理解
    会计凭证修改函数的使用
    会计凭证替代 OBBH
    屏幕切换
    se37 函数中的异常使用
    清帐函数的使用
    使用Servlet和JSp在浏览器上实现对数据库表的增删改查(新手)
    Java中的Xml配置文件(新手)
  • 原文地址:https://www.cnblogs.com/wskb/p/10754692.html
Copyright © 2020-2023  润新知