查询简介

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

使用查询可以更轻松地在 Access 数据库中查看、添加、删除或更改数据。使用查询的其他一些原因:

  • 通过根据特定条件筛选快速查找特定数据

  • 计算或汇总数据

  • 自动处理数据管理任务,例如定期查看最新数据。

注意:  如果要尝试示例中的查询,请使用 Access 桌面数据库。

查询帮助查找和处理数据

创建选择查询

创建参数查询

创建总计查询

创建交叉表查询

创建生成表查询

创建追加查询

创建更新查询

创建删除查询

查询帮助查找和处理数据

在设计良好的数据库中,要通过窗体或报表显示的数据通常位于多个表中。查询可以从不同表中提取信息并组合信息,以便显示在窗体或报表中。查询可以是向数据库提出的数据结果请求,也可以是数据操作请求,或两者兼有。查询可以为您提供简单问题的答案,执行计算,合并不同表的数据,添加、更改或删除数据库中的数据。由于查询如此通用,因此存在多种类型的查询,您可以根据任务创建某种类型的查询。

主要查询类型

用途

选择

用于从表中检索数据或进行计算。

动作

添加、更改或删除数据。每个任务都具有特定类型的操作查询。操作查询在 Access 应用程序中不可用。

返回页首

创建选择查询

如果您想要查看表中的特定字段中的数据或同时查看多个表中的数据或可能只看到根据特定条件的数据,选择查询类型是您的选择。有关详细信息,请参阅创建简单的选择查询

从选择字段查看数据

例如,如果数据库中某个表包含关于产品的许多信息,而您要查看产品及其价格的列表,请执行以下操作创建选择查询以便只返回产品名称和相应的价格:

  1. 打开数据库,在“创建”选项卡上,单击“查询设计”。

  2. 在“显示表”框中的“”选项卡上,双击“产品”表,然后关闭对话框。

  3. 在“产品”表中,假设您具有“产品名称”和“列出价格”字段。双击“产品名称”和“列出价格”以将这些字段添加到查询设计网格中。

  4. 设计选项卡上,单击运行。查询运行,并显示的产品和价格列表。

返回页首

从多个相关表同时查看数据

例如,如果您具有食品销售商店的数据库,并且要查看生活在特定城市的客户的订单。假设关于订单的数据和关于客户的数据分别存储在名为“客户”和“订单”的两个表中。假设每个表都包含“客户 ID”字段,该字段构成这两个表之间的一对多关系。按照下列步骤,可以创建查询以便返回特定城市(例如,天津)中客户的订单:

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

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

  3. 关闭“显示表”对话框。请注意将“客户”表中的“ID”字段与“订单”表中的“客户 ID”字段连接起来的连线,它称为联接。该连线显示了两个表之间的关系。

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

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

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

    清除“显示”复选框可防止查询在其结果中显示城市,而在“条件”行中键入天津可指定您只想查看“城市”字段值为“天津”的记录。在此情况下,该查询只返回位于天津的客户。您不必显示某个字段就可以在条件中使用它。

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

  8. “设计”选项卡上的“结果”组中,单击“运行”。该查询将运行,并且显示天津的客户的订单列表。

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

返回页首

创建参数查询

如果您经常希望运行特定查询的变体,请考虑使用参数查询。在运行参数查询时,查询将提示您提供字段值,然后使用您所提供的值创建查询条件。

注意:  您不能在 Access 应用程序中创建参数查询。

继续上一个示例,您已了解如何创建一个返回位于天津的客户的订单的选择查询,您可以修改该选择查询,以便在您每次运行该查询时都提示您指定城市。若要执行此操作,请打开您在上一示例中创建的数据库。

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

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

    字符串 [请指定城市] 是参数提示。方括号表示您希望查询要求用户输入参数,方括号中的文本(本例中是请指定城市)是参数提示所显示的问题。

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

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

  2. “设计”选项卡上的“结果”组中,单击“运行”。查询将提示您输入“城市”值。

  3. 键入深圳,,然后按 ENTER,以查看深圳客户的订单。

    如果您不知道可以指定哪些值,该怎么办? 可以将通配符作为提示信息的一部分:

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

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

    在此参数提示中,Like 关键字、“与”符号 (&) 和由引号括起来的星号 (*) 使用户可以键入字符组合(包括通配符)以返回各种结果。例如,如果用户键入 *,查询将返回所有城市;如果用户键入,查询将返回所有以“天”开头的城市;如果用户键入 *家*,查询将返回所有包含“家”的城市。

  6. 设计选项卡上的结果组中,单击运行,并在查询提示中,键入新建,然后按 ENTER。

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

指定参数数据类型

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

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

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

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

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

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

有关使用参数要求用户输入运行查询时的详细信息。

返回页首

创建总计查询

数据表中的“汇总”行非常有用,但对于更复杂的问题,应该使用总计查询。总计查询是一种选择查询,通过这种查询可以对数据进行分组和汇总。例如,假设您想要查看每种产品的销售总计。在总计查询中,可以使用 Sum 函数(聚合函数)来查看每种产品的销售总计。

注意: 不能在 Access 应用程序中使用聚合函数。

按照下列步骤修改在上一示例中创建的“产品小计”查询,以使其按产品对产品小计进行汇总。

  1. 开始选项卡上,单击视图>设计视图

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

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

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

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

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

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

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

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

  • “设计”选项卡上的“结果”组中,单击“运行”。该查询将运行,并且显示包含小计的产品列表。

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

有关详细信息,请参阅使用汇总行的数据表视图中显示列汇总

返回页首

根据数据进行计算

您通常不使用表存储计算得到的值,例如小计,即使这些值基于相同数据库中的数据,因为如果这些值所基于的值发生更改,计算得到的值可能会过期。例如,您可能不希望在表中存储某人的年龄,因为您每年都必须更新该值;相反,您可以存储此人的出生日期,然后使用查询来计算此人的年龄。

例如,如果您有一个包含您要销售的某些产品的数据库。此数据库有一个名为“订单详细信息”的表,它在各个字段中包含有关产品的信息,例如每种产品的价格和数量。您可以计算分类汇总,方法是使用一个查询将每种产品的数量乘以该产品的单价,将每一种产品的数量乘以该产品的单价和折扣,然后从总单价中减去总折扣。如果您在上一示例中创建了示例数据库,请将其打开并执行以下操作:

  1. 创建选项卡上,单击查询设计

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

  3. 关闭显示表对话框。

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

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

  6. 缩放框中,键入或粘贴以下内容: 小计: ([数量] * [单价])-([数量] * [单位折扣

  7. 单击“确定”。

  8. 设计选项卡上,单击运行。查询运行,并显示的产品和分类汇总,每个订单列表。

  9. 按 Ctrl+S 保存该查询,然后将该查询命名为产品小计

另请参阅使用汇总行的数据表视图中显示列汇总

返回页首

显示汇总或聚合数据

使用表记录事务或存储经常出现的数值数据时,如果能够查阅聚合数据(如总和或平均值)是非常有用的。在 Access 中,您可以将“总计”行添加到数据表。“汇总”行是位于数据表底部的行,可显示汇总值或其他聚合值。

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

  2. 主页选项卡上,单击汇总。在数据表一词的底部显示新行第一列中。

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

  4. 单击箭头以查看可用的聚合函数。列中包含文本数据,因为有两个选项: 计数

  5. 选择计数。从单元格的内容更改为的列的值的计数。

  6. 单击相邻的单元格(第二列)。请注意,该单元格中将出现一个箭头。

  7. 单击箭头,然后依次之和。字段中显示的列的值的总和。

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

返回页首

创建交叉表查询

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

注意: 交叉表查询不能显示在 Access 应用程序中。

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

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

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

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

  4. 设计选项卡上的查询类型组中,单击交叉表。在设计网格中,显示行处于隐藏状态,,并显示交叉表行。

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

  6. 缩放框中,键入或粘贴以下内容:月份:"Month"& DatePart ("m",[订购日期])

  7. 单击“确定”。

  8. 在“交叉表”行中,从下拉列表中选择以下值:为第一列选择“行标题”,为第二列选择“”,为第三列选择“列标题”。

  9. “设计”选项卡上的“结果”组中,单击“运行”。该查询将运行,并且显示按月聚合的产品小计。

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

    有关更多信息,请参阅

返回页首

创建生成表查询

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

注意:  生成表查询在 Access 应用程序中不可用。

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

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

  1. 打开上一示例中的示例数据库。

    要运行生成表查询,您可能需要启用数据库内容。

    注意: 如果您看到有关启用数据库功能区下方的消息,请单击启用的内容。数据库已在受信任位置中,如果您看不到消息栏。

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

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

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

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

  6. 在设计网格的发货城市列中,清除显示行中的框。在条件行中,键入'南京' (包括单引号)。验证查询结果,然后使用它们来创建表。

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

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

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

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

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

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

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

  14. 在确认对话框中,单击“”,然后查看在导航窗格中显示的新表。

    注意: 如果已存在使用您指定的相同名称的表,Access 将在查询运行前删除该表。

返回页首

创建追加查询

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

注意: Access 应用程序不能使用追加查询。

例如,假设您创建了一个要与南京商业协会共享的表,但您发现该协会也在与石家庄地区的客户合作。您希望在与该协会共享该表之前,将包含石家庄地区数据的行添加到该表中。您可以按照下列步骤将石家庄地区数据添加到“南京订单”表中:

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

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

  3. 在“追加”对话框中,单击“表名称”框中的箭头,在下拉列表中选择“南京订单”,然后单击“确定”。

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

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

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

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

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

返回页首

创建更新查询

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

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

注意: Access 应用程序不能使用更新查询。

在上一示例中,您向“南京订单”表中追加了行。在“南京订单”表中,“产品 ID”字段显示数值“产品 ID”。为使这些数据对于报表更有用,您可以将产品 ID 替换为产品名称,请使用以下步骤:

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

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

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

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

  5. 在“显示表”对话框中双击“南京订单”和“产品”,然后关闭“显示表”对话框。

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

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

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

  9. 在设计网格中,在产品 ID更新到行中,键入或粘贴以下内容: [产品] 。 [产品名称]

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

  10. 条件行中,键入或粘贴以下内容: [产品 ID]如 ([产品]。 [ID])

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

  12. 设计选项卡上,单击视图>数据表视图。该查询返回产品 Id 将更新的列表。

  13. 在“设计”选项卡上,单击“运行”。

    当您打开南京订单表时,您将看到产品 ID 字段中的数值已由产品表中的产品名称。请参阅创建更新查询

返回页首

创建删除查询

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

注意: Access 应用程序不能使用删除查询选项。

例如,假设您正准备将上一示例中的“南京订单”表发送给南京商业协会,但您注意到某些行包含一些空字段。您决定在发送该表之前删除这些行。您可以直接打开该表,手动删除这些行。但是,如果存在大量需要删除的行,并且您具有关于应删除哪些行的明确条件,您会发现使用删除查询非常有用。

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

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

  2. 在“显示表”框中双击“南京订单”,然后选择“显示表”框。

  3. 设计选项卡的查询类型组中,单击删除。在设计网格中,排序显示行将消失,,并出现删除行。

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

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

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

签出创建删除查询。

返回页首

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

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

此信息是否有帮助?

谢谢您的反馈!

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

×