数据库等值连接查询问题

数据库等值连接查询问题,第1张

emp表中的

主键

empno,deptno是参照dept表。

dept表里的数据如果有

1,2

emp表中的deptno如果有1,2,3,4;但是不代表只有4行啊;可能deptno为1,2的共有20行。

那么等值连接查询的结果就是20行数据。

从左表中取出每一条记录,去右表中与所有的记录进行匹配:匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留。

语法一:select 列名 from 表1 inner join 表2 on 表1.公共字段=表2.公共字段   

语法二:select 列名 from 表1,表2 where 表1.公共字段=表2.公共字段       # 又叫等值连接

其中,on表示连接条件,公共字段表示具有相同的含义的字段。

字段别名以及表别名的使用: 在查询数据的时候,不同表有同名字段,这个时候需要加上表名才能区分,而表名太长,通常可以使用别名。

内连接可以没有连接条件: 没有on之后的内容,这个时候系统会保留所有结果(笛卡尔积)。

等值连接:内连接还可以使用where代替on关键字,此方法又叫等值连接。从集合论角度看,等值连接是内连接的子集。但此方法执行效率比较低,尽量不用。

这是2012年的提问嘛,现在是2019年6月13日,我给你详细解答。

内连接里分为等值连接和不等连接,自然连接属于特殊的等值连接。这是他们二者的关系。

这是我建立的两个表  a和b

等值连接。要给出连接条件才能进行连接

eg。

意思就是,把a表的b列的数值都拿出来,把b表的b列的数值都拿出来,有相同的才做连接,不同的不连接。

2.自然连接。自然连接的前提是等值连接,在等值连接的基础上除去相同的属性列

相比上图,少了一个B,对吧

懂了吗,不懂追问吧


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

原文地址:https://54852.com/sjk/10023476.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存