SQL表连接查询inner join left join right join full join ...

本文详细介绍了SQL中的常见连接查询方式,包括内连接、左连接、右连接、全连接以及自然连接的概念与用法。通过实例演示,帮助读者理解如何在不同场景下选择合适的连接方式来获取所需数据。

 

一、最常见的连接查询

select  s.name,m.mark from student s,mark m  where s.id=m.studentid.

二、内连接-inner join

select  s.name,m.mark from student s inner join mark m  on s.id=m.studentid.

上面两种都是把student.id=mark.studentid条件的元素选出来

三、左连接-left join

左连接就是把左边的元素全部选出来

select s.name,m.mark from student s left join mark m  on  s.id=m.studentid.

上面的语句就是把左边的表,即student表中的元素全部选出,尽管有些分数表是没数据的,也选出来

四、右连接-right join

右连接就是把右边的元素全部选出来

select s.name,m.mark from student s right join mark m  on  s.id=m.studentid.

上面的语句就是把左边的表,即mark表中的元素全部选出,尽管有些学生表是没数据的,也选出来

五、全连接-full join

全连接就是把左右两把的表数据都取出来,不管是否能匹配到数据:

 select s.name,m.mark from student s full join mark m  on  s.id=m.studentid.

 上面的语句就是把,学生表和成绩表的数据都取了出来。

注:最常用的是第一种 内链接。

六、自然连接-natural join

自然连接是在两张表中寻找那些数据类型和列名都相同的字段,然后自动地将他们连接起来,并返回所有符合条件按的结果。

例子:

select emp.ename,dept dname from emp natural join dept.

这里我们并没有指定连接的条件,实际上oracle为我们自作主张的将,emp中的deptno和dept中的deptno做了连接。

 也就是实际上相当于

select emp.ename,dept.dname  From emp join dept on emp.deptno=dept.deptno.

因为这两张表的这两个字段deptno的类型个名称完全相同。所以使用naturaljoin时被自然的连接在一起了。

另外:

1.如果做自然连接的两个表的有多个字段都满足有相同名称个类型,那么他们会被作为自然连接的条件。

2.如果自然连接的两个表仅是字段名称相同,但数据类型不同,那么将会返回一个错误。

3.由于oracle中可以进行这种非常简单的naturaljoin,我们在设计表时,应该尽量在不同表中具有相同含义的字段使用相同的名字和数据类型。以方便以后使用naturaljoin

 4.等值连接不把重复的属性除去;而自然连接要把重复的属性除去。

转载于:https://www.cnblogs.com/sdd53home/p/5235049.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值