实验三:SQL Server的数据查询

在SQL SERVER上附加teaching数据库,其中三张表的含义解释如下:学生表dbo.student有属性sno、sname、spec、birthday、email、sex、scholarship,分别代表学号、姓名、专业、生日、电子邮箱、性别、奖学金;课程表dbo.course有属性cno、cname、credit、teacher,分别代表课程号、课程名、学分、任课教师;选课表dbo.student_course有属性sno、cno、grade,分别代表学号、课号、成绩。要求在teaching数据库中完成下列查询(每小题10分,共50分):

  1. 求至少选修5门课程的学生信息;
SELECT student.sno,student.sname,student.spec,student.birthday,student.email,student.sex,student.scholarship From student,student_course
WHERE student.sno=student_course.sno
group by student.sno,student.sname,student.spec,student.birthday,student.email,student.scholarship,student.sex
having COUNT(student_course.cno)>=5;
  1. 求每个学生所选课程的平均成绩,并用查询结果来创建一个新的数据表S_avggrade(sno,sname,avggrade);
use teaching 
go 
Select s.sno,sname,avg(grade) as avggrade Into S_avggrade
From student s,student_course sc 
Where s.sno=sc.sno  
Group by s.sno,sname
  1. 求全部学生均选修的课程的课程号和课程名;
use teaching
go
select student_course.cno,cname
from course ,student_course,student
where student.sno=student_course.sno and course.cno = student_course.cno
group by student_course.cno,cname
having COUNT(*) = (select COUNT(*)from student)
  1. 查询平均成绩高于所有学生选课平均成绩的学生情况;
use teaching
select distinct s.sno,s.sname,s.sex,s.spec,s.scholarship,s.email,s.birthday
from student s,student_course sc
where s.sno=sc.sno 
and sc.grade>(select avggrade=avg(grade) from student_course)
go
  1. 检索’计算机’专业有课程成绩不及格(<60)的学生信息,包括学号、姓名、课程名和成绩;
use teaching
go
SELECT student.sno,student.sname,course.cname,student_course.grade
FROM student,course,student_course
WHERE student.spec=&apos;计算机&apos; AND student_course.grade<60
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值