您好,欢迎来到九壹网。
搜索
您的当前位置:首页如何使用mysql表连接

如何使用mysql表连接

来源:九壹网


为什么使用表连接

  • 什么是表连接?

  • 如果数据来自多个表,那么可以采用链接查询的方式来实现。因此表连接就是多个表连接合在一起实现查询效果

  • 表连接的原理

  • 表连接采用的是笛卡尔乘积,称之为横向连接。

  • 笛卡尔乘积

  • 表连接的基本原理就是采用笛卡尔乘积。笛卡尔乘积是指将两张表的所有数据相连,最后连接的结果数为两张表数量的乘积。

  • 从上面图示可以看出表联接是将两张表的数据相乘而得到的结果,第一张表的每条记录都会和第二张表的所有记录相连。
    在数据库中将多表相连需要使用JOIN关键字。
    标准结构

  •     

  • 笛卡尔乘积出来的结果数量太多,其中有不少数据是没用的。因为我们在建表时为了表示他们的关系,都会建立外键来确定关系,所以在表联接时就要根据其外键来过滤没用的数据。使用ON关键字来确定其是否匹配。
    完整结构

  •     
    --MySQL中表连接分为:内连接,外链接,都是横向连接 还有oracle的纵向连接

    --使用表连接 -- 内连接 第一种语法 inner join inner可以省略

    1. select * from 主表名 as 主别名 join 连接表名 as 连接的别名 on 主表名.列名=连接表名.列名 where 条件

    -- 外链接:

    定义:外联接是指不管有没有匹配,被定义了外联接的表数据都要出现在结果中。比如左外联接,那么在JOIN左边的表就被定义为外联接,那么此表中所有数据都会出现在查询结果中。右外联接则是JOIN右边的表为外联接表。全外联接就是JOIN左右两张表都是外联接表。

  • 左外联接
    用法:LEFT OUTER JOIN 或 LEFT JOIN

  • 右外联接
    用法:RIGHT OUTER JOIN 或 RIGHT JOIN

  • 全外联接
    用法:FULL OUTER JOIN 或 FULL JOIN

  • 注意:MYSQL不支持全外联接

  • --自连接

    定义:自联接其实就是内联接或外联接的一种特例,同样可以使用INNER JOIN 或 OUTER JOIN。
    自联接所联接的表是来自于同一张表。

  • 举例:一张存放员工信息的表,每个员工有个直属领导。当然直属领导也是员工,所以员工信息和他们的领导信息都再一张表中。下面是表结构:

  • Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

    违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

    本站由北京市万商天勤律师事务所王兴未律师提供法律服务