南邮数据库实验报告
(17)求出每一个班级中每一门课程获得最高分的学生的学号
实验结果:
1、数据库表
(1)学生表
(2)课程表
(3)成绩表
(4)教师表
2、查询结果及SQL语言
(1)找出男性学生的姓名
SELECT NAME
FROM S
WHERE XB="男";
(2)找出不是“2031”班的学生
SELECT *
FROM S
WHERE SNO NOT IN
(SELECT SNO
FROM S
WHERE CLASSNO='B131115');
(3)查询“李峰”老师所教课程的课程名称和学分
SELECT CNAME, XF
FROM T, C
WHERE NAME="李峰" And T.TNO=C.TNO;
(4)检索出选修了课程代号为“c11”和“c23”课程的学生
(8)检索出没有被任何学生选修的课程
SELECT *
FROM C
WHERE O NOT IN (SELECT O FROM G);
(9)求出每个学生的成绩的平均分和总分
SELECT S.SNO, Avg(G.GRADE) AS平均分, Sum(G.GRADE) AS总分
FROM S INNER JOIN G ON S.SNO=G.SNO
SELECT S.SNO, O, AME
FROM (S INNER JOIN G ON S.SNO=G.SNO) INNER JOIN C ON O=O
WHERE S.SNO LIKE'B13111502' AND Exists (SELECT* FROM G AS G2 WHERE O=O AND G2.SNO LIKE'B13111510')<>False;
HAVING Sum(G.GRADE)>200;
(12)求出少于10个学生选修的课程
SELECT AME, O, Count(G.GRADE) AS GRADE之计数
FROM (S INNER JOIN G ON S.SNO=G.SNO) INNER JOIN C ON O=O
GROUP BY S.SNO;
(10)求至少三门以上课程成绩在90分以上的学生学号
SELECT , S.SNO, Count(G.GRADE) AS GRADE之计数
FROM S INNER JOIN G ON S.SNO=G.SNO
WHERE (((G.GRADE)>90))
GROUP BY , S.SNO
HAVING (((COUNT(G.GRADE))>2));
(11)求获得学分数在200以上的学生
SELECT S.SNO, , Sum(G.GRADE) AS GREAT之总计
FROM S INNER JOIN G ON S.SNO=G.SNO
GROUP BY S.SNO,
WHERE (((G.GRADE)<60))
GROUP BY
HAVING (((Count(G.GRADE))=4));
(14)求出每个老师所教课程的学分总数
SELECT C.TNO, , Sum(C.XF) AS XF之总计
FROM C INNER JOIN T ON C.TNO=T.TNO
SELECT SNO
FROM G
WHERE CNO In ("1","2");
(5)查询至少选修了一门“李峰”老师的课程的学生姓名
SELECT , S.SNO
FROM (S INNER JOIN G ON S.SNO=G.SNO) INNER JOIN C ON O=O
WHERE O="6" Or O="7"
SELECT S.CLASSNO, O, Max(G.GRADE) AS最高分
FROM S INNER JOIN G ON S.SNO=G.SNO
GROUP BY S.CLASSNO, O;
成绩评定:
该生对待本次实验的态度□认真□良好□一般□比较差。
本次实验的过程情况□很好□较好□一般□比较差
(9)求出每个学生的成绩的平均分和总分
(10)求至少三门以上课程成绩在90分以上的学生学号
(11)求获得学分数在200以上的学生
(12)求出少于10个学生选修的课程
(13)求出有四门课程考试不及格的学生的姓名
(14)求出每个老师所教课程的学分总数
(15)求出教了三门课以上的老师
(16)求出只教一门课程的老师
课内实验报告
课程名:数据库原理与应用
********
专业:信息管理与信息系统
学号:B********
******
二○一四至二○一五年度第二学期
南京邮电大学管理学院
《数据库原理与应用》课程实验报告
实验内容及基本要求:
实验项目名称:学生成绩管理数据库的建立
实验类型:上机实验
实验内容及要求:
1、构建一个教学管理关系数据库如下:
GROUP BY C.TNO, ;
(15)求出教了三门课以上的老师
SELECT , T.TNO, 源自ount(O) AS CNO之计数
FROM T INNER JOIN C ON T.TNO = C.TNO
GROUP BY , T.TNO
HAVING (((Count(O))>=3));
(16)求出只教一门课程的老师
SELECT , T.TNO, Count(O) AS CNO之计数
FROM T INNER JOIN C ON T.TNO=C.TNO
GROUP BY , T.TNO
HAVING (((Count(O))=1));
(17)求出每一个班级中每一门课程获得最高分的学生的学号
对实验结果的分析□很好□良好□一般□比较差
文档书写符合规范程度□很好□良好□一般□比较差
综合意见:
成绩
指导教师签名
程录庆
日期
2014-4-24
(3)查询“李峰”老师所教课程的课程名称和学分
(4)检索出选修了课程代号为“c11”和“c23”课程的学生
(5)查询至少选修了一门“李峰”老师的课程的学生姓名
(6)求选修了课程名为“数据库原理”的所有学生的学号和姓名
(7)找出学生代号为“S101”和“S102”两个学生都选修了的课程
(8)检索出没有被任何学生选修的课程
GROUP BY AME, O
HAVING (((Count(G.GRADE))<10));
(13)求出有四门课程考试不及格的学生的姓名
SELECT , Count(G.GRADE) AS GRADE之计数
FROM S INNER JOIN G ON S.SNO=G.SNO
学生(学号,姓名,性别,年龄,籍贯,班级代号)
课程(课程号,课程名称,学分数,教师代号)
成绩(学号,课程号,成绩,考试时间)
教师(教师代号,姓名,性别,年龄,职称)
为方便起见,上述关系用英文字母表示如下:
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”班的学生
GROUP BY , S.SNO;
(6)求选修了课程名为“数据库原理”的所有学生的学号和姓名
SELECT S.SNO,
FROM S INNER JOIN G ON S.SNO=G.SNO
WHERE (((O)="1"));
(7)找出学生代号为“S101”和“S102”两个学生都选修了的课程