您的位置:首页 > 数据库

sql中内连接与外连接的区别

2015-07-08 09:48 281 查看
你是要弄清楚区别在什么地方还是单纯想要文字说明

文字说明的楼上说了一大堆了,不说了。

弄个例题,直观一点。两个表:

--表stu

id name

1, Jack

2, Tom

3, Kity

4, nono

--表exam

id grade

1, 56

2, 76

11, 89

内连接 (显示两表id匹配的)

select stu.id,exam.id,stu.name, exam.grade from stu inner join exam on stu.id=exam.id

stu.id exam.id name grade

--------------------------------

1 1 Jack 56

2 2 Tom 76

左连接(显示join 左边的表的所有数据,exam只有两条记录,所以stu.id,grade 都用NULL 显示)

select stu.id,exam.id,stu.name, exam.grade from stu left join exam on stu.id=exam.id

1 1 Jack 56

2 2 Tom 76

3 NULL Kity NULL

4 NULL nono NULL

右连接(与作连接相反,显示join右边表的所有数据)

select stu.id,exam.id,stu.name, exam.grade from stu right join exam on stu.id=exam.id

1 1 Jack 56

2 2 Tom 76

NULL 11 NULL 89

所以,具体使用什么连接,还是要看自己是什么样的需求,比如,在一张表中插入一条新的记录的

时候,插入之前要对表中关键字段进行判断,有的时候,会涉及到两张表中某字段的存在性进行验证

当涉及到的两张表的关系是且的关系的时候,就需要使用内连接;当两个字段存在性是或的关系,并且以

第一张表的字段为主的时候,就需要使用左连接;同样的情况,以第二个表中字段为主进行验证的情况就

需要使用右连接。综上所述,对于存在性的检验,还是内连接比较常见。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: