
主键
是
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,对吧
懂了吗,不懂追问吧
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)