sql server 2005 中的内连接和外连接 怎么理解?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2005 中的内连接和外连接 怎么理解?相关的知识,希望对你有一定的参考价值。

内连接就是两个表的主键和外键数据的交集。
外连接就是其中一个表的全集和另一个表与其匹配的数据,如果匹配不上该表所有字段值就为null。外连接分为左连接和右联接。
参考技术A 你是要弄清楚区别在什么地方还是单纯想要文字说明
文字说明的楼上说了一大堆了,不说了。
弄个例题,直观一点。两个表:
--表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

数据库的内连接外连接(左外连接右外连接全外连接)以及交叉连接(转)

转自: 数据库的内连接、外连接(左外连接、右外连接、全外连接)以及交叉连接

SQL数据库的连接:内连接、和外连接(左外连接、右外连接、和全连接)

本次实验在MySQL数据库中进行,数据库初始表如下:

技术图片

 

一、内连接:结果仅包含符合连接条件的两表中的行。如下:

技术图片技术图片

 

二、外连接:结果包含符合条件的行,同时包含不符合条件的行(分为左外连接、右外连接和全外连接)

1、左外连接:左表全部行+右表匹配的行,如果左表中某行在右表中没有匹配的行,则显示NULL。如下:

技术图片

 

2、右外连接:和左外连接相反。如下:

技术图片

 

3、全外连接:不管匹配不匹配,全部显示出来,左表在右边没有的显示NULL,右表在左边没有的显示NULL

(MySQL数据库不支持全外连接,因此转换了一种语法,原本写法:

select * from student full join score on student.sno=score.sno;

技术图片

 

三、交叉连接:返回左表中所有行与右表中所有行的组合,也称笛卡尔积

技术图片

以上是关于sql server 2005 中的内连接和外连接 怎么理解?的主要内容,如果未能解决你的问题,请参考以下文章

内连接和外连接的区别

SQL Server中内连接和外连接的区别

MySql表的内连和外连

MySQL 表的内连和外连

SQL Server 2000 或 2005 中的联接

SQL Server 2005 中可以进行条件连接吗?