• 数据库的内连接和外连接的区别


    内连接

    指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。
    1.等值连接
    依据两个表中相同内容的字段进行连接
    表TESTA,TESTB,TESTC,各有A, B两列。
    在这里插入图片描述
    内连接

    内连接,即最常见的等值连接,例:

    SELECT  * 
    FROM  TESTA,TESTB
    WHERE  TESTA.A=TESTB.A
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    2.非等值连接
    依据两个表中内容相关列(非相同)字段进行连接
    3.自连接

    外连接:

    连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。

    左外连接:左边表数据行全部保留,右边表保留符合连接条件的行。
    1. 左外连接 left outer join 或者 left join

    左外连接就是在等值连接的基础上加上主表中的未匹配数据,例:

    SELECT  *
    FROM  TESTA 
    LEFT  OUTER  JOIN  TESTB 
    ON  TESTA.A=TESTB.A
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    右外连接:右边表数据行全部保留,左边表保留符合连接条件的行。
    右外连接 right outer join 或者 right join

    右外连接是在等值连接的基础上加上被连接表的不匹配数据

    SELECT  *
    FROM  TESTA 
    RIGHT  OUTER  JOIN  TESTB 
    ON  TESTA.A=TESTB.A
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述

    全外连接:左外连接 union 右外连接。
    全外连接 full outer join 或者 full join

    全外连接是在等值连接的基础上将左表和右表的未匹配数据都加上。

    SELECT  * 
    FROM  TESTA 
    FULL  OUTER  JOIN  TESTB
    ON  TESTA.A=TESTB.A
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    select

    from
    a
    join
    b
    on

    join
    c
    on

    where

    SELECT s.name, s.id, g.yuwen, sl.level
    FROM grade g
    JOIN student s
    ON s.id = g.id
    JOIN score_level sl
    ON g.yuwen BETWEEN sl.low AND sl.high
    where g.yuwen > 70;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    上面表示a表和b连接,然后a表再和c连接,其结果合并在一起。不是a表先连接b,其结果再和c连接
    where语句放在最后

  • 相关阅读:
    ChatGPT使用技巧整理
    [Numpy] np.where
    卷积神经网络
    阿里 P8 级别面试官分享出源码阅读技巧附 Java 源码和大厂真题
    Prototype(原型模式)
    Dubbo项目搭建(简单部署)
    供应化学试剂BHQ-1 氨基|BHQ-1 amine|1308657-79-5
    美图SaaS、有赞美业,求同存异的差异化角逐
    Quartz 基本使用,任务调度quartz详解,动态定时任务,job,Trigger,Scheduler
    CSS 面试题及答案
  • 原文地址:https://blog.csdn.net/m0_64803878/article/details/132768824