关闭

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

1590人阅读 评论(0) 收藏 举报
你是要弄清楚区别在什么地方还是单纯想要文字说明
文字说明的楼上说了一大堆了,不说了。
弄个例题,直观一点。两个表:
--表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



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

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

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

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

需要使用右连接。综上所述,对于存在性的检验,还是内连接比较常见。

2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15647次
    • 积分:321
    • 等级:
    • 排名:千里之外
    • 原创:16篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    文章分类