Mysql基础入门(四)Join连接查询


在这里插入图片描述

Join连接概述

Join连接查询就是将多个表联合起来查询,连接查询方式有内连接、外连接、自然连接、交叉连接。连接查询使得可以同时查看多张表中数据。

  • 内连接:匹配结果是保留符合匹配结果的记录。
  • 外连接:与内连接不同的是不管匹配符不符合都保留,根据外连接连接方式来决定保留哪张表,比如保留左表的话,那么左表无法匹配右表时,保留左表数据,然后置右表字段数据为null.
  • 自然连接:有条件连接,自动依据“同名字段”连接(多个同名字段就都作为条件)。
  • 交叉连接cross join:无条件连接,将每一条记录与另外一个表的每一条记录连接(笛卡尔积),结果是字段数等于原来字段数之和,记录数等于之前各个表记录数之乘积。

2.内连接

  • 基础语法:
select 列名 from1 
inner join2 on1.字段 =2.字段;
  • 结果:保留表1和表2字段相同的记录,并将两份记录拼接。
  • 实例:在这里插入图片描述
-- 内连接
select * from student 
inner join class on student.cid = class.cid;

结果保留cid相同的记录
在这里插入图片描述

3.外连接

  • 基础语法:
  • 左外连接:不管是否匹配,均保留左表
select 字段列表 from 左表 
left join 右表 on 左表.字段 = 右表.字段;
  • 右外连接:不管是否匹配,均保留右表
select 字段列表 from 左表 
right join 右表 on 左表.字段 = 右表.字段;

2.1 左连接

  • 实例:在这里插入图片描述
-- 左连接
select * from student 
left join class on student.cid = class.cid;

结果保留左表的记录
在这里插入图片描述

2.2 右连接

-- 右连接
select * from student 
left join class on student.cid = class.cid;

结果保留右表的记录
在这里插入图片描述

3. 自然连接

自动匹配连接条件,系统以字段名字作为匹配模式(同名字段就作为条件,多个同名字段就都作为条件)

自然内连接:类似内连接,但不提供连接条件。
自然外连接:类似外连接,但不提供连接条件。
  • 语法:
  1. 自然内连接
select 字段列表 from 表名 
natural join 表名;
  1. 自然外连接
select 字段列表 from 表名 
natural left\right join 表名;
  • 实例
    自然内连接
select * from student 
natural join class;

在这里插入图片描述
自然内连接

select * from student 
natural left join class;

在这里插入图片描述

4. 交叉连接

语法:

select 字段列表 from 表名 cross join 表名;
select 字段列表 from 表名 ,表名;

将每一条记录与另外一个表的每一条记录连接

select * from student cross join class;
select * from student,class;

在这里插入图片描述

5. 使用表别名

在多个表中,为了区分每个表,以及简便使用,可以使用表别名。

  • 举例:
    使用表原来的名称,会比较复杂
select * from student 
inner join class on student.cid = class.cid;-- 原本结果

对表起别名,简化

select id,name,gender,c.cid,cname 
from student as s 
inner join class as c 
on s.cid = c.cid;-- 使用表别名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值