国开《数据库基础与应用》第八章 实验二:查询对象的建立与使用
实验二:查询对象的建立与使用
实验准备:
了解和掌握文字教材第8章的全部内容。
实验目的:
能够启动和进入Access数据库管理系统操作环境,能够打开一个数据库文件,能够利用数据库中的表建立用户所需要的各种查询对象,能够打开和关闭查询对象,能够对查询对象进行各种视图状态之间的转换。
实验要求:
按照下面“实验内容与步骤”完成本次实验。
实验内容和步骤:
下面上机操作题继续使用“实验一”上机操作题中建立的“学生成绩管理”数据库,以及在其中建立的学生表、教师表、课程表和选课表。
1.打开已经在“数据库课程实验”的文件夹中创建的“学生成绩管理”数据库。
2.使用向导创建简单查询,查找所有学生的姓名、性别和所在院系信息,保存此查询,名称为“学生信息简要查询”。查询结果如下图2-1所示。
学生信息简要查询 | |||||
---|---|---|---|---|---|
姓名 | 性别 | 所在院系 | |||
吴术 | 男 | 计算机技术 | |||
贺华峰 | 男 | 计算机技术 | |||
高明明 | 女 | 外语 | |||
刘书旺 | 男 | 经济管理 | |||
吴天天 | 女 | 经济管理 | |||
张实在 | 男 | 计算机技术 | |||
王凯 | 男 | 计算机技术 | |||
李明媚 | 女 | 计算机技术 | |||
陈洁 | 女 | 外语 |
学生信息简要查询 | |||||
---|---|---|---|---|---|
姓名 | 性别 | 所在院系 | |||
刘国庆 | 男 | 计算机技术 |
图2-1 “学生信息简要查询”的内容
3.使用向导创建多表连接查询,要求查找所有选课学生的学号、姓名、课程号、课程名和成绩信息。保存此查询,名称为“学生选课成绩查询”。查询结果如下图2-2所示。
学生信息简要查询 | |||||
---|---|---|---|---|---|
学号 | 姓名 | 课程号 | 课程名 | 成绩 | |
201200010005 | 吴术 | 10010001 | C语言程序设计 | 85 | |
201200010005 | 吴术 | 10010002 | 数据库技术 | 90 | |
201200010006 | 贺华峰 | 10010001 | C语言程序设计 | 76 | |
201200020007 | 高明明 | 10010003 | 计算机网络 | 65 | |
201200020007 | 高明明 | 10020003 | 英语阅读 | 88 | |
201300010001 | 张实在 | 10010002 | 数据库技术 | 94 | |
201300010001 | 张实在 | 10010003 | 计算机网络 | 70 | |
201200010005 | 张实在 | 10020003 | 英语阅读 | 84 | |
201400010001 | 李明媚 | 10030001 | 会计学原理 | 68 | |
201400010001 | 李明媚 | 10030002 | 统计学原理 | 80s |
图2-2 “学生选课成绩查询”的内容
4.使用向导创建交叉表查询,查找学生表中每个院系的男女学生人数。保存此查询,名称为“学生男女人数统计查询”。查询结果如下图2-3所示。
学生男女人数统计查询 | |||||
---|---|---|---|---|---|
所在院系 | 总计 | 学号 | 男 | 女 | |
计算机技术 | 6 | 5 | 1 | ||
经济管理 | 2 | 1 | 1 | ||
外语 | 2 | 2 |
图2-3 “学生男女人数统计查询”的内容
5.使用向导创建重复项查询,查询学生表中相同专业的学生信息。保存此查询,名称为“相同专业的学生信息查询”。查询结果如下图2-4所示。
相同专业的学生信息查询 | |||||
---|---|---|---|---|---|
学号 | 姓名 | 姓名 | 性别 | 入学年份 | 所在院系 |
财务管理 | 201200030008 | 吴天天 | 女 | 2012 | 经济管理 |
财务管理 | 201200030001 | 刘书旺 | 男 | 2012 | 经济管理 |
计算机信息管理 | 201400010003 | 刘国庆 | 男 | 2014 | 计算机技术 |
计算机信息管理 | 201400010001 | 李明媚 | 女 | 2014 | 计算机技术 |
计算机信息管理 | 201300010001 | 张实在 | 男 | 2013 | 计算机技术 |
软件技术 | 201300010002 | 201300010002 | 男 | 2013 | 计算机技术 |
软件技术 | 201200010006 | 贺华峰 | 男 | 2012 | 计算机技术 |
商务英语 | 201400010002 | 陈洁 | 女 | 2014 | 外语 |
商务英语 | 201200020007 | 高明明 | 女 | 2012 | 外语 |
图2-4 “相同专业的学生信息查询”的内容
6.使用向导创建不匹配项查询,查找没有选修课程的学生的学号、姓名和所在院系信息。保存此查询,名称为“没有选修课程的学生查询”。查询结果如下图2-5所示。
没有选修课程的学生查询 | |||||
---|---|---|---|---|---|
学号 | 姓名 | 所在院系 | |||
201200030001 | 刘书旺 | 经济管理 | |||
201200030008 | 吴天天 | 经济管理 | |||
201300010002 | 王凯 | 计算机技术 | |||
201400010002 | 陈洁 | 外语 | |||
201400010003 | 刘国庆 | 计算机技术 |
图2-5 “没有选修课程的学生查询”的内容
7.使用设计视图创建以下查询:
(1)查询计算机技术系所有女学生的信息。此查询设计网格如下图2-6所示。
图2-6查询计算机技术系所有女学生信息的查询设计网格
(2)查询课程成绩为90分及以上的学生姓名、课程名和成绩。此查询的设计视图如下图2-7所示。
图2-7查询课程成绩为90分及以上的学生姓名、课程名和成绩的设计视图
(3)查询“数据库技术”课程的平均成绩。此查询的设计视图如下图2-8所示。
图2-8查询“数据库技术”课程平均成绩的设计视图
(4)查询所有学生选修的每门课程的平均成绩。此查询的设计视图如下图2-9所示。
图2-9查询所有学生选修的每门课程平均成绩的设计视图
8.创建生成表查询,将所有 “外语”系的学生信息保存到一个新的名为“文科学生”表中。此查询的设计视图如下图2-10所示。
图2-10按要求创建生成表查询的设计视图
9.创建追加查询,将学生表中“经济管理”系的学生信息保存到 “文科学生”表中。此查询的设计视图如下图2-11所示。
图2-11按要求创建追加查询的设计视图
10.创建更新查询,将“文科学生”表中所在系为“外语”系改为“英语”系。 此查询的设计视图如下图2-12所示。
图2-12按要求创建更新查询的设计视图
11.创建参数查询,根据学生的学号,查询学生的姓名,所选修的课程号、课程名、修课学期和成绩。此查询的设计视图如下图2-13所示。
图2-13按要求创建单参数查询的设计视图
12.创建多参数查询,根据学生的学号和课程号,查询学生的姓名,所选修的课程名和成绩。此查询的设计视图如下图2-14所示。
图2-14按要求创建多参数查询的设计视图
13.使用SQL语句创建以下查询:
(1)查询每门课程的课程号、课程名、学分、任课教师名和职称。
SELECT 课程号, 课程名, 学分, 教师姓名 as 任课教师名, 职称
FROM 课程表 inner join 教师表 on 课程表.教工号=教师表.教工号;
(2)查询课程成绩在70分以下的学生姓名,课程名称和成绩。
SELECT 姓名, 课程名, 成绩
FROM 课程表 INNER JOIN (学生表 INNER JOIN 选课表 ON 学生表.学号 = 选课表.学号)
ON 课程表.课程号 = 选课表.课程号
WHERE 成绩<70;
(3)查询仅被一个学生选修的课程号、课程名和选修人数。
SELECT 课程表.课程号, 课程名, count(*) as 选课人数
FROM 课程表 INNER JOIN 选课表 ON 课程表.课程号 = 选课表.课程号
group by 课程表.课程号, 课程名
having count(*)=1;
(4)查询所有的课程中,课程平均成绩在75分及以上的课程号,课程名和平均成绩。
SELECT 课程表.课程号, 课程名, avg(成绩) as 平均成绩
FROM 课程表 INNER JOIN 选课表 ON 课程表.课程号 = 选课表.课程号
group by 课程表.课程号, 课程名
having avg(成绩)>=75;