10-MySQL--连接查询(交叉连接+内连接+外连接+自然连接)+using关键字+多表连接

本文详细介绍了MySQL的四种连接查询类型:交叉连接、内连接、外连接(左连接和右连接)以及自然连接。重点讨论了各种连接查询的原理、应用场景和使用语法,并提到了using关键字在连接查询中的作用。强调了内连接和外连接在数据匹配上的差异,以及避免使用无意义的交叉连接。
摘要由CSDN通过智能技术生成

一、连接查询

1、连接查询:将多张表连接到一起进行查询(会导致记录数(行)和字段数(列)发生改变)

2、连接查询的意义:关系型数据库,实体(表)与实体之间存在很多联系。表的设计,遵循着关系来设计(一对一、一对多和多对多)。通常,在实际操作的过程中,需要利用这层关系来保证数据的完整性

3、连接查询:join。使用方式:左表 join 右表

(1)左表:在join关键字左边的表

(2)右表:在join关键字右边的表

4、连接查询分类:MySQL中将连接查询分成四类:交叉连接、内连接、外连接(左连接+右连接)和自然连接

二、交叉连接

1、交叉连接:cross join。将两张表的数据彼此交叉,结果全保留

2、原理

(1)从一张表中依次取出每一条记录

(2)将取出的每一条记录都与另外一张表的所有记录进行匹配

(3)没有任何匹配条件,所有的结果都保留(无条件匹配)

(4)记录数 = 第一张表的记录数 * 第二张表的记录数

         字段数 = 第一张表的字段数 * 第二张表的字段数

(5)最终形成的结果叫做笛卡尔积

3、基本语法

    -- 交叉连接
    左表 cross join 右表;    -- 等价于:多表数据源 "from 左表, 右表;"
    -- 交叉连接
    -- my_student cross join my_class:是数据源
    select * from my_student cross join my_class;

    -- 等价于
    select * from my_student, my_class;

4、交叉连接是为了保证结构的完整性。但实际上交叉连接(笛卡尔积)没有任何意义,应该尽量避免使用(因为交叉连接没有数据的需要,而且会导致数据量指数级别增长,导致内存消耗,服务器负荷增加)

5、应用:交叉连接产生的结果是笛卡尔积,没有实际应用

三、内连接

1、内连接:[inner] join。从一张表中取出所有的记录去另外一张表中,使用匹配条件进行匹配。匹配成功则保留,匹配失败则放弃。最终获取的是能在另一张表中匹配到的数据(左右两张表中有连接条件匹配,不匹配的忽略)

注:内连接匹配的时候,必须保证匹配到才会保存(左表根据条件,匹配到右表的数据,左表中的对应记录才会保存)

2、原理

(1)从第一张表中取出一条记录,然后去另外一张表中进行匹配

(2)使用匹配条件进行匹配

(3)匹配成功,左表数据保留;匹配失败,左表数据被舍弃

3、基本语法

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值