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