课程设计报告课程名称:数据库系统原理设计题目:学生成绩管理数据库的建立指导教师:时间:2010~2011学年第二学期南京人口学院信息科学系1课程设计题目学生成绩管理数据库的建立构建一个教学管理关系数据库如下:学生(学号,姓名,性别,年龄,籍贯,班级代号)课程(课程号,课程名称,学分数,教师代号)成绩(学号,课程号,成绩,考试时间)教师(教师代号,姓名,性别,年龄,职称)为方便起见,上述关系用英文字母表示如下:S(SNO,NAME,SEX,AGE,JG,CLASSNO)C(CNO,CNAME,XF,TNO)G(SNO,CNO,GRADE,DATE)T(TNO,NAME,SEX,AGE,ZC)上述关系模式中,带下划线的属性为各自关系的关键字,其中学生表输入20条记录;课程表输入10条记录;成绩表输入100条记录;教师表入5条记录。基于这些关系表,做如下查询:(1)找出男性学生的姓名(2)找出不是“2031”班的学生(3)查询“李峰”老师所教课程的课程名称和学分(4)检索出选修了课程代号为“c11”和“c23”课程的学生(5)查询至少选修了一门“李峰”老师的课程的学生姓名(6)求选修了课程名为“数据库原理”的所有学生的学号和姓名(7)找出学生代号为“S101”和“S102”两个学生都选修了的课程(8)检索出没有被任何学生选修的课程(9)求出每个学生的成绩的平均分和总分(10)求至少三门以上课程成绩在90分以上的学生学号(11)求获得学分数在200以上的学生(12)求出少于10个学生选修的课程(13)求出有四门课程考试不及格的学生的姓名(14)求出每个老师所教课程的学分总数(15)求出教了三门课以上的老师(16)求出只教一门课程的老师(17)求出每一个班级中每一门课程获得最高分的学生的学号2课程设计目的及要求:目的:通过本次对数据库的设计,了解其设计的基本思想方法,熟悉数据库的运行环境,能够独立编写小型的数据库程序,通过数据库系统应用课题的实践,进一步提高分析问题解决问题的能力及软件开发过程的能力。要求:1、正确建立完善的数据库表信息;2、能够使用SQL语言正确写出查询语句;3、能够利用查询设计器建立查询;3课程设计详细内容:1、数据库表:1)学生表:2)课程表3)成绩表4)教师表42、查询1)SQL语句:SELECTS.NAMEFROMSWHERE((s.sex=男));查询结果:2)SQL语句:SELECTS.*FROMSWHERE(((S.CLASSNO)NotLike2031));查询结果:3)SQL语句:SELECTC.CNAME,C.XF,C.TNOFROMCWHERE(((C.TNO)Like1));查询结果:54)SQL语句:SELECTS.*FROMSINNERJOINGONS.SNO=G.SNOWHEREG.CNOLike'c11'AndEXISTS(SELECT*FROMGASG2WHEREG.SNO=G2.SNOANDG2.CNOLike'c23');查询结果:5)SQL语句:SELECTS.NAME,S.SNOFROM(SINNERJOINGONS.SNO=G.SNO)INNERJOINCONG.CNO=C.CNOWHERE(((G.CNO)=c11Or(G.CNO)=c12Or(G.CNO)=c21))GROUPBYS.NAME,S.SNO;查询结果:6)SQL语句:SELECTS.NAME,S.SNOFROMSINNERJOINGONS.SNO=G.SNOWHERE(((G.CNO)=c13));查询结果:67)SQL语句:SELECTS.SNO,G.CNO,C.CNAMEFROM(SINNERJOINGONS.SNO=G.SNO)INNERJOINCONG.CNO=C.CNOWHERE(((S.SNO)Like's101')AND((Exists(SELECT*FROMGASG2WHEREG.CNO=G2.CNOANDG2.SNOLIKE's102'))False));查询结果:8)SQL语句:SELECTC.*FROMCWHERE(((C.CNO)NotIn(SELECTG.CNOFROMG)));查询结果:9)SQL语句:SELECTS.SNO,Avg(G.GRADE)ASGREAT之平均值,Sum(G.GRADE)ASGREAT之总计FROMSINNERJOINGONS.SNO=G.SNOGROUPBYS.SNO;查询结果:10)SQL语句:SELECTS.NAME,S.SNO,Count(G.GRADE)ASGRADE之计数FROMSINNERJOINGONS.SNO=G.SNOWHERE(((G.GRADE)90))GROUPBYS.NAME,S.SNOHAVING(((Count(G.GRADE))2));7查询结果:11)SQL语句:SELECTS.SNO,S.NAME,Sum(G.GRADE)ASGREAT之总计FROMSINNERJOINGONS.SNO=G.SNOGROUPBYS.SNO,S.NAMEHAVINGSum(G.GRADE)200;查询结果:12)SQL语句:SELECTC.CNAME,C.CNO,Count(G.GRADE)ASGRADE之计数FROM(SINNERJOINGONS.SNO=G.SNO)INNERJOINCONG.CNO=C.CNOGROUPBYC.CNAME,C.CNOHAVING(((Count(G.GRADE))10));查询结果:13)SQL语句:SELECTS.NAME,Count(G.GRADE)ASGRADE之计数FROMSINNERJOINGONS.SNO=G.SNOWHERE(((G.GRADE)60))GROUPBYS.NAMEHAVING(((Count(G.GRADE))=4));8查询结果:14)SQL语句:SELECTC.TNO,T.NAME,Sum(C.XF)ASXF之总计FROMCINNERJOINTONC.TNO=T.TNOGROUPBYC.TNO,T.NAME;查询结果:15)SQL语句:SELECTT.NAME,T.TNO,Count(C.CNO)ASCNO之计数FROMTINNERJOINCONT.TNO=C.TNOGROUPBYT.NAME,T.TNOHAVING(((Count(C.CNO))=3));查询结果:16)SQL语句:SELECTT.NAME,T.TNO,Count(C.CNO)ASCNO之计数FROMTINNERJOINCONT.TNO=C.TNOGROUPBYT.NAME,T.TNOHAVING(((Count(C.CNO))=1));查询结果:17)SQL语句:SELECTS.CLASSNO,G.CNO,Max(G.GRADE)ASGRADE之最大值FROMSINNERJOINGONS.SNO=G.SNOGROUPBYS.CLASSNO,G.CNO;9查询结果:注:可另附页10课程设计总结及体会:通过本次对关系数据库系统的设计,使我基本了解了有关关系数据库设计的基本思想方法,知道了如何在利用ACCESS的环境下创建数据库,包括正确建立完善的数据库表信息,使用SQL语言正确写出查询语句,利用查询设计器建立查询等基本技能。也使我能够独立完成数据库表的创建,对数据的分析以及按要求建立相应的查询,并且更加熟悉了对SQL语言的使用。通过本次数据库系统课题的实践,进一步提高了我的分析问题解决问题的能力。学生(签字)_年__月__日11指导教师评语:课程设计成绩:指导教师(签字)____________________年_____月_____日教研室意见:教研室主任(签字)_____年_____月_____日