【SQL】外连接

例如:当我们想查询所有学生的基本情况和其选修课情况,若某个学生没有选课,则输出他的基本信息,其选课信息为空即可,这时就要使用到外连接。

SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,Grade
FROM Student,SC
WHERE Student.Sno=SC.Sno(*)

外连接的表示方法为,在连接谓词的某一边加符号*(有的数据库系统中用+)。外连接就好像是为符号*所在边的表(本例是SC表)增加一个“万能”的行,这个行全部由空值组成,它可以和另一边的 表(本例是Student表)中所有不满足连接条件的元组进行连接。本例中即与Student表的95003和95006元组进行连接。由于这个“万能”行的各列全部是空值,因此在连接结果中,95003和95004两行中来自SC表的属性值全部为空值
执行结果如下所示:
Student.Sno      Sname      Ssex      Sage      Sdept      Cno      Grade
------------------------------------------------------------------------
95001                 李勇           男           20      CS           1           92
95001                 李勇           男           20      CS           2           85
95001                 李勇           男           20      CS           3           88
95002                 刘晨           女           19      IS           2           90
95002                 刘晨           女           19      IS           3           80
95003                 王敏           女           18      MA  
95004                 张力           男           19      IS  

如果外连接符出现在连接条件的右边,称其为有右连接(如本例),如果连接符号出现在连接条件的左边,称其为左外连接

转载于:https://www.cnblogs.com/liuxing3169/articles/1342352.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值