zoukankan      html  css  js  c++  java
  • SQL 等值连接(内连接)、自然连接(Out join,Left join,Right join)的区别

     https://www.cnblogs.com/hu-yewen/p/5821645.html

      首先来看自然连接的定义:

          自然连接:是一种特殊的等值连接,它要求两个关系进行比较的分量必须是相同的属性组,并且在结果集中将重复属性列去掉。

          一个简单的例子,将下列关系R和S进行自然连接:

    R:

    A    B     C

    a    b     c

    b    a     d

    c    d     e

    d    f     g

    S:

    A    C    D

    a    c    d

    d    f    g

    b    d    g

          首先要对两个关系中相同属性组的分量进行比较,即比较R.A,R.C和S.A,S.C。 显然在R中只有第一行和第二行满足条件,因此进行连接得到结果:

    A B C D

    a b c d

    b a d g

          再来看一道2008年软件设计师考试的题目:

          若关系R、S如下所示,则R与S自然连接后的属性列数和元组个数分别为()

    R:

    A B C D

    a b c d

    a c d c

    a d g f

    a b g f

    S:

    C D

    c d

    g f

       分析,首先进行比较,容易得出R中有三个元组(即三行,1、3、4行)符合条件,所以元组个数为3,再然后去掉重复的列,显然仍然剩下A、B、C、D四个列。

    ========================

    https://blog.csdn.net/weixin_38134491/article/details/89415925

    SQL 等值连接(内连接)、自然连接(Out join,Left join,Right join)的区别

    连接join 是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。

    连接运算中有两种最为重要也最为常用的连接,一种是等值连接,一种是外连接。

    等值连接

    关系R与关系S 等值连接后的结果

    自然连接(natural join)

    自然连接是一种特殊的等值连接。比较两幅图就可以看出,自然连接在结果中把重复的属性列去掉。

    一般的连接操作是从行的角度进行运算,但是自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。

    在关系数据库中,数据库的重构往往是不可避免的。重构数据库最常见的是将一个基本表“垂直”地分成多个基本表。例如:将学生关系:

    Student(Sno, Sname, Ssex, Sage, Sdept)

    分为SX(Sno, Sname, Sage)和SY(Sno, Ssex, Sdept)两个关系。这时原表Student为SX表和SY表自然连接的结果。

    -------------------------------------------------------

    外连接(outer join)

    左外连接(Left Outer Join)

    Left Join 就是一定要把左边保证了,右边没有的就填NULL

    右外连接(Right Outer Join)

    Right Join 就是一定要把右边保证了,左边没有的就填NULL

    总结

    Left join 是 Left outer join 的简称
    Right join 是 Right outer join 的简称

    在做自然连接时被舍弃的元组叫悬浮元组(dangling tuple)

    Left outer join就是保留了左边关系R中的悬浮元组
    Right outer join就是保留了右边关系S中的悬浮元组
    Outer join就是把悬浮元组保存在结果中,在其他属性上填NULL

    ==============

    https://www.cnblogs.com/fnlingnzb-learner/p/6343828.html

  • 相关阅读:
    Linux 实用指令(5)--组管理和权限管理
    Linux 实用指令(4)
    Linux用户管理 (3)
    Oracle如何用单字段或多字段进行查重
    SQL中的左连接与右连接,内连接有什么不同
    Markdown语法--整理
    应用程序无法正常启动0xc000007b
    Linux开机、重启和用户登录注销(2)
    Linux vi和vim编辑器(1)
    SecureCRT 64位 破解版和安装,以及解决乱码问题
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/12317080.html
Copyright © 2011-2022 走看看