MySQL之联结(join)操作类型概念总结

来源:互联网 发布:周岩的淘宝店叫什么 编辑:程序博客网 时间:2024/06/05 19:03

连结(join)操作有好几种类型,很容易混淆掉的,今天我做一总结,以做更深层次的理解。

从联结约束检举程序上来分,联结操作可以有以下三种:

    A、条件联结:联结时要有联结条件的

    B、同等联结:联结时要求两个属性值必须相等 

    C、笛卡儿积(cross join 交叉联结):无须满足任何条件。

下面我列出在RDBS中有可能遇到的各种JOIN操作的类型:

    1、内联结:对两个关系进行联结,返回匹配的元祖。

    2、外联结:分为左、右、全外联结,至少返回FROM子句所列出的其中的一个表或视图的全部行——只要那些行满足全部的WHERE搜索条件。但左、右、全外联结返回结果大有不同,下面分作解释。

           左外联结:返回位于联结操作符左侧的那个表的全部行;

          右外联结:对两个关系进行联结,返回匹配的元祖和位于联结操作符右侧的那个表的全部元祖;

          全外联结:返回位于联结操作符左、右两侧的两个表的所有元祖。

  注意:不匹配的行的属性值将返回为空值,比如某字段不匹配,将以空值null的形式显示于结果中。

   3、叉积联结:对两个关系进行联结,把第一个关系里的每一个元祖映射到另一个关系里的全部元祖上。

   4、并,对两个有着同样结构的关系进行联结,只返回满足条件的匹配,相当于数据集合理论中的“并”操作。

   5、交,对两个有着同样结构的关系进行联结,只返回不满足条件的匹配,相当于数据集合理论中的“交”操作。

0 0
原创粉丝点击