美文网首页
连接查询一:基本概念与用法

连接查询一:基本概念与用法

作者: 刘彦青 | 来源:发表于2019-12-04 15:14 被阅读0次

    示例数据:

    连接(JOIN)

    所谓连接就在表关系的笛卡儿积数据记录中,按照相应字段值的比较条件进行选择生成一个新的关系。连接分为内连接(INNER JOIN)、外连接(OUTER JOIN)、交叉连接(CROSS JOIN).

    内连接(INNER JOIN)

    • 自然连接(NATURAL JOIN):自然连接操作就是表关系的笛卡儿积中, 根据表关系中相同名称的字段自动进行记录匹配(同名字段值相等),然后去掉重复的字段。

    • 等值连接:等值连接操作就是表关系的笛卡儿积中,选择所匹配字段值相等(=符号)的数据记录。

    • 不等连接:不等连接操作就是表关系的笛卡儿积中, 选择所匹配字段值不相等(!-符号)的数据记录。

    外连接(OUTER JOIN)

    所谓外连接(OUTER JOIN),就是在表关系的笛卡儿积数据记录中,不仅保留表关系中所有匹配的数据记录,而且还会保留部分不匹配的数据记录。按照保留不匹配条件数据记录来源可以分为左外连接(LEFT OUTER JOIN)、右外连接(RIGHT OUTER JOIN)和全外连接(FULL OUTER JOIN)。

    • 左外连接操作就是表关系的笛卡儿积中,除了选择相匹配的数据记录,还包含关联左边表中不匹配的数据记录。 (右表不存在的字段为null)

    • 右外连接操作就是表关系的笛卡儿积中,除了选择相匹配(相等)的数据记录,还包含关联右边表中不匹配的数据记录。(左表不存在的字段为null)

    • 全外连接操作就是表关系的笛卡儿积中,除了选择相匹配(相等)的数据记录,还包含关联左右两边表中不匹配的数据记录。 (左右表不存在的字段为null)

    内连接语法

    一种方式在FROM子句中利用逗号 (,)区分多个表,在WHERE子句中通过逻辑表达式来实现匹配条件,从而实现表的连;

    SELECT fieldl field2...fieldn FROM join_tablenamel , join_tablename2 【 , join_tablenamen】 WHERE join_condition
    

    另一种是ANSI连接语法形式,在FROM子句中使用"JOIN...ON"关键字,而连接条件写在关键字ON子句中, MySQL软件推荐使用ANSI语法形式的连接。

    SELECT fieldl field2...fieldn FROM join_tablenamel  JOIN join_tablename2 【 JOIN join_tablenamen】 ON join_condition
    

    fieldn表示所要查询的字段名字,

    join_tablename1和 join_tablename2表示所连接的表

    join_condition 标识过滤条件

    多张表用多个JOIN关联

    • 自连接就是指表与其自身进行连接 。

    • 等值连接就是在关键字ON后的匹配条件中通过等于关系运算符(=)来实现等值条件。

    • 不等连接就是在关键字ON后的匹配条件中通过除了等于关系运算符来实现不等条件外,可以使用的关系运算符包含“>"、">="、“<"、“<"和“1”等运算符号。

    小结

    • 最常用的是内连接中的等值连接和不等连接
    • 连接查询有两种写法:
      • FROM 后面跟随需要连接的表, 中间用,连接表。
      • FROM后面跟随需要连接的表, 中间用JOIN连接表,条件写在ON后面。
    • 连接查询的效率高于子查询

    **** 码字不易如果对你有帮助请给个关注****

    **** 爱技术爱生活 QQ群: 894109590****

    相关文章

      网友评论

          本文标题:连接查询一:基本概念与用法

          本文链接:https://www.haomeiwen.com/subject/sullgctx.html