东软实训之数据库(5)

  ##多表连接

    #连接

      连接是在多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据。

      语法为

      

      在 WHERE子句中书写连接条件。

      如果在多个表中出现相同的列名,则需要使用表名作为来自该表的列名的前缀。

       N个表相连时,至少需要N-1个连接条件。

    #连接的类型

        

    #笛卡尔积

      笛卡尔积是: 第一个表中的所有行和第二个表中的所有行都发生连接。

      笛卡尔积在下列情况产生:  

        • 连接条件被省略
        • 连接条件是无效的

      为了避免笛卡尔积的产生,通常需要在WHERE子句中包含一个有效的连接条件。

      

    #等值连接

       

    #使用表的别名

       

    #非等值连接

       

       

    #多表连接的写法

  1. 分析要查询的列都来自于哪些表,构成FROM子句。
  2. 分析这些表之间的关联关系,如果表之间没有直接关联关系,而是通过另一个中间表关联,则也要在FROM子句中,补充中间关联表;接下来在WHERE子句中补充表之间的关联关系,通常N个表,至少要有N-1个关联关系。
  3. 分析是否还有其它限制条件,补充到WHERE子句的表关联关系之后,作为限制条件。
  4. 根据用户想要显示的信息,补充SELECT子句。
  5. 分析是否有排序要求,如果排序要求中还涉及到其它表,则也要进行第2步,添加表之间的关联关系。

    #自身连接

      自身连接,也叫自连接,是一个表通过某种条件和本身进行连接的一种方式,就如同多个表连接一样。

       

       


    #左外连接

      左外连接以FROM子句中的左边表为基表,该表所有行数据按照连接条件无论是否与右边表能匹配上,都会被显示出来。

      


    #本章总结

  • 为什么使用多表连接?
  • 多表连接类型
  • 等值连接
  • 两表以上的连接
  • 不等值连接
  • 自身连接
  • 左外连接
  • 右外连接
  • SQL99中各种连接的写法

猜你喜欢

转载自www.cnblogs.com/destinywxy/p/9326314.html