杭州电子科技大学
实验报告
实验课名称:数据库课程设计
姓名: 潘登 学号: 14084221 指导教师:胡耿然
实验地点: 1教122 实验时间: 周二3-5节 一、实验名称: 数据高级查询 二、实验要求:
运用SQL查询语句实现对Access数据库的表中数据的高级查询。
三、实验内容:
1、将shiyan1.accdb拷贝至电脑上,或者重新建一个数据库,输入以下三张表:
学生表Student
学号Sno 201215121 201215122 201215123 201215125 姓名Sname 李勇 刘晨 王敏 张立 性别Ssex 男 女 女 男 年龄Sage 20 19 18 19 所在系Sdept CS CS MA IS
课程表Course
课程号Cno 1 2 3 4 5 6 7 课程名Cname 数据库 数学 信息系统 操作系统 数据结构 数据处理 PASCAL语言 先行课Cpno 5 1 6 7 6 学分Ccredit 4 2 4 3 4 2 4
学生选课表SC
学号Sno 201215121 201215121 201215121 201215122 201215122
课程号Cno 1 2 3 2 3 成绩Grade 92 85 88 90 80 2、请完成以下查询:(在每条查询后写上所使用的SQL语句)
1) 查询选修了3号课程的学生学号与成绩,查询结果按分数的降序排列 SELECT Sno,Grade FROM SC WHERE Cno=3;
2) 查询选修2号课程的学生最高分数 SELECT MAX(Grade) FROM SC WHERE Cno=2;
3) 查询刘晨所修课程的总学分数 SELECT SUM(Ccredit) FROM Course,SC,Student
WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno AND Sname='刘晨';
4) 查询每个学生所选的课程数 SELECT COUNT(Cno),Sno FROM SC GROUP BY Sno;
5) 查询平均成绩大于85分的学生学号与平均成绩 SELECT Sno,AVG(Grade) FROM SC GROUP BY Sno
HAVING AVG(Grade)>85;
6) 查询每一门课程的先修课的先修课(起别名:FROM Course C1, Course C2) SELECT FIRST.Cno,SECOND.Cpno FROM Course FIRST,Course SECOND WHERE FIRST.Cpno=SECOND.Cno;
7) 查询每个学生的基本情况与选课情况(使用左外连接LEFT OUTER JOIN) SELECT Student.Sno,Sname,Grade,Cno,Ssex,Sage
FROM Student LEFT OUTER JOIN SC ON(Student.Sno=SC.Sno);
8) 查询每个学生的学号、姓名、选修课程名和成绩 SELECT Student.Sno,Sname,Cname,Grade FROM Student,Course,SC
WHERE Student.Sno=SC.Sno AND Course.Cno=SC.Cno;
9) 查询选修了课程名为“数学”或“信息系统”的学生学号与姓名
SELECT DISTINCT Student.Sno,Sname FROM Student,SC,Course
WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Cname IN('数学','信息系统'); 查询1 Sno Sname 201215121 李勇 201215122 刘晨 10)查询非计算机系中学号比计算机系所有学生学号都大的学生学号与姓名
SELECT Sno,Sname FROM Student
WHERE Sdept<>'CS' AND
Sno>ALL(SELECT Sno FROM Student WHERE Sdept='CS'); 查询1 Sno Sname 201215123 王敏 201215125 张立
11)查询没有选修1号课程的学生姓名 SELECT DISTINCT Student.Sname FROM Student,SC
WHERE Student.Sno=SC.Sno AND Student.Sno NOT IN
(SELECT Sno FROM SC WHERE Cno=1); 查询1 Sname 刘晨
12)找出每个学生不及他自己选修课程平均成绩的课程号 SELECT x.Sno,x.Cno FROM SC x
WHERE x.Grade<(SELECT AVG(y.Grade) FROM SC y GROUP BY x.Sno); 查询1 Sno Cno 查询1 Sno Cno 201215121 2 201215122 3