请问在数据库中什么时候用左连接什么时候用右连接

请问在数据库中什么时候用左连接什么时候用右连接,第1张

连接分内连接,外连接,交叉连接,等值连接和自连接。内连接是在公共的列上使用比较 *** 作符从多表中抽取数据。(某一公共属性如EmployeeID,它是A表的主键和B表的外键)1.左连接返回left outer join 关键字左侧指定的表的所以行和右侧指定的表的匹配的行。2.右连接返回right outer join 关键字右侧指定的表的所以行和左侧指定的表的匹配的行。3.完全外连接返回来自两个表的所以匹配和非匹配行使用full outer join 关键字。交叉连接就是笛卡尔积,A表有5行,B表有10行,使用交叉连接就有50行。等值连接是内连接的一种特殊形式,它是要选择所有表的所以属性列。自连接就是一个表和自己连接。为区分同一个表的两个实例,表被给出两个别名。

内连接的连接查询结果集中仅包含满足条件的行,内连接是SQL Server缺省的连接方式,可以把INNERJOIN简写成JOIN,根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种;交叉连接的连接查询结果集中包含两个表中所有行的组合.

外连接的连接查询结果集中既包含那些满足条件的行,还包含其中某个表的全部行,有3种形式的外连接:左外连接、右外连接、全外连接。

扩展资料

执行一个连接 *** 作, 存在三种基本的算法.

1、嵌套循环(LOOP JOIN)

类似于C语言编程时的双重循环。作为外层循环逐行扫描的表,称为外部输入表;针对外部输入表的每一行,要逐行扫描检查匹配的另一张表,称为内部输入表(相当于内层循环)。适用于外部输入表的行数较少,内部输入表创建了索引的情形。

2、合并连接(MERGE JOIN)

类似于两个有序数组的合并。两个输入表都在合并列上排序;然后依序对两张表逐行做连接或舍弃。如果预先建好了索引,合并连接的计算复杂度是线性的。

3、哈希连接(HASH JOIN)

适用于查询的中间结果,通常是无索引的临时表;以及中间结果的行数很大时。哈希连接选择行数较小的输入表作为生成输入,对其连接列值应用哈希函数,把其行(的存储位置)放入哈希桶中。

参考资料来源:百度百科-连接

参考资料来源:百度百科-连接查询


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6802279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存