实验二 数据高级查询

2025-06-20

杭州电子科技大学

实验报告

实验课名称:数据库课程设计

姓名: 潘登 学号: 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


实验二 数据高级查询.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:化工原理复习资料

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219