训练2操作题参考答案
《数据库及其应用》机考训练
操作题参考答案
在《数据库机考训练》中,目前一共提供给学生2套练习题,其中每套4道操作题,为方便任课教师和学生进行操作和答题,在此给出题目中难点的解题标答(非难点部分答案略)。本套标答对应的试卷提交后能在评分信息中看到操作题的试题序号如下图所示,其4道操作题相关解题操作如下:
1-7301操作题: .............................................................................................................................. 1 2-7297操作题: .............................................................................................................................. 8 3-7298操作题: ............................................................................................................................ 14 4-7290操作题: ............................................................................................................................ 20
1-7301操作题:
一、基本操作
1.将" 学生基本情况" 表的" 学生编号" 字段名称改为" 学号" ;修改" 相片" 字段的类型为"OLE" 型; 答案:
2.设置" 学生成绩情况" 表的主键为" 学号" 和" 课程" 字段; 答案:
(说明:同时选择“学号”、“课程”字段,单击“主键”按钮)
3.为" 学生成绩情况" 表设置字段属性,使得输入的成绩只能在0-100之间(含0和100),如果超范围则显示" 成绩只能在0-100之间" ; 答案:
4.为" 学生基本情况" 表中的" 性别" 字段创建查阅列表,列表中显示" 男" 和" 女" 两个值; 答案:
5.在" 学生基本情况表" 的数据表中设置冻结" 学号" ,并隐藏" 班级" 列; 答案:略。
6.在" 学生基本情况" 、" 学生成绩情况" 和" 课外小组" 三表之间建立关联关系,并设置参照完整性。 答案:
二、简单操作
1.创建查询,查询统计每个班学生成绩在80以上(不包括80)的课程数,显示的字段有" 班级" 和" 大于80的课程数" ,所建查询名为"Q1" 。 答案:
SELECT 学生基本情况. 班级, Count(学生成绩情况.[课程]) AS 大于80的课程数
FROM 学生基本情况 INNER JOIN 学生成绩情况 ON 学生基本情况. 学号 = 学生成绩情况. 学号 WHERE (((学生成绩情况. 成绩)>80)) GROUP BY 学生基本情况. 班级;
2.创建查询,查询1987年9月1日以后(包括1987年9月1日)出生的学生人数,查询结果显示" 人数" ,所建
查询名为"Q2" 。 答案:
SELECT Count([学号]) AS 人数 FROM 学生基本情况
WHERE (((学生基本情况. 出生日期)>#9/1/1987#));
3.创建查询,查询各个课外小组的人员姓名和所在班级,查询时先显示" 请输入课外小组名称" ,然后再给出查询的结果,查询结果显示" 姓名" 和" 班级" 字段,所建查询名为"Q3" 。(提示:在查询设计视图中完成操作) 答案:
SELECT 学生基本情况. 姓名, 学生基本情况. 班级
FROM 学生基本情况 INNER JOIN 课外小组情况 ON 学生基本情况. 学号 = 课外小组情况. 学号 WHERE (((课外小组情况. 小组名称)=[请输入课外小组名称]));
4.创建一个更新查询,将所有学生成绩减少5分,所建查询名为"Q4" 。(提示:在查询设计视图中完成操作, 仅运行一次) 答案:
UPDATE 学生成绩情况 SET 学生成绩情况. 成绩 = [成绩]-5;
2-7297操作题:
一、基本操作题
1.在" 考试数据库.accdb " 数据库文件中建立表" tTeacher " ,表结构如下:
答案:
2.设置" tTeacher " 表中" 编号" 字段为主键;" 职称" 字段的默认值为:" 讲师" ; 答案:
3.设置" tTeacher " 表中" 工作日期" 字段的相应属性,使其满足输入的工作日期必须在2013年1月1日之前(不
包括2013年1月1日),超出这一范围时,应显示文本:工作日期有误; 答案:
4.设置" tTeacher " 表中" 年龄" 字段的" 输入掩码" 属性,设置为:只能输入2位整数的数据(要求:2位必须
都输入); 答案:
5.在" tTeacher " 表中输入以下2条记录:
答案:略。
6.设置" tScore " 表中的" 学号" 字段值为组合框选择,可选择的值为" tStud " 表中的" 学号" 字段值(行来源选
默认选项) 。 答案:
7.建立数据库中" tScore " 表和" tStud " 表之间的关系,并实施参照完整性,级联更新相关记录,级联删除相
关记录。 答案:
二、简单应用题
1. 创建一个更新查询,更新" tTeacher " 表,将" 年龄" 小于65岁并且" 职称" 为教授的记录的" 退休否" 字段值改为否,所建查询命名为qStud2。(要求建立查询后,至少运行一次) 答案:
UPDATE tTeacher SET tTeacher.退休否 = False
WHERE (((tTeacher.年龄)
2. 创建一个查询,查找是团员或简历为空的学生的平均成绩,查询结果显示" 学号" 、" 姓名" 和" 平均成绩" 三个字段(其中" 平均成绩" 是计算数学、计算机和英语三门课成绩的平均值,为计算字段),所建立查询命名为qStud3。 答案:
SELECT tStud.学号, tStud.姓名, ([数学]+[计算机]+[英语])/3 AS 平均成绩 FROM tScore INNER JOIN tStud ON tScore.学号 = tStud.学号 WHERE (((tStud.简历) Is Null)) OR (((tStud.团员否)=True));
3. 创建一个查询,根据" 性别" 分组统计" 年龄" 大于26岁的学生英语课程的平均分,显示" 性别" 和" 英语平均成绩" 两个字段,所建立查询命名为qStud4。 答案:
SELECT tStud.性别, Avg(tScore.英语) AS 英语平均成绩 FROM tScore INNER JOIN tStud ON tScore.学号 = tStud.学号 WHERE (((tStud.年龄)>26)) GROUP BY tStud.性别
;
3-7298操作题:
一、基本操作
1. 设置"tDoctor" 表中" 性别" 字段的默认值属性,属性值为" 男" ;并为该字段创建查阅列表,列表中显示" 男" 和" 女" 两个值;
答案:
2. 在"tDoctor" 表中设置" 年龄" 字段的相应属性,使其输入的年龄必须在18岁至60岁之间(含18岁和60岁),如果超出范围则显示:年龄应在18岁到60岁之间;
答案:
3. 在"tDoctor" 表中取消对" 年龄" 字段值的隐藏;
答案:
4. 在"tSubscribe" 表的数据表视图,将数据显示的顺序设置为按预约日期从前往后排序;
答案:
5. 将下列数据输入到"tDoctor" 表中;
医生ID 姓名
性别 年龄
-------------------------------------------------------- A 007 李霞 女 20
答案:略。
6. 分析"tSubscribe" 表的字段构成,判断并设置其主键。
答案:
二、简单应用
1. 创建一个查询,查找姓名为两个字的" 王" 姓病人的预约信息,并显示" 病人姓名" 、" 年龄" 、" 性别" 、" 预约日期" 、" 科室名称" 和" 医生姓名" ,所建查询名为"Q1"
(说明:病人姓名为"tPatient" 表中的姓名,医生姓名为"tDoctor" 表中的姓名) 。
答案:
多表连接查询,若还没有建立关系,需要先建立关系
SELECT tPatient. 姓名 AS 病人姓名, tPatient. 年龄, tPatient. 性别, tSubscribe. 预约日期, tOffice. 科室名称, tDoctor.姓名 AS 医生姓名
FROM tDoctor INNER JOIN (tPatient INNER JOIN (tOffice INNER JOIN tSubscribe ON tOffice.科室ID = tSubscribe. 科室ID) ON tPatient. 病人ID = tSubscribe. 病人ID) ON tDoctor. 医生ID = tSubscribe. 医生ID
WHERE (((tPatient.姓名) Like "王?"));
2. 创建一个交叉表查询,统计每个科室每天的预约人数,结果显示" 科室名称" 、" 预约日期" 和" 预约人数" ,并统计所有科室每天的预约量,并在每一行的最后一列显示每天预约的总人数" 总计" 字段,见下图。所建查询名为"Q2" 。
答案:
此列的位置可在数据视图下手动拖到最后一列。
3. 创建一个查询,找出没有留下电话的病人数,查询结果显示" 病人数" , 所建查询名为"Q3" 。
答案:
SELECT Count([病人ID]) AS 病人数 FROM tPatient
WHERE (((tPatient.电话)=IsNull([电话])));
4-7290操作题:
一、基本操作
1. 在"tStock" 表的" 产品名称" 和" 规格" 字段之间增加一个新字段,字段名称为" 单位" ,数据类型为文本,字段大小为1;对" 单位" 字段进行适当设置,使已有记录在该字段上值均为" 只" ,并保证在向该数据表输入数据时," 单位" 字段的初始值自动置为" 只" ; 答案:
2. 设置"tStock" 表的" 规格" 字段的输入掩码属性,输入掩码的格式为:"220V- W" 。其中,"-" 与"W" 之间为两位,且只能输入0~9之间的数字;(要求:输入数据时,必须输入2位数字) 答案:
3. 设置"tQuota" 表中" 最高储备" 字段的有效性规则和有效性文本,有效性规则是:输入的最高储备值应小于等于60000;有效性文本内容为:输入的数据有误请重新输入; 答案:
4. 将"tQuota" 表的单元格效果改为" 凹陷" ,字体改为" 幼圆" ; 答案:
5. 分析"tStock" 和"tQuota" 两个表对象的字段构成,判断并设置其主键,建立"tQuota" 表与"tStock" 表之间的关系,并实施参照完整性。 答案:
此处应是tQuota 主键拖向tStock 主键
二、简单应用
1. 创建名为"Q1" 的查询,通过输入" 产品名称" 参数值,查询其产品记录,并显示"tStock" 表中的所有字段内
容;当运行该查询时,提示框中应显示" 请输入产品名称" , 显示格式及内容参照下图。
答案:
SELECT tStock.产品ID, tStock.产品名称, tStock.单位, tStock.规格, tStock.出厂价, tStock.库存数量 FROM tStock
WHERE (((tStock.产品名称)=[请输入产品名称]));
2. 创建一个查询,按" 产品名称" 分组计算产品的库存金额合计,并显示" 产品名称" 和" 库存金额" 两列数据,所建查询名为"Q2" ;(说明:库存金额=出厂价×库存数量) 答案:
或者
SELECT tStock.产品名称, Sum([出厂价]*[库存数量]) AS 库存金额 FROM tStock
GROUP BY tStock.产品名称;
3. 创建一个查询,查询出库存数量小于最低储备的产品,并显示产品ID 、产品名称、单位、规格、出厂价和库存数量信息,所建查询名为"Q3" 。 答案:
SELECT tQuota.产品ID, tStock.产品名称, tStock.单位, tStock.规格, tStock.出厂价, tStock.库存数量
FROM tQuota INNER JOIN tStock ON tQuota.产品ID = tStock.产品ID WHERE (((tStock.库存数量)