以文本方式查看主题

-  课外天地 李树青  (http://www.njcie.com/bbs/index.asp)
--  数据库系统原理课件  (http://www.njcie.com/bbs/list.asp?boardid=19)
----  综合练习——学校信息管理  (http://www.njcie.com/bbs/dispbbs.asp?boardid=19&id=170)

--  作者:admin
--  发布时间:2006/4/25 16:37:24
--  综合练习——学校信息管理

现需要为某学校开发一个本科生选课系统和学籍管理系统,按照该学校教学计划,本科生应至少修满选修课11个学分才能容许毕业,具体规则如下: 1)选课在大学3,4年级4个学期初进行,每门选修课学分为3~4个学分; 2)选课系统开放时,学生可以根据每年教师公开的开课清单选择课程(为简化问题暂时不考虑上课时间冲突,每门课学生容量不限),选课结束后再增加。 3)学期结束后教师将课程成绩填入成绩单(成绩为100记分,小于60分表示不及格) 4)对不及格的学生可以在以后进行重新选课(重修) 主要涉及的信息有:学号,学生姓名,年级(入学年),学生的专业,课程编号,课程名称,学期,成绩,学分,教师姓名,教师所在的系。 要求: 1)按照ER分析方法或者范式分析方法得出关系表结构。 2)请写出下列应用的SQL语句: ①”2002”级所有达到毕业要求的学生名单,并按年级专业学号排序; ②”2003”级 ”MIS”专业在”2005~2006”年上学期课程考试不及格的学生人数 ③列出”2002”级”MIS”专业每个学生的绩点成绩,绩点计算公式:


图片点击可在新窗口打开查看此主题相关图片如下:
图片点击可在新窗口打开查看


--  作者:admin
--  发布时间:2006/4/25 16:39:06
--  示例数据库下载

直接解压文件,将数据库附加到sql server即可

点击下载(RAR文档)
[此贴子已经被作者于2010-12-11 19:20:42编辑过]

--  作者:admin
--  发布时间:2006/4/25 16:42:00
--  参考答案

相应的表结构为: 学生(学号,学生姓名,年级,专业) 课程(课程编号,课程名称,学期,学分,教师号) 选修(学号,课程编号,成绩) 教师(教师号,教师姓名,教师所在的系)

sql: 1) select min(name) from stu inner join grade on stu.number=grade.number inner join course on grade.cid=course.cid where stu.academicYear=2002 group by stu.number having sum(credit)>=11 order by min(academicYear),min(speciality),stu.number

2) select count(*) from stu inner join grade on stu.number=grade.number inner join course on grade.cid=course.cid where stu.academicYear=2003 and speciality=\'MIS\' group by stu.number having min(grade)<60

3) select min(name) , CEILING(convert(float,sum(credit*grade))/convert(float,sum(credit))) from stu inner join grade on stu.number=grade.number inner join course on grade.cid=course.cid where academicYear=2002 and speciality=\'MIS\'