查询简介

注意:  我们希望能够尽快以你的语言为你提供最新的帮助内容。 本页面是自动翻译的,可能包含语法错误或不准确之处。我们的目的是使此内容能对你有所帮助。可以在本页面底部告诉我们此信息是否对你有帮助吗? 请在此处查看本文的 英文版本 以便参考。

当您想要查看、 添加、 更改或删除您的数据库中的数据时,请考虑使用查询。

您可以使用查询,回答有关您很难回答通过直接查看表数据的数据非常具体的问题。您可以使用查询来筛选数据,以使用您的数据执行计算,并汇总数据。要自动执行许多数据管理任务并在提交到这些更改之前检查更改您的数据,还可以使用查询。

注意: 聚合查询函数,例如求和计数,不可用的 Web 查询。

使用查询更加轻松地完成许多数据库任务

本文内容

概述

查看表中的数据的子集

同时查看多个表中的数据

通过使用参数提出问题的变体

根据您的数据进行计算

查看汇总或聚合数据

使用其他表中的数据创建一个新表

将数据添加到表中,通过使用其他表中的数据

更改自动方式中的数据

删除自动方式中的数据

概述

本文提供了有关查询的基本信息,并提供了不同类型的查询的示例。

查询是数据结果、 操作的数据,或两个请求。您可以使用查询来回答简单的问题,以执行计算,组合来自不同表,数据或者甚至可以添加、 更改或删除表格数据。用于从表中检索数据或进行计算的查询称为 select 查询。添加、 更改或删除数据的查询称为动作查询。

您也可以使用查询提供窗体或报表的数据。在精心设计的数据库中,您希望通过使用窗体或报表呈现数据通常位于多个不同表中。使用查询,您可以组合您要使用您的窗体或报表设计之前的数据。

有关使用查询来提供数据的窗体和报表的详细信息,请参阅另请参阅部分中的链接,或搜索帮助。

打开一个现有查询

如果您不熟悉导航窗格中,您可能不知道如何打开已存在的查询。在导航窗格是取代了数据库窗口从 Access 2007 之前版本的功能。您将看到屏幕左侧的导航窗格。

若要打开任何数据库对象,包括查询,您可以双击导航窗格中的对象。

使用罗斯文数据库以追用示例

注意: 本文中的示例使用通过使用罗斯文 2010年数据库模板创建的数据库。

  1. 单击“文件”选项卡,然后单击“新建”。

  2. 可用模板下的中间窗格中单击样本模板,然后单击罗斯文

  3. 在右窗格中,查看文件名框中的数据库文件的名称,然后对名称进行任何更改。您还可以通过单击文件夹图标来为不同的文件位置浏览。

  4. 单击“创建”。

  5. 按照“罗斯文贸易”页(在“启动屏幕”对象选项卡上)上的说明打开数据库,然后关闭“登录对话框”窗口。

返回页首

查看表中的数据的子集

有时您可能希望查看的所有数据从一个表,但有时,您可能都希望查看仅从特定字段中,数据或都要查看数据,只有某些字段满足特定条件。若要查看一些表中的数据,您可以使用的选择查询。

假设您想要查看的产品和价格列表。您可以创建查询返回产品和价格信息通过使用以下过程:

  1. 打开罗斯文数据库,您以前设置通过使用以下步骤

  2. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

  3. 显示表对话框中,在表格选项卡上,双击产品

  4. 关闭“显示表”对话框。

  5. 在产品表中,双击产品名称列出价格将这些字段添加到查询设计网格。

  6. 在“设计”选项卡上的“结果”组中,单击“运行”。

    查询运行,并显示的产品和价格列表。

返回页首

同时查看多个表中的数据

精心设计的数据库中表之间存在逻辑相互关系。这些关系存在基于表共有的字段。当您想要查看相关表中的数据时,您可以使用的选择查询。

假设您想要查看特定所在城市中的客户订单。有关订单数据和有关客户的数据存储在同一个数据库中的两个表中。每个表具有两个表之间的一对多关系的基础的客户 ID 字段。您可以创建的查询,使用以下过程在一个特定的城市,例如,是拉斯维加斯,返回的客户订单:

  1. 打开罗斯文数据库,您以前设置通过使用以下步骤

  2. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

  3. 在“显示表”对话框的“”选项卡上,双击“客户”和“订单”。

  4. 关闭“显示表”对话框。

    请注意行中,称为联接,连接客户表中的 ID 字段和订单表中的客户 ID 字段。此线显示两个表之间的关系。

  5. 在“客户”表中,双击“公司”和“城市”,以便将这些字段添加到查询设计网格中。

  6. 在查询设计网格中,在城市列中,清除中的复选框 显示行中。

  7. 城市条件行中,键入天津

    清除显示复选框将阻止查询在结果中,显示城市,并在条件行中键入拉斯维加斯指定您想要查看其中的城市字段的值是拉斯维加斯的记录。在这种情况下,该查询返回位于拉斯维加斯的客户 — 公司 L 和公司 AA。

    请注意,您不需要显示用于条件的字段。

  8. 在“订单”表中,双击“订单 ID”和“订单日期”以便将这些字段添加到查询设计网格的后面两列中。

  9. 在“设计”选项卡上的“结果”组中,单击“运行”。

    查询运行和然后拉斯维加斯中显示的客户的订单列表。

  10. 按 Ctrl+S 保存该查询。

    将显示“另存为”对话框。

  11. 查询名称框中,键入按城市的订单,,然后单击确定

返回页首

通过使用参数提出问题的变体

有时您可能想要运行查询,只是从现有查询略有不同。您可以更改原始查询使用新的条件,但如果您经常要运行的变体的特定的查询,请考虑使用参数查询。运行参数查询时,查询会提示您输入字段值,然后使用您提供创建您的查询条件的值。

上一示例中,您可以创建返回位于拉斯维加斯的客户的订单的查询。您可以修改查询提示您指定城市每次运行查询,使用以下过程:

  1. 打开罗斯文数据库,您以前设置通过使用以下步骤

  2. 按 F11 显示导航窗格。

    注意: 此步骤不需要如果显示导航窗格。

  3. 在导航窗格中,右键单击名为“按城市显示订单”的查询(在上一部分中创建),然后单击快捷菜单上的“设计视图”。

  4. 在查询设计网格中,在条件行中的城市列中,删除天津,,然后键入[适用于哪些 city?]

    [适用于哪些 city?]的字符串是参数提示。方括号指示您希望查询要求输入和 (在本例中的文本 城市?)将参数提示中显示的问题。

    注意: 句号 (.) 和叹号 (!) 都不能用作参数提示信息中的文本。

  5. 选中“城市”列的“显示”行中的复选框,以使查询结果显示城市。

  6. 在“设计”选项卡上的“结果”组中,单击“运行”。

    查询将提示您输入城市中的值。

  7. 键入深圳,然后再按 ENTER。

    该查询将运行,并且显示深圳客户的订单。

    但是,如果您不知道可以指定哪些值?为使您的参数更灵活,可以使用通配符作为提示信息的一部分:

  8. 在“开始”选项卡上的“视图”组中,单击“视图”,然后单击“设计视图”。

  9. 在查询设计网格中,在条件行中的城市列中,键入[为哪些 city?] &"*"

    在此参数提示,请Like关键字,与号 (&)、,然后星号 (*) 括在引号中允许用户键入的字符,包括通配符,以返回结果的各种组合。例如,如果用户键入*,查询将返回所有城市;如果用户类型L,该查询返回所有以字母"L;"开头的城市,并且用户类型* s *,该查询返回所有城市包含字母"s"。

  10. 在“设计”选项卡上的“结果”组中,单击“运行”。

    在查询提示中,键入新建,,然后按 ENTER。

  11. 该查询将运行,并且显示深圳客户的订单。

指定参数数据类型

您还可以指定参数应该接受的数据类型。可以设置任何参数的数据类型,但尤其重要的是设置数值、货币或日期/时间数据的数据类型。在指定参数应该接受的数据类型后,如果用户输入错误类型的数据(例如,应该输入货币,但输入了文本),则会看到更有帮助的错误消息。

注意: 如果将参数设置为接受文本数据,则输入的任何内容都将被解释为文本,并且不会显示任何错误消息。

要指定查询中参数的数据类型,请执行以下步骤:

  1. 在设计视图中打开查询,在“设计”选项卡上的“显示/隐藏”组中,单击“参数”

  2. 在“查询参数”对话框中的“参数”列中,为您要为其指定数据类型的每个参数键入提示信息。请确保每个参数都与您在查询设计网格的“条件”行中使用的提示信息相匹配。

  3. “数据类型”列中,选择每个参数的数据类型。

返回页首

根据数据进行计算

大多数情况下,不使用表来存储基于同一个数据库中的数据的计算的值。例如,罗斯文 2007年中的订单明细表不存储产品小计,因为任何给定产品小计计算得出的数量,Unit Price 中存储的数据和折扣的订单明细表的字段。

在某些情况下计算的值可能会过期,因为它们基于更改的值。例如,您将不希望将某人的年龄存储在一个表,因为您需要更新的值; 每年相反,,您将存储该人员的出生日期,然后在查询中使用表达式计算年龄的人员。

使用以下过程创建的查询的计算基于订单明细表中的数据的产品小计。

  1. 打开罗斯文数据库,您以前设置通过使用以下步骤

  2. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

  3. 显示表对话框中,在表格选项卡上,双击订单详细信息

  4. 关闭“显示表”对话框。

  5. 在订单明细表中,双击产品 ID将此字段添加到查询设计网格的第一列。

  6. 在网格的第二列中,右键单击字段行,然后单击快捷菜单上的缩放

  7. 缩放框中,键入或粘贴下:

    小计: ([数量] * [单价])-([数量] * [单位折扣

    单击“确定”。

    这是计算的字段。计算的字段计算的每个数量的乘积 通过该产品的单价的产品的每个产品数量乘以单价和为该产品,折扣,然后减去从总单价的总折扣。

  8. 在“设计”选项卡上的“结果”组中,单击“运行”。

    查询运行,并显示的产品和分类汇总,每个订单列表。

  9. 按 CTRL + S 保存该查询,并将其命名为产品小计的查询。

返回页首

查看汇总或聚合数据

使用向交易记录或定期发生数值数据的存储表时,它可能够查看聚合,例如总和或平均值中的数据。

Access 允许您通过添加汇总行将查看任何数据表中的简单聚合数据。汇总行将是数据表的底部可以显示运行总和或其他聚合的值的行。

注意: 无法将汇总行将添加到 Web 查询的数据表。

您可以通过使用以下过程的上一示例中创建产品小计查询添加汇总行:

  1. 运行“产品小计”查询,并使结果在数据表视图中处于打开状态。

  2. 在“开始”选项卡上的“记录”组中,单击“合计”。

    数据表与第一列中的word 底部显示一个新行。

  3. 单击命名数据表的最后一行中的单元格。

    请注意,在单元格中显示的箭头。

  4. 单击箭头以查看可用的聚合函数。

    列中包含文本数据,因为有两个选项:计数

  5. 选择计数

    单元格的内容从变为的列的值的计数。

  6. 单击相邻的单元格 (第二列)。

    请注意,在单元格中显示的箭头。

  7. 单击箭头,,然后单击总和

    字段中显示的列的值的总和。

  8. 使该查询在数据表视图中处于打开状态。

创建总计查询更复杂的摘要

在数据表中的总计行是非常有用,但更复杂的问题,您可以使用总计查询。总计查询是允许您进行分组和汇总数据的选择查询。例如,假设您想要查看每种产品总销售额。在总计查询,您可以使用 Sum, 聚合函数,查看每种产品总销售额。

注意: 不能在 Web 查询中使用聚合函数。

使用以下过程来修改产品小计查询,以使其按产品汇总产品小计。

  1. 在“开始”选项卡上的“视图”组中,单击“视图”,然后单击“设计视图”。

    “产品小计”查询将在设计视图中打开。

  2. 设计选项卡上的显示/隐藏组中,单击汇总

    总计”行显示在查询设计网格中。

    注意: 尽管它们的名称相似,但是设计网格中的“总计”行与数据表中的“汇总”行并不相同:

    • 在设计网格中使用“总计”行,可以按字段值进行分组。

    • 可以向总计查询的结果中添加数据表“汇总”行。

    • 在设计网格中使用“总计”行时,必须为每个字段选择一个聚合函数。如果不想对某个字段执行计算,则可以按该字段进行分组。

  3. 在设计网格的第二列的“汇总”行中,从下拉列表中选择“合计”。

  4. 在“设计”选项卡上的“结果”组中,单击“运行”。

    查询将运行,并显示分类汇总的与产品的列表。

  5. 按 Ctrl+S 保存该查询。使该查询处于打开状态。

创建交叉表查询来添加另一个分组级别

现在,假设您想要查看产品小计,但您还想要按月份进行聚合,以便每行显示一种产品的小计,每列显示一个月份的产品小计。要同时显示一种产品的小计和一个月份的产品小计,请使用交叉表查询。

注意: 无法在 web 浏览器中显示交叉表查询。

可以再次修改“产品小计”查询,以使该查询返回产品小计行和每月小计列。

  1. 在“开始”选项卡上的“视图”组中,单击“视图”,然后单击“设计视图”。

  2. 在“查询设置”组中,单击“显示表”。

  3. 在“显示表”对话框中,双击“订单”,然后单击“关闭”。

  4. 在“设计”选项卡的“查询类型”组中,单击“交叉表”。

    在设计网格中,隐藏了“显示”行,显示了“交叉表”行。

  5. 在设计网格的第三列中,右键单击“字段”行,然后单击快捷菜单上的“显示比例”。“显示比例”框将打开。

  6. 缩放框中,键入或粘贴下:

    月份:"Month"& DatePart ("m",[订购日期])

  7. 单击“确定”。

  8. 交叉表行中,从下拉列表选择以下值: 第一列的标题行、 第二列中的和第三列的列标题

  9. 在“设计”选项卡上的“结果”组中,单击“运行”。

    查询将运行,然后显示产品小计,请按月聚合。

  10. 按 Ctrl+S 保存该查询。

Top of Page

使用其他表中的数据创建一个新表

您可以使用生成表查询,根据其他表中存储的数据创建一个新表。

注意: 无法在 web 浏览器中运行生成表查询。

例如,假设您要将南京订单的数据发送给使用 Access 准备报表的南京业务合作伙伴。您希望仅发送特定于南京订单的数据,而不是发送所有订单数据。

您可以构建包含南京订单数据的选择查询,然后按照下列步骤使用该选择查询创建新表:

  1. 打开罗斯文数据库,您以前设置通过使用以下步骤

  2. 若要运行生成表查询,您可能需要启用数据库内容,通过使用消息栏中,如果该数据库位于不受信任时将其打开,将显示在功能区下方。

    显示如何启用数据库

    • 在消息栏上,单击启用内容

    如果数据库位于受信任位置中,不会显示消息栏,并启用内容是不必要。

  3. 关闭登录对话框窗体。

  4. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

  5. 显示表对话框中,双击订单明细订单

  6. 关闭“显示表”对话框。

  7. 在“订单”表中,双击“客户 ID”和“发货城市”以便将这些字段添加到设计网格中。

  8. 在“订单明细”表中,双击“订单 ID”、“产品 ID”、“数量”、“单价”和“折扣”,以便将这些字段添加到设计网格中。

  9. 在设计网格的发货城市列中,清除显示行中的框。在条件行中,键入'南京' (包括单引号)。

    验证查询结果,然后使用它们来创建表。

  10. 在“设计”选项卡上的“结果”组中,单击“运行”。

  11. 按 Ctrl+S 保存该查询。

    将显示“另存为”对话框。

  12. 查询名称框中,键入南京订单查询,,然后单击确定

  13. 在“开始”选项卡上的“视图”组中,单击“视图”,然后单击“设计视图”。

  14. 在“设计”选项卡上的“查询类型”组中,单击“生成表”。

    随即显示“生成表”对话框。

  15. 生成表对话框中,在表名称框中,键入南京订单,,然后单击确定

  16. 在“设计”选项卡上的“结果”组中,单击“运行”。

  17. 在确认对话框中,单击进行确认。

    创建新的表,并在导航窗格中显示的表。

    注意: 如果已存在具有您指定的名称的表,查询运行前删除该表。

  18. 在“设计”选项卡上的“结果”组中,单击“运行”。

    因为存在南京订单表,将出现警告对话框。

  19. 单击以取消操作并关闭该对话框。

Top of Page

Add data to a table by using data from other tables

您可以使用追加查询检索一个或多个表中的数据,并将这些数据添加到另一个表中。

注意: 无法在 web 浏览器中运行追加查询。

假设您创建一个表相关的芝加哥的公司,与共享,但是您意识到关联也处理石家庄区域中的客户端。您想要添加与您的关联共享表之前包含石家庄区域到表中的数据的行。

您可以通过使用以下过程的上一示例中创建南京订单表中添加石家庄区域中的数据:

  1. 在设计视图中打开名为“南京订单查询”的查询。

  2. 设计选项卡上的查询类型组中,单击追加追加对话框随即打开。

  3. 追加对话框中,单击表名称框中的箭头,然后选择从下拉列表的南京订单

  4. 单击“确定”。

    追加对话框关闭。在设计网格中,显示行将消失,并且出现追加到行。

  5. 在设计网格中,在条件行中的发货城市列中,删除 '南京',然后键入'石家庄'

  6. 在“追加到”行中,为每列选择适当的字段。

    在本例中,“追加到”行的值应与“字段”行的值相匹配,但这并非追加查询正常运行的必需条件。

  7. “设计”选项卡上的“结果”组中,单击“运行”

注意:  在运行返回大量数据的查询时,可能会收到错误消息,指示您将无法撤消查询。请尝试将内存段限制增加到 3MB 以允许完成查询。

Top of Page

Change data in an automated fashion

您可以使用更新查询来更改表中的数据,还可以使用更新查询输入条件以指定应更新哪些行。通过更新查询,可以在执行更新前查看要更新的数据。

重要: 动作查询无法撤消。应考虑对要使用更新查询进行更新的所有表进行备份。

注意: 无法在 web 浏览器中运行更新查询。

上一示例中,您追加到南京订单表行。在南京订单表中,产品 ID 字段中显示数值的产品 id。以使数据更有用的报表,您可能想要将产品 Id 替换为产品名称。若要替换的产品 Id,您必须首先更改南京订单表的产品 ID 字段的数据类型从数为文本,以便产品 ID 字段可以接受产品名称。

您可以使用以下过程来更新南京订单表中的值:

  1. 在设计视图中打开“南京订单”表。

  2. 在“产品 ID”行中,将“数据类型”从“数值”更改为“文本”。

  3. 保存并关闭“南京订单”表。

  4. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

  5. In the Show Table dialog box, double-click Chicago Orders and Products.

  6. 关闭“显示表”对话框。

  7. 在“设计”选项卡上的“查询类型”组中,单击“更新”。

    在设计网格中,“排序”和“显示”行将消失,并且出现“更新到”行。

  8. 在“南京订单”表中,双击“产品 ID”将此字段添加到设计网格中。

  9. In the design grid, in the Update To row of the Product ID column, type or paste the following:

    [产品]。[产品名称]

    提示: 可以在“更新到”行中使用空字符串 ("") 或 NULL,通过更新查询来删除字段值。

  10. In the Criteria row, type or paste the following:

    [Product ID] Like ([Products].[ID])

    Like关键字是必需的因为进行比较的字段包含不同数据类型 (产品 ID 是文本数据,ID 是数值数据)。

  11. 通过在数据表视图中查看查询,可查看将要使用更新查询更改哪些值。

    “设计”选项卡上的“结果”组中,单击“视图”,然后单击“数据表视图”

    The query returns a list of Product IDs that will be updated.

  12. 在“设计”选项卡上的“结果”组中,单击“运行”。

    When you open the Chicago Orders table, you will see that the numeric values in the Product ID field have been replaced by the product names from the Products table.

Top of Page

Delete data in an automated fashion

您可以使用删除查询来删除表中的数据,并且可以使用删除查询输入条件来指定应删除的行。通过删除查询,您可以在执行删除操作前查看要删除的行。

注意: 无法在 web 浏览器中运行删除查询。

Suppose that you are preparing to send the Chicago Orders table (updated in the previous example) to your Chicago business associate, and you notice that some of the rows contain a number of empty fields. You would like to remove these rows that contain empty fields before you send the table. You could just open the table and delete the rows manually, but you might find it helpful to use a delete query if there are more than a few rows that you want to delete and you have clear criteria for which rows should be deleted.

按照以下步骤,可以使用查询来删除“南京订单”表中的不包含“订单 ID”值的行:

  1. 在“创建”选项卡上的“查询”组中,单击“查询设计”。

  2. In the Show Table dialog box, double-click Chicago Orders.

  3. 关闭“显示表”对话框。

  4. On the Design tab, in the Query Type group, click Delete.

    在设计网格中,“排序”和“显示”行将消失,并且出现“删除”行。

  5. “南京订单”表中,双击“订单 ID”以将其添加到网格中。

  6. 在设计网格中,在条件行中的订单 ID 列中,键入Is Null

  7. 在“设计”选项卡上的“结果”组中,单击“运行”。

Top of Page

扩展你的 Office 技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×