从复习题到实战:ACCESS数据库对象、关系与查询设计指南
2026/9/18 1:30:10 网站建设 项目流程

简介:这份复习题资料面向正在备考ACCESS数据库、需要系统梳理《数据库及应用》课程重点的读者,尤其适合高校数据库课程期末考试前冲刺。内容以填空题和选择题两大板块组织,覆盖三级模式结构、关系模型完整性约束、并发控制、E-R模型转换、规范化、SQL查询与UPDATE、ACCESS对象等核心知识点,并配有选择题答案解析;文档从概念填空到典型习题层层递进,能够帮助读者快速检验掌握程度、理解易错考点。整个资源包只有1个docx文档,约23KB,轻量便于下载打印或导入笔记工具复习。选择题部分贴近股票数据表实操场景,串联SELECT、BETWEEN、DROP TABLE、CREATE VIEW等常用SQL语句,强化了从概念到实际操作的连接,具备较强的练习与自测价值。目前已有67人学习参考,值得数据库初学者作为考前自测与查漏补缺使用。

1. 一打开《中财ACCESS数据库复习题.docx》,先别急着背题,要先把题还原成数据库对象

每次考试前总有同学下载《中财ACCESS数据库复习题.docx》,打开后先扫一眼选择题和填空题,觉得“都会”,一上机做操作题就卡在新建表、建立关系、写条件查询上。这个文件里的知识点并不偏,难的是把纸面题目还原成Access中的实际对象:表、查询、窗体、报表和宏。下面不重复教材目录,直接按复习题的高频题型走——先讲关系模型和查询逻辑,再用SQL和查询设计器各练一遍增删改查,最后把docx里的题目导成能自测的Access题库。适合中财上课要做课程设计、准备计算机二级Access、或者工作中临时补ACCESS基础的人。每一步都能在Access里复现,卡住时知道去哪看参数、去哪找答案。

2. 中财ACCESS数据库复习题里的表关系与查询设计:先背理论再动手

2.1 复习题如何暴露Access数据库的三层结构

复习题里常出现“下列哪个属于Access数据库对象”这类选择题,考生往往只记名词,却看不到对象之间的依赖关系。Access不是把多个表放进一个文件夹就算完,而是以表为数据存储核心,以查询为数据逻辑层,以窗体、报表和宏/模块为交互与输出层。导航窗格中并列显示这六类对象,真正决定数据库可用性的,是前三者。

删除表时有一个习惯值得注意:删除表后,凡是基于该表的查询、窗体和报表都会出现“找不到名称”的错误,因为Access不会自动删除这些依赖对象。中财复习题若问“删除主表后,引用该表的查询会怎样”,正确选项往往不是“自动删除查询”,而是“查询保存出错,运行提示找不到对象”。这种题考的就是对象依赖,必须在导航窗格里实际删一次表,才能把答案记住。

2.2 主键、外键与参照完整性:关系题的关键是字段类型一致

关系题是《中财ACCESS数据库复习题.docx》里的重点,最常见的是给出“学生表”和“选课表”要求建立关系。看似只是拖拽字段,实际考查三个约束:主键要么是单字段,要么是联合主键;关联字段的数据类型和字段大小要一致,短文本10与短文本20不能建立关系;勾选“实施参照完整性”后,主表记录被删除时,若子表存在相关记录,Access会拒绝删除或按级联规则处理。

中财复习题里的订单、订单明细关系,和微软自带的北风数据库几乎同一套路。北风数据库是Access自带的练习样例,里面的“产品表、订单明细表”就是典型的主从关系。把北风的这两张表关系手工重建一遍,复习题里的关系图形题就不会丢分。

复习题常见出法考点对象最容易丢分的点
“下列哪种对象不能存储数据”表 vs 查询查询不存数据,只是逻辑视图
“两张表建立关系前必须保证什么”关系关联字段类型和大小一致
“级联更新相关字段”参照完整性只勾了完整性,没勾级联更新
“联合主键在哪里设置”表设计没按住Ctrl多选字段就按主键

2.3 用SQL在Access里把表结构和关系建出来

下面按中财复习题常考的选课场景,用SQL建两张表。在Access的“创建→查询设计”窗口中,关闭“显示表”对话框,右键空白处选“SQL视图”,把语句粘进去执行。

-- 建主表:学号设为主键 CREATE TABLE 学生 ( 学号 TEXT(10) PRIMARY KEY, 姓名 TEXT(20) NOT NULL, 院系 TEXT(30) NULL, 入学日期 DATETIME ); -- 建从表:学号、课程号组成联合主键,并设置外键 CREATE TABLE 选课 ( 学号 TEXT(10) NOT NULL, 课程号 TEXT(8) NOT NULL, 成绩 INTEGER, CONSTRAINT PK_选课 PRIMARY KEY (学号, 课程号), CONSTRAINT FK_选课_学生 FOREIGN KEY (学号) REFERENCES 学生(学号) );

TEXT(10)对应Access中的“短文本”字段,长度10。中文表名和字段名在自动生成的SQL里会被方括号包住,手工写时不加也能执行。PRIMARY KEY和CONSTRAINT是Access SQL引擎支持的写法,和SQL Server的声明式约束思路接近。执行后,打开“数据库工具→关系”,能看到一条从学生表指向选课表的连线,这就是复习题里要求建立关系的结果。

2.4 主键、索引、唯一约束的三角关系

复习题还常考索引,比如“主键是否必须创建索引”“成绩字段能否建立唯一索引”。主键在Access中会自动创建一个名为PrimaryKey的唯一索引,但有索引的字段不一定是主键。打开表设计视图工具栏里的“索引”按钮,能看到索引区,“唯一索引”列决定该索引是否允许重复。

把学号设成普通索引,只加速查询,不保证唯一;要保证不重复,必须把索引属性改为“是(无重复)”。成绩字段可以建索引,但不能加唯一性,因为多个学生的成绩相同。每做一张复习题里的表,就打开索引窗口看一眼:主键索引自动存在,外键字段建议手动加普通索引,其他字段越少越好,索引多会拖慢增删改。

3. 照着中财ACCESS数据库复习题练增删改查:动作查询与参数查询

3.1 复习题里“增删改查”的两条路线:菜单操作和SQL

中财复习题里的“增删改查”不会直接让你写INSERT,而是用“追加查询”“更新查询”“删除查询”等操作题出现。很多同学只知道选择查询,不知道动作查询是一类查询的统称。Access中的动作查询包括生成表、追加、更新和删除四种:生成表和追加对应“增”,更新对应“改”,删除对应“删”。

使用动作查询有一条安全原则:先在“查询设计”视图里按选择查询写出条件,确认预览出的记录数量后,再把查询类型切换成动作。Access的撤销能力极其有限,更新和删除跑完后无法一键还原,执行前最好复制一份表副本。

3.2 用SQL把三种动作查询各写一遍

以下SQL可以在查询的SQL视图里运行,每一条都对应复习题里的一个小题。

-- 追加查询:把成绩低于60的记录复制到“补考名单”表中 -- “补考名单”表必须已存在,且字段与SELECT返回的字段匹配 INSERT INTO 补考名单 (学号, 姓名, 课程号, 成绩) SELECT 学号, 姓名, 课程号, 成绩 FROM 选课 WHERE 成绩 < 60; -- 更新查询:给成绩在55到99之间的补考学生加5分 UPDATE 补考名单 SET 成绩 = 成绩 + 5 WHERE 成绩 >= 55 AND 成绩 < 100;

INSERT后面的字段列表不能省略,如果SELECT的列顺序与目标表不一致,数据会串列。UPDATE里的“成绩+5”和“成绩<100”同时出现时,Access先判断条件成立,再执行更新。注意Access的UPDATE不支持MySQL那种多表别名更新写法,需要多表更新时一般借助更新查询设计网格,两个表要通过联接线关联。

-- 删除查询:把补考名单中已通过的记录清掉 -- 执行前先运行选择查询确认命中行: -- SELECT * FROM 补考名单 WHERE 成绩 >= 60; DELETE FROM 补考名单 WHERE 成绩 >= 60;

“DELETE FROM 表 WHERE 条件”删除的是记录,不是字段。如果把表设计视图里的某个列拖进查询网格,Access可能显示的是“删除字段”,而不是“删除记录”。复习题常把这一点设计成判断题,考生要能区分“删除记录”和“删除字段”是两个不同概念。

3.3 多表JOIN查询:复习题里的统计题怎么写不跑偏

除了动作查询,选择题和操作题里出现频率最高的就是带连接和聚合的查询,比如“统计每个学生的总学分”“列出缺考学生”。设计网格适合入门,但要看懂SQL视图才能应对改错题。

SELECT 学生.学号, 学生.姓名, 选课.课程号, 选课.成绩 FROM 学生 INNER JOIN 选课 ON 学生.学号 = 选课.学号 WHERE 选课.成绩 BETWEEN 60 AND 90 ORDER BY 选课.成绩 DESC;

INNER JOIN只显示两边都匹配的记录,WHERE条件在连接之后过滤。“WHERE选课.成绩 BETWEEN 60 AND 90”如果写进ON子句,逻辑上是在连接前先过滤子表,结果条数类似,但语义不同。复习题问“为什么我查出来的名单里少了没选课的同学”,多半就是INNER JOIN把没选课的学生筛掉了,此时应改用LEFT JOIN,并在WHERE中判断选课.学号 IS NULL,也就是Access查询向导里的“查找不匹配项查询”。

复习题常见问法对应查询写法正确性检查
统计各院系人数GROUP BY 院系 + COUNT(*)SELECT中不能混入没有聚合的普通字段
列出没有选任何课程的学生LEFT JOIN + 选课.学号 IS NULL不能用INNER JOIN
显示及格率SUM(IIF(成绩>=60,1,0))/COUNT(*)IIF是Access函数,不要写成IF
更新库存单价更新查询,新值填[单价]*1.1先预览受影响记录

3.4 参数查询:复习题里“运行时要输入学号”的完整写法

参数查询是中级考点,复习题会给你一段残缺SQL,要求补参数声明。最简单的写法是把WHERE条件写成“[请输入学号]”,Access运行时会弹输入框。规范写法是在SQL顶部用PARAMETERS声明参数类型,避免类型转换歧义。

PARAMETERS [请输入学号] TEXT(10); SELECT 学生.学号, 学生.姓名, 选课.课程号, 选课.成绩 FROM 学生 INNER JOIN 选课 ON 学生.学号 = 选课.学号 WHERE 学生.学号 = [请输入学号];

TEXT(10)要与表中“学号”字段的字段大小一致,否则输入后可能查不到结果显示。参数名不要和字段名重叠,比如参数也叫“学号”,Access会把中括号识别成直接引用字段,不再弹出输入框。这是复习题中最常见的“运行时不弹窗”问题来源。

4. 把中财ACCESS数据库复习题.docx变成可机考的ACCESS题库

4.1 先定表结构:从docx复制题目到Access的“题库”表

复习题里的选择题很适合做成练习库,方便反复抽测。电脑上得先能运行Access:如果只装了Word,常见做法是打开Office安装程序,单独勾选Access组件完成Access下载;Office Tool Plus这类部署工具也能单独安装Access,装完登录微软账号时若提示“your access token could not be refreshed. please log out and sign in again.”,先退出登录再重新进一次,这是账号令牌过期,不是题库故障。复习题文件本身是docx,用WPS打开遇到格式错乱时,先另存为纯文本再粘贴,避免选项被切断。

在Access中新建一张“题库”表,字段设计尽量简单,但要把解析也留出来。

操作步骤:

  1. 打开《中财ACCESS数据库复习题.docx》,复制选择题部分;
  2. 在Access中新建表,切换到数据表视图粘贴;
  3. 把题干、选项A到D、正确答案拆到不同列;
  4. 如果docx里选项是“A.xxx B.xxx”挤在同一段,先用Excel“文本分列”按空格切分,再导入Access。
字段名类型作用
题号自动编号主键,随机抽题时也依赖它
题干长文本存完整题干,可容纳换行
选项A短文本选项文本
选项B短文本选项文本
选项C短文本选项文本
选项D短文本选项文本
正确答案短文本只存“A”“B”“C”“D”
解析长文本答错后显示复习题原解析

题干用长文本,是因为中财复习题中部分题干带换行,短文本最多存255个字符,放不下长题干。正确答案字段只存单个字母,后面批改代码做字符比较即可。

4.2 在窗体上实现随机抽题和自动判卷

有了题库表,创建窗体放四个文本框显示题干和选项,再放“随机抽题”按钮、“答案”输入框和“批改”按钮。进入VBA编辑器,把下面代码贴在随机按钮的单击事件中。

Private Sub cmdRandom_Click() Dim rs As DAO.Recordset Dim idList As New Collection Dim total As Long, pick As Long ' 先MoveLast再MoveFirst,确保RecordCount正确 Set rs = CurrentDb.OpenRecordset("SELECT 题号 FROM 题库") rs.MoveLast rs.MoveFirst Do Until rs.EOF idList.Add rs!题号 rs.MoveNext Loop rs.Close If idList.Count = 0 Then MsgBox "题库为空,先把题目粘贴进来" Exit Sub End If Randomize pick = Int(idList.Count * Rnd()) + 1 ' 按随机题号读取完整记录并显示到窗体控件 Set rs = CurrentDb.OpenRecordset( _ "SELECT * FROM 题库 WHERE 题号 = " & idList(pick)) Me.txt题干 = rs!题干 Me.txt选项A = rs!选项A Me.txt选项B = rs!选项B Me.txt选项C = rs!选项C Me.txt选项D = rs!选项D Me.txt答案 = rs!正确答案 rs.Close End Sub

RecordCount只对已定位的数据集有效,先MoveLast再MoveFirst是Access里的稳妥写法。Collection用来保存不定数量的题号,比数组省去重定义长度。Randomize配合Rnd,保证每次启动程序后随机序列不同。“rs!题号”返回自动编号长整型,直接拼接进WHERE字符串即可,不需要加引号。

批改按钮的事件代码更短,比较考生文本和正确答案:

Private Sub cmdCheck_Click() If Me.txt考生答案 = Me.txt答案 Then Me.lbl结果 = "答对了,解析:" & Me.txt解析 Else Me.lbl结果 = "答错了,正确答案是" & Me.txt答案 & "。" & Me.txt解析 End If End Sub

txt答案和txt解析控件可以设置Visible属性为False,只参与计算不在窗体上显示。复习题docx里的解析仍然保留在表里,答对答错都有反馈,比手翻纸面答案高效。

4.3 把复习题按章节分区,生成错题重练查询

题库导入后建议再加一个“章节”字段,例如填入“表/查询/窗体/宏”,然后创建两个查询:一个是“章节练习”,WHERE条件为“章节 = [请输入章节]”;另一个是“错题重练”,通过一张“错题表”记录答错的题号,再与题库表关联。错题表在批改按钮中插入当前题号即可,查询条件只筛错题表中的题号。这样《中财ACCESS数据库复习题.docx》里分散的题目,就变成了一张可反复重练的动态考卷。

5. 考前用ACCESS自带工具反向验证中财复习题的七个考点

5.1 七个高频考点的自检清单

最后阶段,与其把docx逐页翻一遍,不如打开“数据库工具”功能区,用自带工具逐项验证。下表是根据中财复习题高频题型整理的验证清单。

考点复习题里的问法在Access里如何验证
主键“学号字段能设为主键吗”表设计视图选中字段,点钥匙图标
字段大小“身份证号为什么用文本”短文本18位,数字会丢前导0
关系“订单和订单明细建立关系”数据库工具→关系,双击连线看参照完整性
参数化“运行时不弹输入框”查看SQL视图有无PARAMETERS声明
分组统计“统计每个学生总学分”检查GROUP BY包含SELECT中所有非聚合字段
动作查询“更新查询执行后能否撤销”执行前用选择查询预览命中记录
对象依赖“删除表后查询是否仍可运行”查看“对象相关性”任务窗格

5.2 用VBA立即窗口核对表结构

考前想快速核对复习题答案,可以在VBA编辑器按Ctrl+G打开立即窗口,运行下面这段循环代码,把当前库所有表和字段名打印出来。

Dim td As DAO.TableDef, fld As DAO.Field For Each td In CurrentDb.TableDefs If Left(td.Name, 4) <> "MSys" Then Debug.Print "表:" & td.Name For Each fld In td.Fields Debug.Print " " & fld.Name & " " & fld.Type Next fld End If Next td

MSys开头的表是Access系统表,打印出来会干扰判断,所以过滤掉。DAO.TableDef.Fields枚举出的字段顺序与表设计视图一致,复习题若问“表中第几个字段类型是什么”,运行这段代码可以直接看到结果。

5.3 最后一个技巧:把“数据库文档管理器”输出与docx逐条对照

Access的“数据库工具→分析→数据库文档管理器”可以把当前数据库所有对象的名称、字段属性、索引和关系导出为纯文本或PDF。我一般会选中全部对象,把输出保存成PDF,再打开原始的《中财ACCESS数据库复习题.docx》逐页对照。复习题里“给表添加说明”“设置有效性规则”“指定索引”这些细节,全部能在文档管理器报表中看到是否已经完成。操作顺序是:选择全部对象,格式选PDF,输出文件后按复习题的题号顺序逐条勾对,能明确看出哪些属性还没在库里落地。这道“导出文档—还原答案”的流程,比反复背题库更能发现练习里忽略的对象属性,也是把docx复习题和实际操作拉通的最快方法。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询