ORACLE_OCP之SQL_内外连接(IN-OUTER)

ORACLE_OCP之SQL_内外连接(IN-OUTER)

  • 默认为内连接

    • 输出匹配内容:因为是默认,所以以下写法都是可以的

    //where 表示
    SELECT * FROM EMPLOYEES E LEFT WHERE DEPARTMENTS D
    ON E.DEPARTMENT_ID=D.DEPARTMENT_ID;
    //直接jion表示
    SELECT * FROM EMPLOYEES E JOIN DEPARTMENTS D
    ON E.DEPARTMENT_ID=D.DEPARTMENT_ID;
    //inner jion显示表示
    SELECT * FROM EMPLOYEES E LEFT INNER JION DEPARTMENTS D
    ON E.DEPARTMENT_ID=D.DEPARTMENT_ID;

  • 外连接:左外连接、右外连接

    • 左外连接

    //说明:在左外连接时输出LEFT JOIN左侧(驱动表)的所有内容,而LEFT JOIN右侧的表只输出匹配内容(匹配表)
    SELECT * FROM EMPLOYEES E LEFT JOIN DEPARTMENTS D
    ON E.DEPARTMENT_ID=D.DEPARTMENT_ID;

    特别注意:无论驱动表匹不匹配都会输出包括null值,匹配表如果没有匹配项则以null输出

    • 右外连接

    //说明:在左外连接时输出RIGHT JOIN右侧(驱动表)的所有内容,而RIGHT JOIN左侧的表只输出匹配内容(匹配表)
    SELECT * FROM EMPLOYEES E RIGHT JOIN DEPARTMENTS D ON E.DEPARTMENT_ID=D.DEPARTMENT_ID;

    特别注意:无论驱动表匹不匹配都会输出包括null值,匹配表如果没有匹配项则以null输出

    • 全外连接

    //说明:在全外连接时,所有表都外驱动表,输出所有驱动表的内容,不管是否匹配,一律输出,无匹配项时以null填充
    SELECT * FROM EMPLOYEES E FULL JOIN DEPARTMENTS D ON E.DEPARTMENT_ID=D.DEPARTMENT_ID;

  • Cartesian Products(笛卡尔积)

    • 笛卡尔积是一个表的每一行与另一个表的每一行的连接(两个表行数的乘积)
    • 笛卡尔积会产生大量行,并且结果很少有用

    SELECT * FROM EMPLOYEES E CROSS JOIN DEPARTMENTS D;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值