SQL关于联合的基本概念和示例

本文详细介绍了SQL中的联合查询,包括INNER JOIN内部联合和OUTER JOIN外部联合的不同类型及其应用场景。探讨了等值与不等值联合、交叉联合、自联合等概念,并解释了左外部联合、右外部联合和完全外部联合的区别。

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

联合的类型分为 INNER JOIN 内部联合,OUTER JOIN外部联合,这两种联合的本质区别在于ON子句,前者ON子句的条件必须为,后者没有此限制

INNER JOIN 分为
 等值与不等值联合
        这种联合的子句的条件指定一个表中的某个字段必须等于另一个表中的某个字段,这是一种最常用和最有意义的联合
交叉联合
        这种联合没有ON子句,联合中列举的所有表中的所有记录行都被包含在结果集中,很显然这就是两张表的笛卡儿积,交叉联合不是很有用
自联合
        当一个表联合到它自己,而不是其它表时,产生自联合,自联合的主要用途是寻找表中记录的匹配对,自联合与子查询一起使用时比较有意义,在使用自联合的时候一定要为这个表或列赋予一个别名,自联合通常非常复杂。

OUTER JOIN 分为
左外部联合
        当联合A,B两表时,需要其中A表的记录始终出现在最终结果中可选择使用此联合,那么不论A表记录中是否存在满足ON子句条件的记录,A表的所有记录都将显示
右外部联合
        此与左外部联合正好相反,使用左还是右没有任何规定,完全看你的爱好了
完全外部联合
        这是前两种联合的特征合,即联合的所有表的记录都显示在最终结果中

 

以下示例为SQL Server 2005数据库引擎关于联合时所使用的查询计划,为SQL优化作指导。

数据库引擎主要使用嵌套循环,哈西匹配,合并这三种方式处理联合查询,根据数据量的不同,是否有聚簇索引等辅助条件,数据库引擎自动评估开销选择,但依旧可以强制使用Option参数指定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值