什么时候使用内连接,什么时候使用外连接

需要查找两张表同时存在的数据,使用内连接 
需要查找两张表中一张表存在,另一张表不存在的时候使用左外链接 或 右外链接 
内连接的查询结果都是满足连接条件的元组。但有时我们也希望输出那些不满足连接条件的元组信息。比如,我们想知道每个学生的选课情况,包括已经选课的学生(这部分学生的学号在学生表中有,在选课表中也有,是满足连接条件的),也包括没有选课的学生(这部分学生的学号在学生表中有,但在选课表中没有,不满足连接条件),这时就需要使用外连接。外连接是只限制一张表中的数据必须满足连接条件,而另一张表中的数据可以不满足连接条件的连接方式。3种外连接: 
1)左外连接(LEFTOUTER JOIN) 
如果在连接查询中,连接管子左端的表中所有的元组都列出来,并且能在右端的表中找到匹配的元组,那么连接成功。如果在右端的表中,没能找到匹配的元组,那么对应的元组是空值(NULL)。这时,查询语句使用关键字LEFT OUTERJOIN,也就是说,左外连接的含义是限制连接关键字右端的表中的数据必须满足连接条件,而不关左端的表中的数据是否满足连接条件,均输出左端表中的内容。 
例如:要查询所有学生的选课情况,包括已经选课的和还没有选课的学生,查询语句为 
SELECT学生表.学号,姓名,班级,课程号,成绩 
FROM学生表LEFT OUTER JOIN选课表ON学生表.学号=选课表.学号 
左外连接查询中左端表中的所有元组的信息都得到了保留。 
2)右外连接(RIGHTOUTERJOIN) 
右外连接与左外连接类似,只是右端表中的所有元组都列出,限制左端表的数据必须满足连接条件,而不管右端表中的数据是否满足连接条件,均输出表中的内容。 
例如:同上例内容,查询语句为 
SELECT学生表.学号,姓名,班级,课程号,成绩 
FROM学生表RIGHTOUTERJOIN选课表ON学生表.学号=选课表.学号 
右外连接查询中右端表中的所有元组的信息都得到了保留。 
3)全外连接(FULL OUTER JOIN) 
全外连接查询的特点是左、右两端表中的元组都输出,如果没能找到匹配的元组,就使用NULL来代替。 
例如:同左外连接例子内容,查询语句为 
SELECT学生表.学号,姓名,班级,课程号,成绩 
FROM学生表FULL OUTER JOIN选课表ON学生表.学号=选课表.学号 
全外连接查询中所有表中的元组信息都得到了保留。

  • 17
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值