zoukankan      html  css  js  c++  java
  • SQL之连接查询

    这几天忙着笔试、面试,遇到了好几个关于数据库的试题,当然只是简单的多表查询。我第一时间都是选择select...from...where...group by...having...这个结构去写的。但发现它给的选项中还包含了join,平时用数据库不是很频繁,只记得join是把多个表上相同字段的记录连接生成新记录,且相同记录只出现一次。为了彻底弄清楚这个问题,特意去复习了一下《数据库系统概论》。

    一、join的分类

    SQL中join分为两类:普通连接(内连接)和外连接。内外连接的区别体现在对没有匹配到字段的记录的处理方式上,内连接只生产匹配记录对于的新记录,对于没有匹配的记录忽略。外连接分为左外连接,右外连接和全外连接,不同的子类外连接在处理不同匹配项上不同。

    二、内连接

    join:生成参与join的两个表的笛卡尔积。

    natural join:两个表中相同列名的值相等构成的新记录。

    natural join using:只是用指定相同属性连接生成新表

    natural join on:只要满足on后谓词为真的记录都会被拼凑在新表中。

    三、外连接

    natural left outer join:natural join的结果加上第一个表中未匹配的记录后接null生成的新记录。

    natural right outerjoin:natural join的结果加上null后接第二个表中未命中的记录生成的新记录。后

    natural full outer join:natural join的结果加上第一个表中未匹配的记录后接null生成的新记录加上null后接第二个表中未命中的记录。

  • 相关阅读:
    关于c#中的委托和事件
    Unity3d中默认函数调用顺序(MonoBehaviour)
    u3d 摄像机详解
    u3d中的坐标系
    u3d中的向量 vector3 vector2
    u3d中的INput
    C#构造函数
    解析C#中[],List,Array,ArrayList的区别及应用
    Mybatis(七) mybatis的逆向工程的配置详解
    Mybatis(六) Spring整合mybatis
  • 原文地址:https://www.cnblogs.com/fallblank/p/5834081.html
Copyright © 2011-2022 走看看