数据库里面自连接和内连接区别是什么?

数据库里面自连接和内连接区别是什么?,第1张

自连接就是自己连接自己,比如

select * from A a1 join A a2 where a1.pid=a2.pid

前提是表A要有自参照外键

内连接就是不同的表直接的等值连接。。。。

比如

select * from A inner join B on A.xx=B.yy where 条件

自然连接(Natural join)是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。而等值连接并不去掉重复的属性列。

自然连接是关系R和S在所有公共属性(common attribute)上的等接(Equijoin)。但在得到的结果中公共属性只保留一次,其余删除,R⋈S ≡ ΠR u S( δ predicate(R x S))。

直观的说就是集合A{a1,a2,a3} 集合B{b1,b2} ,他们的笛卡尔积是A*B ={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)}。任意两个元素结合在一起,两个逻辑算式之间的比较,如果不全为真,则结果为假。

举例:现有a和b两表分别为关系R和S关系。

扩展资料:

其实就是域相同的属性值相等就连接。

比如有R(A,B)和S(B,C)两个关系,自然连接的条件就是R.B=S.B,结果是一个关系,为3个属性(A,B,C)。

通过相同名字的属性连接的结果就是自然连接。自然连接是在笛卡尔积中选取属性值(对于这个例子就是属性B)相等的那些条目,然后把重复的属性删掉。

本例的自然连接就是 {m 1 3},并和交需要两个关系的结构相同,本例R的结构是属性A B S的结构是属性B C, 故而不能做交或者并的运算。

自然连接又叫笛卡尔乘积,简单的说就是两个集合相乘的结果,直观的说就是集合A{a1,a2,a3} 集合B{b1,b2},他们的笛卡尔积是 A*B ={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)}。任意两个元素结合在一起,两个逻辑算式之间的比较,如果不全为真,则结果为假。

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


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

原文地址: https://outofmemory.cn/sjk/10651584.html

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

发表评论

登录后才能评论

评论列表(0条)

保存