细探SQL Server数据库操作语句详解- 多表“外连接”查询(四)

外连接

  • 左外连接:满足ON条件表达式,左外连接是以左表为准,返回左表所有的数据,与右表匹配的则有值,没有匹配的则以空值NULL取代

  • 右外连接:满足ON条件表达式,右外连接是以右表为准,返回右表所有的数据,与左表匹配的则有值,没有匹配的则以空值NULL取代。

  • 完整外部连接:满足ON条件表达式,返回两个表符合条件的所有行,a表没有匹配的则a表的列返回NULL,b表没有匹配的则b表的列返回NULL,即返回的是左连接和右连接的并集。

       内连接时,返回查询结果集合中的仅是符合查询条件( WHERE 搜索条件或 HAVING 条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。外连接是只限制一张表中的数据必须满足连接条件,而另一张表可以不满足连接条件。

SQL Server支持ANSI方式的外连接

ANSI方式的外连接的语法格式:
命令格式:FROM1 LEFT|RIGHT|[OUTER] JOIN2 ON <连接条件>
详解:LEFT [OUTER] JOIN 称为左外连接 	--限制表2的数据必须满足连接条件,不管表1如何,均输出表1的内容
      RIGHT [OUTER] JOIN 称为右外连接	--限制表1的数据必须满足连接条件,不管表2如何,均输出表2的内容
  • 1、查询学生的选课情况,包括未选课的和选课的

  • 2、查询哪些课程没人选,列出其课程名

  • 查询学生的选课情况,包括未选课的和选课的
    SELECT Student.Sno,Sname,Cno,Grade FROM Student LEFT OUTER JOIN SC ON Student.Sno=SC.Sno;	--左外连接
    SELECT Student.Sno,Sname,Cno,Grade FROM SC LEFT OUTER JOIN Student ON Student.Sno=SC.Sno;	--右外连接
    
  • 查询哪些课程没人选,列出其课程名
    SELECT Cname FROM Course AS C LEFT OUTER JOIN SC AS S ON C.Cno = S.Cno WHERE S.Cno IS NULL;  --左外连接
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值