数据库实验实验6_第1页
数据库实验实验6_第2页
数据库实验实验6_第3页
数据库实验实验6_第4页
数据库实验实验6_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验名称实验6实验地点8-318实验类型设计实验学时1实验日期2018-6-14 撰写注意:版面格式已设置好(不得更改),填入内容即可。一、 实验目的1. 掌握系统数据类型的特点和功能。2. 掌握创建、修改表结构的方法。3. 掌握插入、更新和删除表数据的方法。二、 实验内容1.查询所有班级的期末成绩平均分,并按照平均分降序排序。2.查询教师基本信息和教授课程信息,其中包括未分配课程的教师信息。3.查询160501班级中选修了“韩晋升”老师讲授的课程的学生学号、姓名、课程号和期末成绩。4.查询每门课程的课程号、课程名和选修该课程的学生人数,并按所选人数升序排序。5.查询两门及以上课程的期末成绩超

2、过80分的学生姓名及平均成绩。6.查询入学考试成绩最高的学生学号、姓名和入学成绩。7.查询同时教授c05127号和c05109号课程的教师信息。8.查询至少选修了姓名为“韩吟秋”的学生所选修课程中一门课程的学生学号和姓名。9.查询所有教授c05127号课程的教师信息。10.查询没有被任何学生选修的课程编号、课程名称和学分。11.查询“C语言”课程期末成绩比“电子技术”课程期末成绩高的所有学生的学号和姓名。12查询所有班级期末平均成绩的最高分,并将其赋值给变量,通过PRINT语句输出。13.使用游标输出学生姓名、选修课程名称和期末考试成绩。14.使用游标统计每个学院教师所开设课程的选修率。15.

3、使用游标计算学生期末成绩的等级,并更新level列。三、 实验环境1. 操作系统:Windows XP2. 开发软件:SQL Server 2008四、 提交文档提交本实验报告(电子版),文件名命名:学号 姓名实验X:XXXXXXX.doc教师将批阅后(有分数)的全体学生实验报告刻入一张光盘存档,保证光盘可读。五、 附:源代码1.select studentno,AVG(final) as 平均分 from score group by studentno order by AVG(final)2.select * from teacherselect * from studentselect

4、 * from courseinsert into course(courseno,cname,ctype,period,credit)values('c05103','高等数学','必修',64,4.0) select * from scoreinsert into score(studentno,courseno,usually,final)values(,'c05103',87.00,82.00)insert into teacher(teacherno,tname,major,prof,department)values(

5、't05001','韩晋升','软件工程','教授','计算机学院')select * from classinsert into class(classno,classname,department,monitor)values('160501','计算机','计算机学院','张三')select * from teach_classinsert into teach_class(teacherno,classno,courseno)values(&

6、#39;t05001','160501','c05103')select * from teacherselect * from courseselect * from scoreselect classno,AVG(final) as 平均分 from student join scoreon student.studentno=score.studentno group by classnoorder by AVG(final) descselect teacher.*,cname from teacher left join teach_class

7、on teacher.teacherno=teach_class.teachernoleft join course on teach_class.classno=course.courseno3.select student.studentno,sname,cname,final from studentjoin score on student.studentno=score.studentnojoin course on course.courseno=score.coursenowhere score.courseno in(select courseno from teach_cla

8、ss join teacher on teach_class.teacherno=teacher.teachernowhere tname='韩晋升')and classno='090501'4.select course.courseno,cname,COUNT(studentno) fromscore join course on score.courseno=course.coursenogroup by course.courseno,cnameorder by COUNT(studentno) desc5.select sname,AVG(final)

9、 from score join student on score.studentno=student.studentnowhere final>=80group by student.studentno,snamehaving COUNT(courseno)>=26.select studentno,sname,point from student wherestudentno=(select top 1 studentno from student order by point)7.select teacher.teacherno,tname,major ,prof,depar

10、tment from teacher join teach_class on teacher.teacherno=teach_class.teachernowhere courseno='c05127'8.select distinct student.studentno,sname from scorejoin student on score.studentno=student.studentnowhere courseno in(select courseno from score join student onscore.studentno=student.studen

11、tnowhere sname='韩吟秋')and sname!='韩吟秋'9.select * from teacher where teacherno in(select teacherno from teach_class wherecourseno='c05127')10.select courseno,cname,credit from course where not exists(select * from score where score.courseno=course.courseno)11.select student.stu

12、dentno,sname from score sc1 join studenton (sc1.studentno=student.studentno) join course c1 on(sc1.courseno=c1.courseno)where ame='c语言' and exists(select * from score sc2 join course c2 on(sc2.courseno=c2.courseno)where ame='电子技术' and sc1.studentno=sc2.studentnoand sc1.final>sc2.f

13、inal)12.declare max numeric(6,2)select max=MAX(平均分) from (select classno as 班级号,AVG(final) as 平均分 from scorejoin student on (score.studentno=student.studentno)join course on (course.courseno=score.courseno)where final is not nullgroup by classno) tprint '所有班级期末平均成绩的最高分:'+cast(max as varchar(

14、6)13.declare sname nchar(8),cname nchar(10),final numeric(6,2)declare sc_cursor cursor forselect sname,cname,finalfrom score join student on(score.studentno=student.studentno)join course on(score.courseno=course.courseno)open sc_cursorfetch next from sc_cursor into sname,cname,finalprint '学生姓名 课

15、程名称 期末成绩'print '-'while FETCH_STATUS=0beginprint sname+cname+cast(final as nchar(6)fetch next from sc_cursor into sname,cname,finalendclose sc_cursordeallocate sc_cursor14.declare department nchar(30),num int,avg floatdeclare cur cursor staticfor select department,count(*) as '选修课数&#

16、39; from classwhere class.classno in(select student.classno from student group by classno)group by departmentopen curfetch curinto department,numset avg=num/(select COUNT(*) from class where department=department)print departmentprint avgwhile FETCH_STATUS=0beginfetch next from curinto department,nu

17、mset avg=num/(select COUNT(*) from class where department=department)print departmentprint avgendclose curdeallocate cur15.declare sname nchar(30),cname nchar(30),final floatdeclare stu cursor staticforselect sname,final,cnamefrom student,score,coursewhere student.studentno=score.studentno and cours

18、e.courseno=score.coursenoopen stufetch stuinto sname,final,cnameif final>=90print N'优'+sname+cnameelse if final>=80 and final<90print N'良'+sname+cnameelse if final>=70 and final<80print N'中'+sname+cnameelse if final>=60 and final<70print N'及'+sname+cnameelse if final<60print N'差'+sname+cnamewhile FETCH_STATUS=0beginfetch next from stuinto sname,final,cnameif final>=90print N'

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论