数据库中左连接、右连接、内连接与外连接的区别和作用

  在使用数据库是常常用到连接,我就对各种连接的区别做一个总结。

  首先在我们常用的sql语句中使用与连接相关的无非是select语句中的where连接条件,表示这些条件的谓词就是:

  • <、<=、=、>、>=、!=、<>、!< 和 !>

下面介绍各种连接的特点

1.等值连接(相等连接)

多表中直接使用 “=” 来进行查询相等的所有列,包括其中重复的列。

Select student.*,  class.* 
from student,class
where student.userId = class.userId;

-- 通过学生id把学生所有的个人信息和班级信息表所对应的所有东西都查出来

2.内连接(inner join)

  指定了INNER关键字的连接是内连接,内连接按照ON所指定的连接条件合并两个表,返回满足条件的行。内连接是系统默认的,可以省略INNER关键字。使用内连接后仍可使用WHERE子句指定条件。

例1

select * 
from student inner join class
on student.userId = class.userId;

例2

select student.name, class.score
from student join class
on student.userId = class.userId
where class.score >= 60;

3.外连接

左连接(left join)

左连接:只要左边表中有记录,数据就能检索出来,而右边有的记录必要在左边表中有的记录才能被检索出来。

select * 
from student left join class
on student.userId = class.userId;

右连接(right join)

右连接:右连接是只要右边表中有记录,数据就能检索出来。

select * 
from student right join class
on student.userId = class.userId;

总结:

内连接:A INNER JOIN B ,在A中也有,在B中也有的数据才能查询出来。

左连接:是已左边表中的数据为基准,若左表有数据右表没有数据,则显示左表中的数据右表中的数据显示为空。

右联接:是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值