数据库维护与查询操作指南
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 计算所有发票金额的最小值
- 在设计视图中创建一个新查询,将“Billing”表添加到查询窗口,然后关闭“显示表”对话框。调整“Billing”字段列表的大小,以显示所有字段。
- 在“Billing”字段列表中,双击“InvoiceAmt”三次,将该字段的三个副本添加到设计网格中。
- 在“设计”选项卡的“显示/隐藏”组中,点击“总计”按钮,设计网格的“表”行和“排序”行之间会添加一个名为“总计”的行,该行每个字段的默认条目是“Group By”运算符。
- 点击第一列“总计”框的右侧,然后点击“Min”,该字段将计算所有“InvoiceAmt”字段值的最小值。
- 在第一列的“字段”框中,点击“InvoiceAmt”的左侧,然后输入“MinimumInvoiceAmt:”(包括冒号)。
- 使用指针双击前两列之间的列分隔线,以便看到完整的字段名“MinimumInvoiceAmt:InvoiceAmt”。
- 在“设计”选项卡的“显示/隐藏”组中,点击“属性表”按钮,打开当前字段的属性表。
- 在“标题”框中输入“Minimum Invoice Amt”,然后关闭属性表。
2.3.2 计算所有发票金额的平均值和最大值
- 点击第二列“总计”框的右侧,然后点击“Avg”,该字段将计算所有“InvoiceAmt”字段值的平均值。
- 在第二列的“字段”框中,点击“InvoiceAmt”的左侧,然后输入“AverageInvoiceAmt:”。
- 调整第二列的大小,以完全显示字段名“AverageInvoiceAmt:InvoiceAmt”。
- 打开当前字段的属性表,将其“标题”属性设置为“Average Invoice Amt”,并保持属性表打开。
- 点击第三列“总计”框的右侧,然后点击“Max”,该字段将计算所有“InvoiceAmt”字段值的最大值。
- 在第三列的“字段”框中,点击“InvoiceAmt”的左侧,然后输入“MaximumInvoiceAmt:”。
- 调整第三列的大小,以完全显示字段名“MaximumInvoiceAmt:InvoiceAmt”。
- 在当前字段的属性表中,将“标题”属性设置为“Maximum Invoice Amt”,然后关闭属性表。
- 运行查询,Access 将显示一条记录,包含三个聚合函数的结果,这一行汇总统计信息代表基于查询所选的所有记录(这里是“Billing”表中的所有 203 条记录)的计算结果。
- 调整所有列的大小,使其达到最佳适合状态,以便完全显示列名,然后点击第一列的字段值,取消选择该值并查看结果。
- 将查询保存为“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
通过以上对数据库操作各个方面的深入分析和优化建议,我们可以更加高效、准确地进行数据库的维护和查询工作,充分发挥数据库的作用,为数据分析和决策提供有力支持。在实际应用中,要不断总结经验,根据具体情况灵活运用各种操作方法和技巧,以适应不同的业务需求。
超级会员免费看

被折叠的 条评论
为什么被折叠?



