【SQL Server】多表连接查询

前言 


       数据存储到数据库后,如果不对其进行分析和利用,数据是没有价值的。最终用户对数据库中数据进行的操作大多是查询和修改,其中修改操作包括插入、删除和更改数据。SQL提供了功能强大的数据查询和修改的功能。查询,插入和删除。这种东西还是需要多练,现在总结下来,没事儿了可以练练。分享:数据库文件,以下举例的语句都是根据这个数据库文件来操作,如有需要,请自行下载练习。


涉及到两张表


       若一个查询同时涉及两个或两个以上的表,则称为连接查询。连接查询是关系数据库中最主要的查询,主要包括内连接、做外连接、右外连接、全外连接和交叉连接。内连接是一种最常用的连接类型。

       使用内连接时,如果两个表的相关字段满足连接条件,则从这两个表中提取数据并组合成新的记录。连接操作在where子句中执行,连接是在join子句中执行的。

      如:查询学生及其选课的详细信息

      由于学生基本信息存放在student表中,学生选课信息存放在sc表中,因此这个查询涉及到两个表,这两个表之间进行连接的条件是两个表中的sno相等。

      select s.Sno,s.Sname,s.Sex,s.Birthdate,s.Dept,c.Cno,c.Grade from Student s  join Sc c on s.Sno=c.Sno

或者 

      select s.Sno,s.Sname,s.Sex,s.Birthdate,s.Dept,c.Cno,c.Grade from Student s ,Sc c  where s.Sno=c.Sno


效果图




涉及到三张表


      查询信息管理系选修了计算机文化学课程的学生信息,要求列出学生的姓名和考试成绩:

      (此查询涉及到三张表,没连接一张表,就需要加一个join子句)

      select Sname,Grade fromStudent s join SC on s.Sno=SC.Sno join Course c on c.Cno=SC.Cno where Dept = '信息管理系' and Cname ='计算机文化学'


效果图:




扩展


        有分组和行选择条件的多表连接查询。统计计算机系每个学生的选课门数、平均成绩、最高成绩和最低成绩

         select s.Sno,COUNT(*) as Total,AVG(grade) as AvgGrade,MAX(Grade) as MaxGrade,MIN(Grade) as MinGrade from Student s join SC on s.Sno=SC.Sno where Dept='计算机系' group by s.Sno


效果图




  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 26
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值