多表查询相关,以及数据集合操作

本文详细介绍了数据库中多表连接的概念与方法,包括内连接与外连接的区别及应用场景,并探讨了数据集合操作如UNION、MINUS等在查询结果上的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、多表连接

1、只要是多表查询,这多张表之间一定要存在有关联关系,没有关联关系的表是不可能多表查询的

    虽然能够消除显示的笛卡尔积,但是笛卡尔积却一直都存在着,是永远无法消除的,如果说表之间的数据量小,还可以承受,如果数据量大,那么多表查询直接会带来严重的性能问题。

    如果要想判断程序慢有两个方式:程序算法慢(CPU占用率高)、数据库数据大(内存占用率高)

2、表的连接

    实际上对于两张表进行多表查询对于消除笛卡尔积来讲主要是依靠的连接模式处理的,而对于表的连接模式在数据库定义上有两种:

①内连接:特点是只有满足条件的数据才会显示(第一张表与第二张表关联之后没有匹配的记录不会显示)

②外连接:分为三种:左外连接,右外连接,全外连接

其实内连接指的就是所有满足关联条件的数据出现,不满足的不出现。外连接就是指定一张表中的全部内容都显示,但是没有对应的其他表数据,内容为null。


大部分情况下都会考虑使用内连接,但是发现所需要的数据不全的时候就考虑使用外连接。

一张表中发生的连接叫做自身关联


二、数据集合操作

    每一次查询实际上都会返回数据集合,所以返回的结果上可以使用UNION、UNION ALL、MINUS、INTERSECT实现集合操作,此时的语法为:


INTERSECT操作(返回交集)


MINUS(返回差集)


在使用集合操作之中有一件非常重要的注意事项,由于集合的操作最终是需要将若干个查询结果合并为一个查询,所以要求这若干个查询结果所返回的数据结构必须相同





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值