86、数据库查询与维护:逻辑运算、字段计算与格式设置

数据库查询与维护:逻辑运算、字段计算与格式设置

1. 数据库查询的逻辑运算基础

在数据库操作中,当需要根据多个条件筛选数据时,就会用到逻辑运算符。逻辑运算符主要有 And Or 两种,它们在筛选数据时有着不同的作用。

1.1 定义多条件筛选规则

在查询中使用多个条件时,需要借助逻辑运算符来组合这些条件。当希望只有在多个条件都满足时才选择某条记录,就使用 And 逻辑运算符;而如果只要满足其中一个条件就选择记录,则使用 Or 逻辑运算符。

逻辑运算符 条件满足情况 记录选择规则
And 所有条件都满足 选择记录
Or 至少一个条件满足 选择记录

1.2 使用 And 逻辑运算符创建查询

为了筛选出特定患者信息,我们可以使用 And 逻辑运算符创建一个新查询。具体步骤如下:
1. 点击界面上的 CREATE 选项卡。
2. 在 Queries 组中,点击 Query Design 按钮。
3. 将 Patient Visit 表添加到查询窗口,并关闭 Show Table 对话框,调整字段列表大小以显示所有字段名。
4. 按顺序将 Patient 表中的 FirstName LastName BirthDate Phone City 字段添加到设计网格。
5. 把 Visit 表中的 VisitDate Reason 字段添加到设计网格。
6. 点击 BirthDate 条件框,输入 <=12/31/1956
7. 按 Tab 键四次,移动到 Reason 条件框,输入 Influenza ,再按 Tab 键。
8. 运行查询,此时只会显示满足 BirthDate 小于等于 12/31/1956 Reason Influenza 的记录。
9. 点击快速访问工具栏上的保存按钮,将查询保存为 OlderAndFluPatients
10. 关闭查询。

1.3 使用 Or 逻辑运算符创建查询

当需要筛选出更广泛的患者信息时,可以使用 Or 逻辑运算符。具体操作步骤如下:
1. 打开导航窗格,通过快捷菜单复制并粘贴 OlderAndFluPatients 查询,将新查询命名为 OlderOrFluPatients
2. 在导航窗格中右键点击 OlderOrFluPatients 查询,选择 Design View 打开查询设计视图。
3. 关闭导航窗格。
4. 删除 Reason 字段在条件行中的现有条件。
5. 移动到 Reason 字段的 “or” 行,输入 Influenza ,按 Tab 键。
6. 点击 BirthDate 排序框右侧,选择 Descending 进行降序排序。
7. 运行查询,此时会显示满足 BirthDate 小于等于 12/31/1956 或者 Reason Influenza 的记录,也会包含同时满足两个条件的记录。

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A([开始]):::startend --> B(复制 OlderAndFluPatients 查询):::process
    B --> C(命名为 OlderOrFluPatients):::process
    C --> D(打开设计视图):::process
    D --> E(删除 Reason 条件):::process
    E --> F(在 or 行输入 Influenza):::process
    F --> G(设置 BirthDate 降序排序):::process
    G --> H(运行查询):::process
    H --> I([结束]):::startend

2. 理解 And Or 逻辑运算符的结果差异

使用 And 逻辑运算符时,由于需要满足多个条件才能选择记录,会使查询结果范围变窄。例如, OlderAndFluPatients 查询只得到了 2 条记录。而使用 Or 逻辑运算符时,只要满足一个条件就会选择记录,查询结果范围会变宽。例如, OlderOrFluPatients 查询得到了 38 条记录。在创建包含多个筛选条件的查询时,要清楚这种差异,以确保查询结果符合预期。

3. 调整查询数据表的显示格式

为了方便查看查询结果,可能需要对数据表的显示格式进行调整。

3.1 修改字体大小

可以通过以下步骤修改数据表的字体大小:
1. 在 HOME 选项卡的 Text Formatting 组中,点击 Font Size 箭头,选择 14 ,将整个数据表的字体大小增大到 14 磅。

3.2 调整列宽

为了使所有字段值都能完整显示,可以调整列宽:
1. 点击数据表选择器(位于 First Name 列标题左侧的框),此时数据表中的所有列都会被高亮显示,表示已选中。
2. 将指针放在数据表中任意列右侧的垂直线上,双击该垂直线,屏幕上可见的所有列都会自动调整到最佳宽度。如果需要,向下滚动并重复此操作,确保所有字段值都能完全显示。
3. 点击 First Name 列中的任意值,使该字段成为当前字段,并取消列的选择。

3.3 更改交替行颜色

可以通过以下步骤更改数据表的交替行颜色:
1. 在 HOME 选项卡的 Text Formatting 组中,点击 Alternate Row Color 按钮箭头,显示颜色选择库。
2. 在 Theme Colors 部分,点击 Orange, Accent 2, Lighter 60% (第三行,第六个颜色框),将该颜色应用到查询数据表的交替行。
3. 保存并关闭 OlderOrFluPatients 查询,此时查询将保存增大的字体大小和橙色交替行颜色。

4. 创建计算字段

除了筛选和排序数据,还可以在查询中进行计算。为了计算未支付发票的 2% 滞纳金,可以创建一个计算字段。

4.1 表达式构建器使用方法

使用表达式构建器创建计算字段的步骤如下:
1. 创建并保存包含计算字段的查询。
2. 打开查询设计视图。
3. 在设计网格中,点击要创建表达式的字段框。
4. 在 DESIGN 选项卡的 Query Setup 组中,点击 Builder 按钮。
5. 使用表达式元素和常用运算符构建表达式,或者直接在表达式框中输入表达式。
6. 点击 OK 按钮。

4.2 创建新查询和计算字段

具体操作步骤如下:
1. 点击界面上的 CREATE 选项卡。
2. 在 Queries 组中,点击 Query Design 按钮,打开 Show Table 对话框。
3. 将 Visit Billing 表添加到查询窗口,关闭 Show Table 对话框。
4. 调整两个字段列表大小,使所有字段名可见。
5. 按顺序将 Visit 表中的 VisitID PatientID VisitDate 字段,以及 Billing 表中的 InvoiceItem InvoicePaid InvoiceAmt 字段添加到设计网格。
6. 在 InvoicePaid 条件框中输入 No ,按 Esc 键关闭出现的菜单,再按 Tab 键。
7. 取消 InvoicePaid 字段的显示勾选。
8. 将查询保存为 UnpaidInvoiceLateFee
9. 点击 InvoiceAmt 字段右侧的空白字段框,点击 DESIGN 选项卡的 Query Setup 组中的 Builder 按钮,打开 Expression Builder 对话框。
10. 在 Expression Categories 部分双击 InvoiceAmt ,将字段名添加到表达式框。
11. 输入 * (乘号)和 .02 ,完成表达式输入。
12. 点击 OK 按钮,将表达式添加到设计网格的计算字段框。
13. 删除默认列名 Expr1 ,输入 LateFee
14. 点击 DESIGN 选项卡的 Show/Hide 组中的 Property Sheet 按钮,打开当前字段 LateFee 的属性表。
15. 在属性表的 Caption 框中输入 Late Fee ,关闭属性表。
16. 运行查询,此时会显示包含指定字段和带有标题 Late Fee 的计算字段的数据表。

4.3 格式化计算字段

为了使 LateFee 计算字段的值显示格式与 InvoiceAmt 字段一致,可以进行如下操作:
1. 切换到设计视图。
2. 点击设计网格中的 LateFee 计算字段,使其成为当前字段。
3. 点击 DESIGN 选项卡的 Show/Hide 组中的 Property Sheet 按钮,打开计算字段的属性表。
4. 点击属性表中 Format 框右侧,显示格式列表,选择 Currency
5. 关闭计算字段的属性表,运行查询,此时 LateFee 计算字段的金额将显示为带有美元符号和两位小数的格式。

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A([开始]):::startend --> B(创建新查询):::process
    B --> C(添加 Visit 和 Billing 表):::process
    C --> D(添加字段到设计网格):::process
    D --> E(设置 InvoicePaid 条件):::process
    E --> F(保存查询为 UnpaidInvoiceLateFee):::process
    F --> G(使用 Expression Builder 创建计算字段):::process
    G --> H(设置计算字段列名和标题):::process
    H --> I(运行查询):::process
    I --> J(切换到设计视图):::process
    J --> K(设置 LateFee 字段格式为 Currency):::process
    K --> L(运行查询查看结果):::process
    L --> M([结束]):::startend

通过以上操作,可以在数据库查询中灵活运用逻辑运算符、创建计算字段并设置显示格式,以满足不同的数据分析和展示需求。

5. 逻辑运算与计算字段的实际应用案例分析

为了更好地理解逻辑运算和计算字段在实际中的应用,下面通过一个综合案例进行详细分析。假设我们要从一个包含患者信息、就诊信息和账单信息的数据库中,筛选出满足特定条件的患者,并计算他们未支付账单的滞纳金。

5.1 案例需求

我们需要找出年龄在 60 岁以上(出生日期在 1956 年 12 月 31 日或之前)或者因流感就诊过的患者,同时计算他们未支付账单的 2% 滞纳金。

5.2 操作步骤
  1. 使用 Or 逻辑运算符筛选患者
    • 按照前面介绍的使用 Or 逻辑运算符创建查询的步骤,创建 OlderOrFluPatients 查询,筛选出符合年龄或就诊原因条件的患者。
  2. 创建计算字段计算滞纳金
    • 基于 OlderOrFluPatients 查询,结合 Billing 表,创建一个新的查询。
    • 按照创建计算字段的步骤,在新查询中创建 LateFee 计算字段,计算未支付账单的 2% 滞纳金。
  3. 格式化计算字段
    • 按照格式化计算字段的步骤,将 LateFee 字段的格式设置为 Currency ,使其显示为带有美元符号和两位小数的格式。
5.3 案例总结

通过这个案例,我们可以看到逻辑运算和计算字段的结合使用,能够从数据库中提取出有价值的信息,并进行必要的计算和格式化,为实际决策提供支持。

6. 数据库查询优化建议

在进行数据库查询时,为了提高查询效率和准确性,我们可以采取以下优化建议:

优化建议 具体内容
合理使用逻辑运算符 根据实际需求选择合适的逻辑运算符,避免不必要的筛选条件,以减少查询结果的范围。
优化字段选择 只选择需要的字段,避免选择过多不必要的字段,减少数据传输和处理的负担。
建立索引 对于经常用于筛选和排序的字段,建立索引可以提高查询速度。
定期清理数据 清理数据库中的无用数据,减少数据量,提高查询效率。

7. 总结与展望

通过本文的介绍,我们了解了数据库查询中逻辑运算符的使用、计算字段的创建和格式化,以及如何调整查询数据表的显示格式。这些操作可以帮助我们从数据库中提取出有价值的信息,并进行有效的分析和展示。

在未来的数据库操作中,我们可以进一步探索更复杂的查询和计算方法,结合数据分析工具,挖掘数据库中的潜在价值。同时,随着数据库技术的不断发展,我们也需要不断学习和掌握新的技术和方法,以适应不断变化的需求。

graph LR
    classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px

    A([开始]):::startend --> B(筛选患者):::process
    B --> C(创建计算字段):::process
    C --> D(格式化计算字段):::process
    D --> E(优化查询):::process
    E --> F(分析结果):::process
    F --> G([结束]):::startend

总之,数据库查询和维护是一项重要的技能,通过合理运用逻辑运算、计算字段和格式设置等方法,我们可以更好地管理和利用数据库中的数据。希望本文的内容对大家有所帮助,让大家在数据库操作中更加得心应手。

内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化训练,到执行分类及结果优化的完整流程,并介绍了精度评价通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置结果后处理环节,充分利用ENVI Modeler进行自动化建模参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值