学生成绩管理数据库建立 实验报告.docx
《学生成绩管理数据库建立 实验报告.docx》由会员分享,可在线阅读,更多相关《学生成绩管理数据库建立 实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
![学生成绩管理数据库建立 实验报告.docx](https://file1.bdocx.com/fileroot1/2023-1/10/fbcb8cf6-355d-44f9-b1ee-962c1eb94d7f/fbcb8cf6-355d-44f9-b1ee-962c1eb94d7f1.gif)
学生成绩管理数据库建立实验报告
南京邮电大学
课内实验报告
课程名:
数据库系统概论
任课教师:
专业:
学号:
姓名:
二○至二○年度第学期
南京邮电大学管理学院
《数据库系统概论》课程实验实验报告
实验内容及基本要求:
实验项目名称:
学生成绩管理数据库的建立
实验类型:
操作
每组人数:
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)找出不是“B131115”班的学生
(3)查询“李峰”老师所教课程的课程名称和学分
(4)检索出选修了课程代号为“3”和“5”课程的学生
(5)查询至少选修了一门“李峰”老师的课程的学生姓名
(6)求选修了课程名为“数据库原理”的所有学生的学号和姓名
(7)找出学生代号为“B13111502”和“B13111604”两个学生都选修了的课程
(8)检索出没有被任何学生选修的课程
(9)求出每个学生的成绩的平均分和总分
(10)求至少三门以上课程成绩在90分以上的学生学号
(11)求获得学分数在200以上的学生
(12)求出少于10个学生选修的课程
(13)求出有四门课程考试不及格的学生的姓名
(14)求出每个老师所教课程的学分总数
(15)求出教了三门课以上的老师
(16)求出只教一门课程的老师
(17)求出每一个班级中每一门课程获得最高分的学生的学号
实验结果:
1.数据库表
学生表
教师表
课程表
成绩表
2.查询(使用SQL语句)
1.SELECTS.NAME
FROMS
WHERE(((S.XB)="男"));
2.SELECT*
FROMS
WHERESNONOTIN
(SELECTSNO
FROMS
WHERECLASSNO='B131115');
3.SELECTCNAME,XF
FROMT,C
WHERENAME="李峰"AndT.TNO=C.TNO;
4.SELECTS.*
FROMSINNERJOINGONS.SNO=G.SNO
WHEREG.CNOLike'3'AndEXISTS(SELECT*FROMGASG2
WHEREG.SNO=G2.SNOANDG2.CNOLike'5');
5.SELECTS.NAME,S.SNO
FROM(SINNERJOINGONS.SNO=G.SNO)INNERJOINCONG.CNO=C.CNO
WHERE((G.CNO)="7"Or(G.CNO="10"))
GROUPBYS.NAME,S.SNO;
6.SELECTS.NAME,S.SNO
FROMSINNERJOINGONS.SNO=G.SNO
WHERE(((G.CNO)="8"));
7.SELECTS.SNO,G.CNO,C.CNAME
FROM(SINNERJOINGONS.SNO=G.SNO)INNERJOINCONG.CNO=C.CNO
WHERE(((S.SNO)Like'B13111502')AND((Exists(SELECT*FROMGASG2WHEREG.CNO=G2.CNOANDG2.SNOLIKE'B13111604'))<>False));
8.SELECT*
FROMC
WHERE(((C.CNO)NotIn(SELECTG.CNOFROMG)));
9.SELECTS.SNO,Avg(G.GRADE)ASGREAT之平均值,Sum(G.GRADE)ASGREAT之总计
FROMSINNERJOINGONS.SNO=G.SNO
GROUPBYS.SNO;
10.SELECTS.NAME,S.SNO,Count(G.GRADE)ASGRADE之计数
FROMSINNERJOINGONS.SNO=G.SNO
WHERE(((G.GRADE)>90))
GROUPBYS.NAME,S.SNO
HAVING(((Count(G.GRADE))>2));
11.SELECTS.SNO,S.NAME,Sum(G.GRADE)ASGREAD之总计
FROMSINNERJOINGONS.SNO=G.SNO
GROUPBYS.SNO,S.NAME
HAVINGSum(G.GRADE)>200;
12.SELECTC.CNAME,C.CNO,Count(G.GRADE)ASGRADE之计数
FROM(SINNERJOINGONS.SNO=G.SNO)INNERJOINCONG.CNO=C.CNO
GROUPBYC.CNAME,C.CNO
HAVING(((Count(G.GRADE))<10));
13.
SELECTS.NAME,Count(G.GRADE)ASGRADE之计数
FROMSINNERJOINGONS.SNO=G.SNO
WHERE(((G.GRADE)<60))
GROUPBYS.NAME
HAVING(((Count(G.GRADE))=4));
14.SELECTC.TNO,T.NAME,Sum(C.XF)ASXF之总计
FROMCINNERJOINTONC.TNO=T.TNO
GROUPBYC.TNO,T.NAME;
15.SELECTT.NAME,T.TNO,Count(C.CNO)ASCNO之计数
FROMTINNERJOINCONT.TNO=C.TNO
GROUPBYT.NAME,T.TNO
HAVING(((Count(C.CNO))>=3));
16.SELECTT.NAME,T.TNO,Count(C.CNO)ASCNO之计数
FROMTINNERJOINCONT.TNO=C.TNO
GROUPBYT.NAME,T.TNO
HAVING(((Count(C.CNO))=1));
17.SELECTS.CLASSNO,G.CNO,Max(G.GRADE)ASGRADE之最大值
FROMSINNERJOINGONS.SNO=G.SNO
GROUPBYS.CLASSNO,G.CNO;
实验心得
通过本次学生成绩管理数据库的建立实验,我深入了解了有关关系数据库设计的基本思想方法。
通过利用ACCESS软件创建数据库,首先建立正确完善的数据库表信息,包含学生、教师、课程和成绩表。
然后使用SQL语言编写查询语句,并通过数据表视图显示结果,判断是否正确显示。
在实验过程中出现了许多问题,有的问题是因为粗心导致的拼写错误、符号、字母缺漏错误,有的问题则是语法错误,一时很难找到解决的办法。
后来通过翻阅课本、和同学讨论、查找资料、询问老师等方法顺利解决了问题。
通过本次实验,我了解到了自己的不足之处,在今后的学习中要加以弥补,巩固强化。
成绩评定:
该生对待本次实验的态度□认真□良好□一般□比较差。
本次实验的过程情况□很好□较好□一般□比较差
对实验结果的分析□很好□良好□一般□比较差
文档书写符合规范程度□很好□良好□一般□比较差
综合意见:
成绩
指导教师签名
日期