zoukankan      html  css  js  c++  java
  • 内连接,外连接,交叉连接的区别

    连接查询包括合并、内连接、外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要。
    只有真正了解它们之间的区别,才能正确使用。
    1Union
    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
    UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。
    当 ALLUNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。
    注意:使用UNION时,两张表查询的结果有相同数量的列、列类型相似。
    2INNER JOIN(内连接)
    INNER JOIN(内连接),也成为自然连接
    作用:根据两个或多个表中的列之间的关系,从这些表中查询数据。
    注意: 内连接是从结果中删除其他被连接表中没有匹配行的所有行,所以内连接可能会丢失信息。
    重点:内连接,只查匹配行。
    3、外连接
    与内连接相比,即使没有匹配行,也会返回一个表的全集。
    外连接分为三种:左外连接,右外连接,全外连接。对应SQL:LEFT/RIGHT/FULL OUTER JOIN。通常我们省略outer 这个关键字。写成:LEFT/RIGHT/FULL JOIN。
    重点:至少有一方保留全集,没有匹配行用NULL代替。
    1LEFT OUTER JOIN,简称LEFT JOIN,左外连接(左连接)
    结果集保留左表的所有行,但只包含第二个表与第一表匹配的行。第二个表相应的空行被放入NULL值。
    4CROSS JOIN(交叉连接)
    交叉连接。交叉连接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉连接也称作笛卡尔积。 
    简单查询两张表组合,这是求笛卡儿积,效率最低。
  • 相关阅读:
    马士兵Java学习之路
    @Component, @Repository, @Service的区别
    编译器警告:CGContextSaveGState: invalid context 0x0
    Other Linker Flags到底是什么
    Xcode常用快捷键(持续更新-20160811)
    iOS应用文件夹
    iOS compare 字符串比较
    去掉UITableView多余的空白行分割线
    iOS 查询数组中的对象
    UISearchController使用
  • 原文地址:https://www.cnblogs.com/lcycn/p/8126590.html
Copyright © 2011-2022 走看看