87、数据库维护与查询操作指南

数据库维护与查询操作指南

1. 计算字段创建方式对比

在数据库操作中,我们可以使用“计算字段”数据类型来创建计算字段,它能将表达式的结果作为一个字段存储在表中。然而,数据库专家并不建议这样做,原因主要有以下几点:
- 占用空间 :将计算数据存储在表中会消耗宝贵的空间,增加数据库的大小。而在查询中使用计算字段,计算结果不会存储在数据库中,仅在运行查询时生成,且始终保持最新。
- 功能受限 :“计算字段”数据类型在创建计算时提供的选项有限,而查询中的计算字段能提供更多的函数和选项来创建表达式。
- 升级困难 :如果后续需要将数据库升级到更强大的数据库管理系统(如 Oracle 或 SQL Server),而这些系统不支持“计算字段”数据类型,就需要重新设计数据库来消除该数据类型。
- 违反原则 :在表中包含一个值依赖于表中其他字段的字段,违反了数据库设计原则。

为避免这些问题,最好在查询中包含计算字段来执行所需的计算,而不是在表中创建使用“计算字段”数据类型的字段。完成相关操作后,要记得保存并关闭“UnpaidInvoiceLateFee”查询。

2. 聚合函数的使用

2.1 常用聚合函数介绍

可以使用 Access 聚合函数来计算表数据表或查询所选择记录的统计信息,如总和、平均值等。以下是一些常用的聚合函数及其支持的数据类型:
| 聚合函数 | 功能 | 支持的数据类型 |
| ---- | ---- | ---- |
| Average | 计算所选记录字段值的平均值 | AutoNumber、Currency、Date/Time、Number |
| Count | 计算所选记录的数量 | AutoNumber、Currency、Date/Time、Long Text、Number、OLE Object、Short Text、Yes/No |
| Maximum | 找出所选记录字段的最高值 | AutoNumber、Currency、Date/Time、Number、Short Text |
| Minimum | 找出所选记录字段的最低值 | AutoNumber、Currency、Date/Time、Number、Short Text |
| Sum | 计算所选记录字段值的总和 | AutoNumber、Currency、Date/Time、Number |

2.2 使用总计行进行聚合计算

如果想在表或查询数据表中快速使用聚合函数进行计算,可以使用“主页”选项卡“记录”组中的“总计”按钮。以下是显示“Billing”表中所有发票总金额的具体操作步骤:
1. 打开导航窗格,以数据表视图打开“Billing”表,然后关闭导航窗格。
2. 确保显示“主页”选项卡。
3. 在“记录”组中,点击“总计”按钮,此时数据表底部会添加一行,标签为“总计”。
4. 滚动到数据表底部,查看数据表中的最后记录和“总计”行,我们要显示“Invoice Amt”列中所有值的总和。
5. 在“总计”行中,点击“Invoice Amt”列,字段左侧会出现一个箭头。
6. 点击箭头,显示聚合函数菜单,菜单中显示的函数取决于当前字段的数据类型,这里是针对“Currency”字段的函数。
7. 在菜单中点击“Sum”,Access 会将“Invoice Amt”列中的所有值相加,并在该列的“总计”行中显示总和 $20,603.00。
8. 如果不想让“Billing”表始终显示这个总计,可以再次点击“总计”按钮,该按钮作为切换开关,可在显示带有计算结果的“总计”行和不显示该行的数据表之间切换。
9. 关闭“Billing”表,不保存更改。

2.3 创建带聚合函数的查询

为了满足 Cindi 了解 Chatham 社区医疗服务中心所有发票的最小、平均和最大金额的需求,我们需要在查询中使用聚合函数。以下是具体操作步骤:

2.3.1 计算所有发票金额的最小值
  1. 在设计视图中创建一个新查询,将“Billing”表添加到查询窗口,然后关闭“显示表”对话框。调整“Billing”字段列表的大小,以显示所有字段。
  2. 在“Billing”字段列表中,双击“InvoiceAmt”三次,将该字段的三个副本添加到设计网格中。
  3. 在“设计”选项卡的“显示/隐藏”组中,点击“总计”按钮,设计网格的“表”行和“排序”行之间会添加一个名为“总计”的行,该行每个字段的默认条目是“Group By”运算符。
  4. 点击第一列“总计”框的右侧,然后点击“Min”,该字段将计算所有“InvoiceAmt”字段值的最小值。
  5. 在第一列的“字段”框中,点击“InvoiceAmt”的左侧,然后输入“MinimumInvoiceAmt:”(包括冒号)。
  6. 使用指针双击前两列之间的列分隔线,以便看到完整的字段名“MinimumInvoiceAmt:InvoiceAmt”。
  7. 在“设计”选项卡的“显示/隐藏”组中,点击“属性表”按钮,打开当前字段的属性表。
  8. 在“标题”框中输入“Minimum Invoice Amt”,然后关闭属性表。
2.3.2 计算所有发票金额的平均值和最大值
  1. 点击第二列“总计”框的右侧,然后点击“Avg”,该字段将计算所有“InvoiceAmt”字段值的平均值。
  2. 在第二列的“字段”框中,点击“InvoiceAmt”的左侧,然后输入“AverageInvoiceAmt:”。
  3. 调整第二列的大小,以完全显示字段名“AverageInvoiceAmt:InvoiceAmt”。
  4. 打开当前字段的属性表,将其“标题”属性设置为“Average Invoice Amt”,并保持属性表打开。
  5. 点击第三列“总计”框的右侧,然后点击“Max”,该字段将计算所有“InvoiceAmt”字段值的最大值。
  6. 在第三列的“字段”框中,点击“InvoiceAmt”的左侧,然后输入“MaximumInvoiceAmt:”。
  7. 调整第三列的大小,以完全显示字段名“MaximumInvoiceAmt:InvoiceAmt”。
  8. 在当前字段的属性表中,将“标题”属性设置为“Maximum Invoice Amt”,然后关闭属性表。
  9. 运行查询,Access 将显示一条记录,包含三个聚合函数的结果,这一行汇总统计信息代表基于查询所选的所有记录(这里是“Billing”表中的所有 203 条记录)的计算结果。
  10. 调整所有列的大小,使其达到最佳适合状态,以便完全显示列名,然后点击第一列的字段值,取消选择该值并查看结果。
  11. 将查询保存为“InvoiceAmtStatistics”。

2.4 使用记录组计算

Cindi 还希望查看与诊所预约就诊和直接就诊相关的相同发票金额统计信息(最小、平均和最大)。我们可以通过修改当前查询,添加“WalkIn”字段并为其分配“Group By”运算符来实现。以下是创建带有“Group By”运算符的新查询的步骤:
1. 在设计视图中显示“InvoiceAmtStatistics”查询,由于查询已打开,可以使用“后台视图”以新名称保存它,同时保留原始查询不变。
2. 点击“文件”选项卡显示“后台视图”,然后在导航栏中点击“另存为”,打开“另存为”屏幕。
3. 在左侧的“文件类型”部分,点击“另存为对象”,屏幕右侧会显示将当前数据库对象另存为新对象的选项。
4. 点击“另存为”按钮,打开“另存为”对话框,表明正在保存“InvoiceAmtStatistics”查询的副本。
5. 输入“InvoiceAmtStatisticsByWalkIn”替换突出显示的名称,然后按回车键,新查询将以指定的名称保存并在设计视图中显示。
6. 在“设计”选项卡的“查询设置”组中,点击“显示表”按钮,打开“显示表”对话框。
7. 将“Visit”表添加到查询窗口,关闭“显示表”对话框,然后调整“Visit”字段列表的大小。
8. 将“Visit”字段列表中的“WalkIn”字段拖到设计网格的第一列,释放鼠标按钮后,“WalkIn”字段将出现在设计网格的第一列,现有字段将向右移动,“WalkIn”字段的“总计”行默认选项为“Group By”。
9. 运行查询,Access 将显示两条记录,分别对应“WalkIn”组的“是”和“否”,每条记录包含该组的“WalkIn”字段值和三个聚合函数的值,汇总统计信息基于“Billing”表中的 203 条记录计算得出。
10. 保存并关闭查询。
11. 打开导航窗格。

2.5 导航窗格的使用

导航窗格是处理数据库对象的主要区域,它提供了多种方式对数据库对象进行分组,以满足不同的需求。以下是不同分组方式的操作步骤:
1. 在导航窗格顶部,点击“所有 Access 对象”按钮,会显示一个菜单,用于选择不同的类别和组。
2. 在菜单的顶部部分,点击“表和相关视图”,导航窗格现在将按表的类别进行分组,数据库中的每个表(“Visit”、“Billing”和“Patient”)都成为一个组,与表相关的所有数据库对象都列在表名下方。
3. 在导航窗格顶部,点击“所有表”按钮显示导航窗格菜单,然后点击“Patient”,导航窗格现在只显示与“Patient”表相关的对象,即表本身以及包含“Patient”表字段的六个查询。
4. 在导航窗格顶部,点击“Patient”按钮,然后点击“对象类型”,返回导航窗格的默认显示。
5. 压缩并修复 Chatham 数据库,然后关闭数据库。如果出现对话框警告此操作将导致 Microsoft Access 清空剪贴板,点击“是”按钮继续。

以下是使用 mermaid 格式绘制的操作流程示意图:

graph LR
    A[开始] --> B[计算字段选择]
    B --> C{是否使用计算字段数据类型}
    C -- 否 --> D[使用查询计算字段]
    C -- 是 --> E[考虑风险]
    D --> F[聚合函数使用]
    E --> F
    F --> G{使用场景}
    G -- 快速计算 --> H[使用总计行]
    G -- 详细统计 --> I[创建带聚合函数查询]
    I --> J{是否分组统计}
    J -- 是 --> K[使用记录组计算]
    J -- 否 --> L[完成查询]
    H --> M[导航窗格操作]
    K --> M
    L --> M
    M --> N[结束]

通过以上操作,我们可以有效地维护和查询数据库,满足不同的数据分析需求。在实际操作中,要根据具体情况选择合适的方法和工具,确保数据的准确性和高效性。

3. 导航窗格分组功能深入解析

3.1 分组原理与默认设置

导航窗格是数据库操作中的重要工具,它将数据库对象划分为不同的类别,每个类别又包含若干组,组中则包含一个或多个对象。默认情况下,类别为“对象类型”,它按照对象的类型,如表格、查询、表单和报告进行排列;默认组为“所有 Access 对象”,会显示数据库中的所有对象。我们可以在导航窗格顶部看到“所有 Access 对象”这个默认组名,当前各个对象类型(如表格、查询等)以标题形式显示,相关对象则列在标题下方。

3.2 不同分组方式的效果

3.2.1 按“表和相关视图”分组

当我们在导航窗格顶部点击“所有 Access 对象”按钮,弹出选择类别和组的菜单后,在菜单顶部部分点击“表和相关视图”,导航窗格就会按照表的类别进行分组。此时,数据库中的每个表(如“Visit”、“Billing”和“Patient”)都会成为一个独立的组,而与该表相关的所有数据库对象都会列在表名下方。例如,基于“Visit”和“Billing”两个表的“UnpaidInvoiceLateFee”查询,会同时出现在这两个表对应的组中。这种分组方式有助于我们清晰地看到每个表及其相关对象的关联关系。

3.2.2 按特定表筛选显示

若想更聚焦于某个特定的表,我们可以进行进一步操作。在导航窗格顶部点击“所有表”按钮,显示导航窗格菜单后点击某个特定表,如“Patient”,导航窗格就只会显示与“Patient”表相关的对象,包括表本身以及包含“Patient”表字段的六个查询。之后,如果想回到默认显示,只需在导航窗格顶部点击“Patient”按钮,然后点击“对象类型”即可。

3.3 分组操作的实际应用场景

在数据库管理过程中,不同的分组方式适用于不同的场景。当我们需要全面了解数据库中各个对象的类型分布时,使用默认的“对象类型”分组可以快速定位到不同类型的对象。而当我们在进行数据维护和分析时,按“表和相关视图”分组能让我们清晰地看到每个表与相关查询、表单等对象的关系,便于对数据进行整体管理。如果我们只关注某个特定表的数据和相关操作,按特定表筛选显示的方式则能让我们更专注于该表的相关内容,提高操作效率。

以下是导航窗格分组操作的总结表格:
| 操作步骤 | 操作内容 | 效果 |
| ---- | ---- | ---- |
| 1 | 点击导航窗格顶部“所有 Access 对象”按钮 | 显示选择类别和组的菜单 |
| 2 | 在菜单顶部点击“表和相关视图” | 导航窗格按表类别分组,显示表及相关对象 |
| 3 | 点击导航窗格顶部“所有表”按钮,再点击特定表(如“Patient”) | 导航窗格只显示特定表及相关对象 |
| 4 | 点击“Patient”按钮,再点击“对象类型” | 导航窗格回到默认显示 |

4. 数据库操作的综合考量与优化建议

4.1 计算字段选择的优化

在选择使用计算字段时,我们已经了解到使用“计算字段”数据类型存储计算结果存在诸多弊端。因此,在日常数据库操作中,应优先考虑在查询中使用计算字段。这样不仅可以避免占用过多的数据库空间,还能保证计算结果的实时性。同时,查询中的计算字段提供了更丰富的函数和选项,能够满足更复杂的计算需求。

4.2 聚合函数使用的注意事项

在使用聚合函数时,要根据数据类型选择合适的函数。不同的聚合函数对数据类型有不同的要求,如“Count”函数可以处理多种数据类型,而“Sum”函数主要适用于数值类型的数据。在使用总计行进行快速计算时,要注意及时关闭总计行显示,避免对数据显示造成干扰。在创建带聚合函数的查询时,要仔细设置字段名和标题,确保查询结果的可读性。

4.3 导航窗格分组的灵活运用

导航窗格的分组功能为我们管理数据库对象提供了很大的便利。在实际操作中,要根据具体的工作需求灵活选择分组方式。当需要对数据库进行全面管理和查看时,可以使用默认的“对象类型”分组;当需要深入分析某个表及其相关对象时,选择“表和相关视图”分组;当只关注特定表的内容时,使用按特定表筛选显示的方式。

以下是一个 mermaid 格式的决策流程图,帮助我们在数据库操作中进行综合考量:

graph LR
    A[数据库操作需求] --> B{是否需要计算字段}
    B -- 是 --> C{使用哪种方式}
    C -- 计算字段数据类型 --> D[考虑弊端并谨慎使用]
    C -- 查询计算字段 --> E[创建查询]
    B -- 否 --> F{是否需要统计信息}
    F -- 是 --> G{使用场景}
    G -- 快速计算 --> H[使用总计行]
    G -- 详细统计 --> I[创建带聚合函数查询]
    I --> J{是否分组统计}
    J -- 是 --> K[使用记录组计算]
    J -- 否 --> L[完成查询]
    F -- 否 --> M{是否需要管理对象}
    M -- 是 --> N{选择分组方式}
    N -- 对象类型 --> O[默认分组查看]
    N -- 表和相关视图 --> P[按表分组查看]
    N -- 特定表筛选 --> Q[聚焦特定表]
    M -- 否 --> R[结束操作]
    D --> F
    E --> F
    H --> M
    K --> M
    L --> M

通过以上对数据库操作各个方面的深入分析和优化建议,我们可以更加高效、准确地进行数据库的维护和查询工作,充分发挥数据库的作用,为数据分析和决策提供有力支持。在实际应用中,要不断总结经验,根据具体情况灵活运用各种操作方法和技巧,以适应不同的业务需求。

相关推荐

Java基于vue的数据管理系统(开题+源码)

基于Vue的数据管理系统的目的是开发一款高效、稳定、易用的数据管理系统,提高图书馆的管理效率和服务质量,为读者提供更好的阅读体验。[1]王帅, 刘磊. 测试驱动开发在Java程序设计课程实验教学中的应用[J]. 淮北师范大学学报(自然科学版), 2023, 44 (03): 83-87.[5]王志辉. 基于Java开发的数据库迁移方法和系统设计[J]. 电脑知识与技术, 2022, 18 (17): 19-21.2022-10-21 至 2022-11-30:准备参考文献,编写开题报告和文献综述。

媃安程序设计 284

基于nodejs+vue城市空气质量数据管理系统[程序+论文+开题]-计算机毕业设计

本研究旨在通过开发城市空气质量数据管理系统,实现空气质量数据的全面整合与高效利用。其意义在于:一是为政府环保部门提供科学决策支持,通过数据分析揭示空气质量变化规律,精准施策;二是增强公众环保意识,通过实时发布空气质量信息,引导居民合理安排出行,减少污染暴露;三是促进环保产业技术创新,推动空气质量监测技术的升级与应用,助力绿色城市建设。此外,该系统还有助于构建智慧环保体系,提升城市管理的智能化水平。

畔云计算机毕设 1310

Realm for Android 0.87.5 Eclipse集成版数据库开发实战

Realm 是一款专为移动设备设计的高性能、轻量级 NoSQL 数据库,直接以对象形式存储数据,无需 ORM 映射。其底层采用 C++ 核心引擎,跨平台支持 Android 与 iOS,提供接近原生的读写速度。在现代移动应用开发中,数据持久化是核心架构的重要组成部分。传统的 SQLite 或 ORM 框架如 ORMLite、GreenDAO 虽然具备一定的灵活性,但在性能与易用性之间往往难以兼顾。

weixin_34064233的博客 1156

毕业设计Java JSP供热计量后台数据管理系统MySQL实战指南

在JavaWeb开发中,JSP与MySQL的组合是构建后台数据管理系统的经典技术栈。其核心原理是通过JSP实现页面展示,Servlet处理请求,JavaBean承载数据,MySQL存储业务数据。这种架构的技术价值在于快速搭建数据增删改查与报表导出功能,尤其适合毕业设计场景。典型应用包括供热计量、小区管理等需要多条件查询与分页展示的系统。其中,MySQL表结构设计、索引优化与分页查询性能是关键难点。本文围绕供热计量后台数据管理系统,详细讲解从表结构设计到JSP页面展示的完整实现路径,并分享部署避坑与性能调优的

weixin_30522983的博客 66

工业互联网工控安全与工业质检AI大模型建设方案.pptx

工业互联网工控安全与工业质检AI大模型建设方案.pptx

超详细YOLOv8姿态检测全程概述:环境、训练、验证与预测详解

本篇博客详细介绍了使用YOLOv8-pose进行姿态估计的全过程,包括不同版本模型的性能比较、训练与验证步骤,以及预测代码的实现。它对模型参数、训练过程和输出结果进行了解释,同时提供了详细的配置文件示例和标签数据格式说明。此外,还演示了如何使用预训练模型进行图像预测,并如何处理和理解预测结果。最后,它还讨论了如何评估和比较不同模型的性能。如果有哪里写的不够清晰,小伙伴本可以给评论或者留言,我这边会尽快的优化博文内容,另外如有需要,我这边可支持技术答疑与支持。

CDBmax的博客 3万+

excel wind插件使用_Python和wind的交互—在债券中的应用

个人认为学会了怎么用python和wind交互以及怎么用python处理Excel数据,就基本能替换日常很多琐碎的债券工作,还不用担心Excel某个值改变了导致整个报表都毁了。事实上在python调用wind函数和在Excel中调用函数一样简单,只要会基本的操作就够了。下面详细的介绍如何用python和wind进行交互。首先安装好python+pycharm+wind。因为python...

weixin_39863918的博客 5328

brother的PT-9800PCN标签打印机二次开发

本来想通过esc/p指令打印标签,但是无奈能找到的资料太少,而且打电话给客服,也没有sample可以提供参考,后来客服说使用template功能的话,打印很方便。于是下载手册学习了一下, 先下载P-touch Editor软件,制作标签模板。 制作的模板就是普通的标签,不需要连接数据库之类的,模板里有3个object,分别是文本1,文本2,条形码3。这个很关键,后面的代码传送数据,就是按这...

3563

【Python程序开发】湖南省职业院校技能大赛python程序开发赛项样题二

【Python程序开发】湖南省职业院校技能大赛python程序开发赛项样题二

况老师话竞赛&blog 2192

RK3588嵌入式开发:从零构建Rockit多媒体处理引擎的实战指南

本文详细介绍了如何在RK3588嵌入式平台上从零构建Rockit多媒体处理引擎的实战指南。涵盖开发环境搭建、工具链配置、源码编译流程、硬件加速优化及典型问题解决方案,帮助开发者高效利用RK3588的NPU和VPU加速特性,实现高性能多媒体处理应用。

mango的博客 186

GAMES101作业3-遇到的各种问题及解决方法

记录在做作业3时遇到的一些坑!以及最后的解决办法。

qq_41835314的博客 6816

量子计算入门指南:密度算符的核心概念与应用解析

本文深入解析了量子计算中密度算符的核心概念与应用。作为描述量子系统“状态的状态”的关键数学工具,密度算符能有效处理混合态与子系统描述,是理解量子噪声、量子纠错和开放系统演化的基石。文章通过对比纯态与混合态,阐释了密度矩阵的数学定义与物理意义,并结合代码示例演示了其在实际量子计算问题中的强大威力。

day7的博客 469

音视频开发基础(1):模拟视频技术简介

模拟视频技术是指用模拟技术对动态影像进行捕捉、记来、处理、存储、传输、复现的技术.模拟视频技术的发明、发展与模拟电视系统的发展密不可分.下面将通过模拟电视系统来介绍模拟视频技术中的基本概念. 首先,人的视觉系统的特征为电视等視稿系铳的发明、发展提供了理论依据.光线通过角膜、腫孔、晶状体的折射光线.透过玻璃体到达视网展.视网膜上分布着光感受器,光感受器在光线的剌激下...

琅嬛福地 1492

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: 86、数据库查询与维护:逻辑运算、字段计算与格式设置
下一篇: ESP32-S3 ADC采样精度受ARM电源噪声干扰研究
linux6sysadmin
博客等级 码龄4年 59粉丝 1615原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值