Access教学管理数据库实验全流程:建表、SQL查询与避坑指南
简介这份《数据库及其应用》实验报告文档面向高校数据库课程学习者尤其适合正在完成Access实验作业或准备课程设计的学生。内容围绕数据库设计、创建与应用展开涵盖E-R模型构建、关系模型转换、表结构与字段属性定义、主键与参照完整性设置以及Access数据库窗口基本操作、查询表达式、SQL SELECT与增删改语句、参数查询、动作查询等核心知识点同时涉及与文本文件、Excel之间的数据导入导出与链接操作。资源包为单个doc文档大小约1.45MB结构完整、步骤清晰可直接作为实验报告参考模板。已有112人学习下载能帮助读者快速理解数据库实验流程、掌握Access操作要点并为后续学习SQL Server、Oracle或MySQL等数据库系统打下基础。1. 从一份实验报告拆起Access 教学管理库到底能跑通什么如果你手头也压着一份《数据库及其应用》的实验报告或者正带学生做 Access 课程设计大概率会遇到同一个尴尬文档里 E-R 图、关系模式、SQL 语句全都有但真打开 Access 2003 照着敲表建到一半就卡住——关系建不起来、参照完整性报错、查询结果对不上。这份“数据库作业.doc”本质上就是一套完整的教学管理数据库实验记录覆盖数据库设计、建库建表、SQL 查询、动作查询、数据导入导出五个环节配套 E-R 模型和关系模式已经给全。它适合两类人一是要交实验报告的学生二是需要一套可复现 Access 案例的授课者。下面我不复述文档而是把它拆成能照着跑的操作链顺带把当年踩过的坑标出来。2. 建库建表从 E-R 模型到五张表的落地顺序2.1 先定关系模式再动手建表文档里给出的 E-R 模型包含五个实体学生、专业、学院、课程、成绩。转成关系模式后是这样表名字段主键外键学院学院号、学院、院长学院号无专业专业号、专业、专业类别、学院号专业号学院号 → 学院学生学号、姓名、性别、生日、民族、籍贯、专业号、简历、登记照学号专业号 → 专业课程课程号、课程名、学分、学院号课程号学院号 → 学院成绩学号、课程号、成绩学号课程号学号 → 学生课程号 → 课程建表顺序不能乱。Access 在建立关系时要求被引用的主表先存在所以正确顺序是学院 → 专业 → 学生 → 课程 → 成绩。我见过有人先建成绩表结果外键引用学生表时找不到目标关系对话框里直接是灰的。2.2 字段属性设置格式、掩码、查阅三件套文档里对字段属性的要求很细这里挑三个最容易翻车的点说。格式设置。民族字段要黄色显示格式框填[黄色]生日要中文红色填长日期[红色]成绩要三位整数一位小数蓝色字段大小选“单精度型”格式填###.#[蓝色]。注意格式只影响显示不改存储值。输入掩码。学号是 8 位纯数字掩码填00000000。这里有个细节0表示必须输入数字9表示可选数字#表示可选数字或空格。文档问“不用 0 而用 9 或 # 有何区别”答案就在这——用0时用户少输一位 Access 会拦用9则允许留空。查阅控件。专业表的“学院号”要绑定查阅行来源写SELECT 学院.学院号, 学院.学院 FROM 学院;显示控件选“列表框”列数设 2列宽设0cm;2cm把第一列藏起来。这样输入时看到的是学院名存进去的是学院号。2.3 参照完整性与级联操作关系建好后双击关系线弹出“编辑关系”对话框勾选“实施参照完整性”。这时下面两个复选框才可用级联更新相关字段主表主键改了子表外键自动跟着改。级联删除相关字段主表记录删了子表对应记录一起删。文档里问“撤销级联更新有何影响”实测结果是撤销后如果你改了学院表的学院号专业表里原来的学院号就变成孤儿值查询时这些专业会从内连接结果里消失。所以除非你有意做数据隔离否则这两个都勾上。还有一个高频问题建立关系是否要求两个字段同名不要求。Access 只要求数据类型一致、主表字段是主键或唯一索引。但同名能省掉后面写 SQL 时的心智负担我一般建议同名。3. SQL 视图实操从表达式到六类 SELECT 查询3.1 表达式运算先搞清 Access 的运算符优先级文档里给了一组表达式练习直接进 SQL 视图敲SELECT -5.12^2(17 mod 3); SELECT Hello ,World!, LEFT(清华大学出版社,2)RIGHT(清华大学出版社,3); SELECT 你毕业的年份是, VAL(LEFT([你的学号],4))4; SELECT 现在是 STR(YEAR(DATE())) 年 , 现在的时间是CSTR(TIME()); SELECT 张三李四, ABCDabcd, (DATE()-#1992-10-8#)1000;几个关键点^是乘方mod是取余字符串用拼接。VAL把文本转数字STR把数字转文本但会留前导空格CSTR不会。日期常量用#包裹。字符串比较按字符编码逐位比所以ABCDabcd返回 True。3.2 六类 SELECT 查询逐条拆解文档里的 SELECT 练习覆盖了连接、条件、分组、子查询、模糊匹配、TOP N基本是一套完整的查询教学链。多表内连接SELECT * FROM ((学院 INNER JOIN 专业 ON 学院.学院号专业.学院号) INNER JOIN 学生 ON 专业.专业号学生.专业号);Access 的 SQL 视图对嵌套连接要求加括号少一层括号就报语法错误。这是 Access 和标准 SQL 的一个差异点。条件查询SELECT 专业,学生.* FROM 专业 INNER JOIN 学生 ON 专业.专业号学生.专业号 WHERE 专业.专业工商管理 AND 学生.性别女;注意学生.*的写法它只取学生表的全部字段不重复专业表字段。分组聚合SELECT 学生.学号,姓名,AVG(成绩) AS 平均分 FROM 学生 INNER JOIN 成绩 ON 学生.学号成绩.学号 GROUP BY 学生.学号,姓名 HAVING AVG(成绩)80;HAVING和WHERE的区别在这里很直观WHERE过滤行HAVING过滤组。聚合条件只能放HAVING。子查询SELECT 专业号,专业 FROM 专业 WHERE 专业号 NOT IN (SELECT 专业号 FROM 学生);NOT IN子查询在数据量大时会慢但教学场景够用。模糊匹配SELECT * FROM 学生 WHERE 籍贯 LIKE 湖北* AND 生日 #1988-1-1#;Access 的通配符是*和?不是%和_。这是从 MySQL 转过来的人最容易踩的坑。TOP NSELECT TOP 1 课程.课程号,课程名 FROM 课程 INNER JOIN 成绩 ON 课程.课程号成绩.课程号 GROUP BY 课程.课程号,课程名 ORDER BY COUNT(*) DESC;TOP 1取排序后第一条配合ORDER BY COUNT(*) DESC就是选课人数最多的课。3.3 插入、更新、删除与建表INSERT INTO 课程 VALUES(06020101,会计学原理,3,06); UPDATE 课程 SET 学分学分1 WHERE 学院号04; DELETE FROM 课程 WHERE 学院号09 AND 课程号 NOT IN (SELECT 课程号 FROM 成绩);建教师表CREATE TABLE 教师( 工号 TEXT(6) PRIMARY KEY, 姓名 TEXT(10), 性别 TEXT, 生日 DATE, 职称 TEXT(8), 基本工资 MONEY, 学院号 TEXT(1) REFERENCES 学院(学院号) );REFERENCES子句在建表时直接声明外键省去后面手动建关系。但 Access 对REFERENCES的支持有限有时需要在设计视图里补建关系才能生效。4. 动作查询与数据交换生成表、追加、导入导出4.1 四类动作查询的对应关系文档里要求做生成表、删除、追加、更新四类动作查询它们和 SQL 语句的对应关系是动作查询对应 SQL用途生成表查询SELECT INTO把查询结果存成新表删除查询DELETE批量删记录追加查询INSERT INTO ... SELECT把一组记录加到已有表更新查询UPDATE批量改字段值生成表查询的 SQL 写法SELECT 学生.学号,姓名,AVG(成绩) AS 平均分 INTO 优秀学生名单 FROM 学生 INNER JOIN 成绩 ON 学生.学号成绩.学号 GROUP BY 学生.学号,姓名 HAVING AVG(成绩)80;追加查询INSERT INTO 优秀学生名单 SELECT 学生.学号,姓名,AVG(成绩) AS 平均分 FROM 学生 INNER JOIN 成绩 ON 学生.学号成绩.学号 GROUP BY 学生.学号,姓名 HAVING AVG(成绩) BETWEEN 80 AND 85;注意追加查询要求目标表的字段顺序和类型与 SELECT 结果一致否则报“字段数不匹配”。4.2 导出到文本和 Excel导出文本时文档要求逗号分隔、文本型不加引号、包含字段名。操作路径是右键查询对象 → 导出 → 选“文本文件” → 在向导里选“带分隔符” → 分隔符选逗号 → 文本限定符选“无” → 勾选“包含字段名”。导出 Excel 更简单右键 → 导出 → 选 Excel 格式 → 指定文件名和路径。注意 Access 2003 导出的是.xls格式不是.xlsx。4.3 导入时的字段类型指定导入文本文件时Access 会弹出一个向导让你逐列指定类型。这里有个坑如果文本文件里学号是1110010207这种纯数字Access 默认会猜成数字型导入后前导零丢失。正确做法是在向导里手动把学号列改成文本型。导入 Excel 同理向导里可以指定主键。文档要求导入后指定学号和课程号为主键这一步在导入向导的最后一步完成或者导入后在设计视图里补设。5. 避坑排查五个高频翻车现场现象一建关系时提示“关系必须具有相同的字段类型”。原因两个字段数据类型不一致比如一个是文本一个是数字。 解决回到设计视图把外键字段类型改成和主键一致。文本型还要确认字段大小相同。现象二输入记录时提示“违反了参照完整性规则”。原因子表外键值在主表里不存在比如专业表填了学院号“99”但学院表里没有“99”。 解决先往学院表补录该学院再回专业表输入。或者临时取消参照完整性但生产环境不建议。现象三SQL 视图里写LIKE %湖北%查不到数据。原因Access 的通配符是*不是%。 解决改成LIKE *湖北*。如果是从其他数据库迁移 SQL这是必踩的坑。现象四导出文本文件后中文变乱码。原因Access 2003 默认用系统编码导出如果目标系统用 UTF-8 打开就乱码。 解决导出时在向导里选编码或者导出后用记事本另存为 UTF-8。教学场景一般用 GB2312 就够。现象五动作查询执行后无法撤销。原因动作查询直接改数据Access 不提供回滚。 解决执行前先备份数据库文件或者先用 SELECT 确认条件范围。我一般会先把 WHERE 条件单独跑一遍 SELECT确认命中记录数再执行动作查询。6. 进阶技巧用一条 SQL 验证参照完整性是否生效建完库、输完数据后怎么快速确认参照完整性真的在起作用不用逐条试跑一条查询就能验证SELECT 专业.专业号, 专业.学院号 FROM 专业 LEFT JOIN 学院 ON 专业.学院号学院.学院号 WHERE 学院.学院号 IS NULL;如果返回空结果说明专业表里所有学院号都能在学院表找到对应参照完整性没被破坏。如果返回了记录说明有孤儿数据需要补录或修正。同样的思路可以套到学生表和成绩表SELECT 成绩.学号, 成绩.课程号 FROM 成绩 LEFT JOIN 学生 ON 成绩.学号学生.学号 WHERE 学生.学号 IS NULL;这条查的是成绩表里有没有学号在学生表找不到的记录。两条都返回空整个库的引用完整性才算过关。还有一个实用技巧把常用查询保存为查询对象后可以在窗体或报表里直接引用不用每次重写 SQL。文档里要求保存“优秀学生”查询对象就是这个用途。保存时命名要规范我习惯用“qry_”前缀比如qry_优秀学生这样在对象列表里一眼能区分表和查询。从那以后我每次建完关系库都会先跑一遍这两条 LEFT JOIN 检查确认没有孤儿记录再往下做查询和导出。这个习惯帮我省掉了无数次“查询结果少了几条”的排查时间。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

CMOS图像传感器选型指南:从参数解读到样片验证的行业调研

CMOS图像传感器选型指南:从参数解读到样片验证的行业调研

简介:这份行业分析资料聚焦CMOS数字图像传感器领域,面向半导体、消费电子及投资研究从业者,帮助读者系统把握全球与中国市场的规模走势、竞争格局与技术演进方向。资源为单个PDF文档,压缩包约413KB,内容以数据表格与文…

2026/10/9 10:35:03 阅读更多 →
PerfDog性能测试有效测量方法论:从数据采集到根因归因

PerfDog性能测试有效测量方法论:从数据采集到根因归因

1. 这不是又一个“点几下就出报告”的工具教程PerfDog——这三个字最近在测试圈、开发组、甚至产品需求评审会上出现的频率,高得有点反常。某次和一位做App质量保障的同行吃饭,他掏出手机翻出刚跑完的PerfDog报告截图,第一句话不是“帧率稳了…

2026/10/9 10:34:02 阅读更多 →
Java就业信息管理系统实战:Spring Boot+MyBatis-Plus快速搭建指南

Java就业信息管理系统实战:Spring Boot+MyBatis-Plus快速搭建指南

简介:这是一套基于Java与Vue技术栈开发的就业信息管理系统完整源码,面向高校计算机专业学生、Java后端初学者及全栈开发入门者,解决求职数据集中管理、多角色协同操作与可视化分析等实际问题。系统采用Spring BootVue前后端分离架构&#xff…

2026/10/9 10:34:02 阅读更多 →

最新新闻

YOLO实时物体检测实战:从齿条螺栓螺母裂纹数据集到TensorRT部署

YOLO实时物体检测实战:从齿条螺栓螺母裂纹数据集到TensorRT部署

简介:面向工业质检与计算机视觉开发者的YOLO实时物体检测工程包,聚焦齿条、螺栓、螺母及裂缝等目标的识别与定位,适合有深度学习基础的开发者进行算法研究或项目移植;YOLO本身将检测任务转化为单个回归问题,通过网格与…

2026/10/10 16:02:54 阅读更多 →
用C#与easyHook实现Win32 API Hook:程序行为监控与远程注入实战

用C#与easyHook实现Win32 API Hook:程序行为监控与远程注入实战

简介:这是一份C# EasyHook库的完整使用示例工程,面向需要在运行时实现跨进程函数拦截与注入的.NET开发者,适合对Windows钩子机制有一定了解、希望快速上手EasyHook的读者。包内包含WinForms测试窗口、类库工程与可运行Demo,覆盖了…

2026/10/10 16:02:54 阅读更多 →
yolov5果蔬识别实战:数据集构建、训练调参与产线部署避坑指南

yolov5果蔬识别实战:数据集构建、训练调参与产线部署避坑指南

简介:这是一套面向深度学习入门者与计算机视觉方向学生的YOLOv5果蔬识别完整项目包,围绕土豆、圣女果、大白菜、大葱、梨、胡萝卜、芒果、苹果、西红柿、韭菜、香蕉、黄瓜等十余类常见果蔬的检测任务展开,可用于课程设计、毕业设计或算法练手…

2026/10/10 16:02:54 阅读更多 →
O2O平台CRM系统架构设计:从线索公私海到平台化落地

O2O平台CRM系统架构设计:从线索公私海到平台化落地

简介:美团O2O的CRM系统架构设计.doc 以美团 CRM 为样本,系统拆解 O2O 平台如何借助客户关系管理增强线下资源控制与服务品质。资源面向产品经理、B端运营及电商架构师,适合需要理解销售线索管理、运营中台、数据决策支持和移动办公场景的读者…

2026/10/10 16:02:54 阅读更多 →
ElasticSearch搜索系统建设实战:从Docker部署到线上自愈

ElasticSearch搜索系统建设实战:从Docker部署到线上自愈

简介:本资源是一份面向Java开发者与技术分享者的ElasticSearch入门到进阶PPT课件,共40余页,系统梳理了搜索引擎选型必要性、Lucene演进脉络、ES核心架构(节点/集群/分片/副本)、RESTful API实践要点及与Solr、Splunk的…

2026/10/10 16:02:54 阅读更多 →
热电联产机组联合优化调度:Matlab+YALMIP建模风电消纳与储热电锅炉算例

热电联产机组联合优化调度:Matlab+YALMIP建模风电消纳与储热电锅炉算例

1. 冬季供暖季的弃风困局:热电联产机组到底卡在哪每年供暖季一过,风电场的同事就开始盯着调度曲线叹气:白天风光还好,一到后半夜风速上来了,风电场却得压出力,甚至有整场停机的时候。而另一边,热…

2026/10/10 16:01:52 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →