南邮数据库实验报告.docx
《南邮数据库实验报告.docx》由会员分享,可在线阅读,更多相关《南邮数据库实验报告.docx(13页珍藏版)》请在冰豆网上搜索。
南邮数据库实验报告
南京邮电大学
课内实验报告
课程名:
数据库原理与应用
任课教师:
程录庆
专业:
信息管理与信息系统
学号:
B13111513
姓名:
解一涵
二○一四至二○一五年度第二学期
南京邮电大学管理学院
《数据库原理与应用》课程实验报告
实验内容及基本要求:
实验项目名称:
学生成绩管理数据库的建立
实验类型:
上机实验
实验内容及要求:
1、构建一个教学管理关系数据库如下:
学生(学号,姓名,性别,年龄,籍贯,班级代号)
课程(课程号,课程名称,学分数,教师代号)
成绩(学号,课程号,成绩,考试时间)
教师(教师代号,姓名,性别,年龄,职称)
为方便起见,上述关系用英文字母表示如下:
S(SNO,NAME,SEX,AGE,JG,CLASSNO)
C(CNO,CNAME,XF,TNO)
G(SNO,CNO,GRADE,DATE)
T(TNO,NAME,SEX,AGE,ZC)
2、上述关系模式中,带下划线的属性为各自关系的关键字,其中学生表输入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)求出每一个班级中每一门课程获得最高分的学生的学号
实验结果:
1、数据库表
(1)学生表
(2)课程表
(3)成绩表
(4)教师表
2、查询结果及SQL语言
(1)找出男性学生的姓名
SELECTNAME
FROMS
WHEREXB="男";
(2)找出不就是“2031”班的学生
SELECT*
FROMS
WHERESNONOTIN
(SELECTSNO
FROMS
WHERECLASSNO='B131115');
(3)查询“李峰”老师所教课程的课程名称与学分
SELECTCNAME,XF
FROMT,C
WHERENAME="李峰"AndT、TNO=C、TNO;
(4)检索出选修了课程代号为“c11”与“c23”课程的学生
SELECTSNO
FROMG
WHERECNOIn("1","2");
(5)查询至少选修了一门“李峰”老师的课程的学生姓名
SELECTS、NAME,S、SNO
FROM(SINNERJOINGONS、SNO=G、SNO)INNERJOINCONG、CNO=C、CNO
WHEREG、CNO="6"OrG、CNO="7"
GROUPBYS、NAME,S、SNO;
(6)求选修了课程名为“数据库原理”的所有学生的学号与姓名
SELECTS、SNO,S、NAME
FROMSINNERJOINGONS、SNO=G、SNO
WHERE(((G、CNO)="1"));
(7)找出学生代号为“S101”与“S102”两个学生都选修了的课程
SELECTS、SNO,G、CNO,C、CNAME
FROM(SINNERJOINGONS、SNO=G、SNO)INNERJOINCONG、CNO=C、CNO
WHERES、SNOLIKE'B13111502'ANDExists(SELECT*FROMGASG2WHEREG、CNO=G2、CNOANDG2、SNOLIKE'B13111510')<>False;
(8)检索出没有被任何学生选修的课程
SELECT*
FROMC
WHEREC、CNONOTIN(SELECTG、CNOFROMG);
(9)求出每个学生的成绩的平均分与总分
SELECTS、SNO,Avg(G、GRADE)AS平均分,Sum(G、GRADE)AS总分
FROMSINNERJOINGONS、SNO=G、SNO
GROUPBYS、SNO;
(10)求至少三门以上课程成绩在90分以上的学生学号
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)求获得学分数在200以上的学生
SELECTS、SNO,S、NAME,Sum(G、GRADE)ASGREAT之总计
FROMSINNERJOINGONS、SNO=G、SNO
GROUPBYS、SNO,S、NAME
HAVINGSum(G、GRADE)>200;
(12)求出少于10个学生选修的课程
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)AS最高分
FROMSINNERJOINGONS、SNO=G、SNO
GROUPBYS、CLASSNO,G、CNO;
成绩评定:
该生对待本次实验的态度□认真□良好□一般□比较差。
本次实验的过程情况□很好□较好□一般□比较差
对实验结果的分析□很好□良好□一般□比较差
文档书写符合规范程度□很好□良好□一般□比较差
综合意见:
成绩
指导教师签名
程录庆
日期
2014-4-24