数据库表的连接方式

本文详细探讨了数据库表的四种主要连接方式,包括笛卡尔积、内连接、外连接(全外、左外、右外)以及联合查询(Union与Unionall)。通过实例解析,展示了如何在实际操作中运用这些技术,以高效地整合和分析数据。
摘要由CSDN通过智能技术生成

数据库表的连接方式

先总体概述一下:一般用的是join 和 union

1. 笛卡尔积:join
2. 内连接:inner join on
3. 外连接:全外连接(full join on),左外连接(left join on),右外连接(right join on)
4. 联合查询:Union 和Union all

用于测试的两张表:
在这里插入图片描述

1.笛卡尔积 (join)

两表关联,把左表的列和右表的列通过笛卡尔积的形式表达出来。

select * from t1 join t2

结果:
在这里插入图片描述

2.内连接 (inner join on)

两表关联,保留两表中交集的记录。

select * from t1 inner join t2 on t1.id = t2.id;

在这里插入图片描述
结果如下:
在这里插入图片描述

3.外连接

3.1 全外连接(full join on)

两表关联,两表的内容均保留,没有关联的字段用null表示。
在这里插入图片描述
语法
oracle里面有full join,但是在mysql中没有full join。我们可以使用union来达到目的。
(1)mysql

select * from t1 full join t2 on t1.id = t2.id

(2)oracle

select * from t1 left join t2 on t1.id = t2.id
union
select * from t1 right join t2 on t1.id = t2.id;

结果:
在这里插入图片描述

3.2 左外连接(left join on)

两表关联,左表全部保留,右表关联不上用null表示。

select * from t1 left join t2 on t1.id = t2.id

在这里插入图片描述
结果如下:
在这里插入图片描述

3.3 右外连接(right join on)

两表关联,右表全部保留,左表关联不上用null表示。

select * from t1 right join t2 on t1.id = t2.id

在这里插入图片描述

结果:
在这里插入图片描述

4. 联合查询

用于测试的两张表:
在这里插入图片描述

4.1 Union

  • 当使用union 时,mysql 会把结果集中重复的记录删掉,而使用union all ,mysql 会把所有的记录返回,且效率高于union 。
  • union 常用与数据类似的两张或多张表查询,如不同的数据分类表,或者是数据历史表等

查询两张表中的文章 id 号及标题,并去掉重复记录:

SELECT aid,title FROM article UNION SELECT bid,title FROM blog

在这里插入图片描述

4.2 Union all

查询两张表中的文章 id 号及标题,并返回所有记录:

SELECT aid,title FROM article UNION ALL SELECT bid,title FROM blog

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值