chapter08_联接与多张表的操作

  • AS 既可以用作列的别名,也可以用作表的别名

    示例

      SELECT profession AS mc_prof FROM my_contacts AS mc GROUP BY mc_prof ORDER BY mc_prof;
    
  • CROSS JOIN 交叉联接

    (1) 相当于对两张表做笛卡尔积

    (2) CROSS JOIN 一般不作实际使用,主要用途是检测的运行速度

    (3) 交叉连接属于内连接,其他的内连接方式基本上是交叉连接的结果去掉某些行

    (4) 示例

      SELECT t.toys, b.boy FROM toys AS t CROSS JOIN boys AS b;
    
  • INNER JOIN 内联接

    (1) 在交叉连接的基础上添加了某些条件

    (2) 等值连接:联接的条件使用 = 连接

    示例

      SELECT boy.boys, toy.toys FROM boys INNER JOIN toys ON boys.toy_id = toys.toy_id;
    

    (3) 不等值联接: 属于内联接 且 不属于 等值联接

    示例

      SELECT boy.boys, toy.toys FROM boys INNER JOIN toys ON boys.toy_id <> toys.toy_id;
    

    (4) 自然联接:两个关系在共同属性上的等值连接。即联接条件是两张表的相同名称的列上的值相等

    示例

             boys                             toys
       ----------------                  ----------------
      boy_id  | toy_id                    toy_id | toy
      ----------------                   ----------------
              |                                  |
      ----------------                   ----------------
    
      SELECT boy.boys, toy.toys FROM boys NATURAL JOIN toys;
    

    等价于

      SELECT boy.boys, toy.toys FROM boys INNER JOIN toys ON boys.toy_id = toys.toy_id;
    

    (5) 区分等值连接和不等值的连接的原因是内部查询方式?(个人理解)

你可能感兴趣的:(chapter08_联接与多张表的操作)