Access中的查询

  • 格式:pdf
  • 大小:661.67 KB
  • 文档页数:42

Access中的查询

据库的真正优点是具有很强的数据查看和数据统计的能力。通常并不需要同时

查看所有表里的数据;有时,又需要查询位于不同表中的数据。在这种情况下,

就应该使用“查询”。

“查询”是一种提问,可以针对单个数据表提出较简单的问题,也可以针对一些相互

关联的数据表提出较为复杂的问题。“查询”命令的作用就是建立这样的查询,以便用户对

数据库中的数据进行检索,当运行一个建立好的查询对象时,Access会自动建立起一个动

态集合,这上动态集合把在一个或多个表对象中选择的多个字段中的数据集成起来。 数

通过“查询”可以通过不同的方法来查看、更改以及分析数据;也可以将“查询”作为窗体

和报表的记录源。从而方便地对数据进行查看、更改和分析。而查询的结果本身又可以看

作一个数据表,可以作为别的数据库操作的数据源。

在上一章简单地介绍了创建和使用简单的查询,这一章将详细介绍。

4.1 查询准则

通常在使用查询时只是对数据库中的一部分数据记录进行查询和计算。而如何在

Access 2003数据库中将满足用户条件的数据记录挑选出来,这就要设置一定的准则。准则

为用户提供了一个选择条件,满足条件的记录才会被查询。例如,在统计发货时间在2001

年1月到2月间的公司订单总数时,就需要利用准则来检索所有的订单,从中挑选出符合

条件的订单,再进行统计计算。

在查询的“设计”视图以及“高级筛选/排序”窗口中,都可以在“准则”单元格内通

过使用准则表达式来体现查询条件,从而限定查询的范围。

4.1.1 文本值

在Access表中的字段进行查询时最经常采用到的就是以文本值的准则而设定的查询条

件。使用文本值作为准则表达式可以方便地限定查询的范围,实现一些相对简单的查询,

如表4-1所示。

表4-1 使用文本值作为准则的示例 字 段 准 则 说 明

产品类别 “饮料” 显示产品类别为饮料的产品

产品类别 “饮料”Or“香料” 使用Or运算符显示产品类别为饮料或香料的产品

产品类别 In(“饮料”,“香料”) 使用In运算符显示产品类别为饮料或香料的产品 2 产品类别 Not“饮料” 使用Not运算符以显示除了饮料以外的其他产品

生产日期 #1/1/99# 显示在99年1月1日生产的产品

产品ID Right([产品ID],1)="1" 使用Right函数以显示产品ID值结尾数字为1的产品

产品名称 Len([产品名称])

4.1.2 处理日期结果

对于在Access表中的字段进行查询时,有时还要采用以计算或处理日期所得到的结果

作为准则而设定的查询条件。使用计算或处理日期结果作为准则表达式,可以方便地限定

查询的时间范围,如表4-2所示。

表4-2 使用处理日期结果作为准则的示例 字 段 准 则 说 明

生产日期 Between Date( ) And DateAdd

("m",1,Date( )) 用Between…And运算符和DateAdd和Date函

数,以显示在当天日期之后的一个月内所生产的

产品

生产日期

生产日期 Year([生产日期])=1998 使用Year函数以显示1998年所生产的产品

生产日期 DatePart("q", [生产日期])=1 使用DatePart函数以显示第一季度所生产的产品

生产日期 DateSerial(Year([生产日期]), Month([生

产日期])+1, 1)-1 使用DateSerial、Year和Month 函数以显示每个

月最后一天所生产的产品

生产日期 Year([生产日期])=Year(Now())And

Month( [生产日期] )= Month( Now() ) 使用Year和Month函数和And运算符以显示当

前年、月所生产的产品

4.1.3 空字段值

空字段值分为Null值和空字符串,在查询时常常会用到它来查看数据库中的某些记录,

如表4-3所示。

表4-3 使用空字段值作为准则的示例

字 段 准 则 说 明

客户地区 Is Null 显示“货主地区”字段为Null(空白)的客户信息

客户地区 Is Not Null 显示“货主地区”字段包含有值的客户信息

传真 " " 显示没有传真机的客户信息,用“传真”字段中的零长度字符串值而不是使

用Null值来指出

4.1.4 字段的部分值

对于在Access表中的字段进行查询时,有可能需要只对字段中包含一定条件的记录进Access中的查询 3

行查询。使用字段的部分值作为准则表达式,可以方便地限定查询的范围,实现一些相对

简单的查询,如表4-4所示。

表4-4 使用字段的部分值作为准则的示例 字 段 准 则 说 明

供应商 Like "A*" 显示供应商名称以字母A开头的产品信息

供应商 Like "*Ltd." 显示供应商名称以“Ltd.”结尾的产品信息

供应商 Like "[A-D]*" 显示供应商名称以字母A-D开头的产品信息

供应商 Like "* Orleans *" 显示供应商名称包含字符串“Orleans”的产品信息

供应商 Like "Exotic Liqui??" 显示供应商名称以“Exotic”作为名称的第一部分,并具有一个7

个字母长的第二名称,且其中前5个字母是 “Liqui”,而最后的

2个字母为未知的产品信息

4.1.5 域合计函数的结果

对于在Access表中的字段进行查询时,也可以利用合计函数的计算结果进行查询,如

表4-5所示。

表4-5 使用合计函数的结果作为准则的示例

字 段 准 则 说 明

运货费 >(DStDev("[Freight]", "订单") +

DAvg("[Freight]","订单")) 使用Davg和DStDev函数以显示货运成本高于

平均值加上货运成本的标准偏差的所有订单

单位数量 >DAvg("[单位数量]", "订单明细") 使用Davg函数以显示订购数量高于平均订购数

量的产品

在上面介绍了几种建立准则的方法,利用这些方法可以根据具体需要对查询提出相应

的准则。除了所介绍的五种方法之外,还可以利用子查询来建立一个查询的准则

4.2 查询的分类

查询可以根据其对数据源操作和结果的不同分为5大类:选择查询、交叉表查询、操

作查询、参数查询和SQL查询。下面对这5类进行简单的介绍:

1. 选择查询

选择查询是最常见的一种查询类型,它从一个或多个表、查询中检索数据,并且在可

以更新记录(一定的限制条件下)的数据表中显示结果。也可以使用选择查询来对记录进

行分组,并且对记录作总计、计数、平均值以及其他类型的总和计算。

2. 交叉表查询

使用交叉表查询可以计算并重新组织数据的结构,这样可以更加方便地分析数据。交

叉表查询计算数据的总计、平均值、计数或其他类型的总和,这种数据可分为两组信息:

一类在数据表左侧排列,另一类在数据表的顶端。数据表行和列的交叉处显示该字段的计 4

算结果。

3. 操作查询

操作查询是这样一种查询,使用这种查询只需进行一次操作就可对许多记录进行更改

和移动。它包括四种查询:删除查询、更新查询、追加查询和生成表查询。

4. 参数查询

参数查询是这样一种查询,它在执行时显示自己的对话框以提示用户输入信息,检索

要插入到字段中的记录或值。可以设计此类查询来提示更多的内容;例如,可以设计它来

提示输入两个日期,然后 Access 检索在这两个日期之间的所有记录。

5. SQL查询

SQL 查询是用户使用SQL语句创建的查询。可以用结构化查询语言 (SQL) 来查询、

更新和管理 Access 这样的关系数据库。

4.3 创建和使用简单的查询

对于数据库应用系统的普通用户来说,数据库是不可见的。用户要察看数据库当中的

数据都要通过查询操作,所以查询是数据库应用程序当中非常重要的一个部分。查询不仅

可以对一个表进行简单的查询操作,还可以把多个表的数据连接到一起,做一个整体的查

询。下面先从简单查询开始,学习怎样创建查询和使用查询。

创建查询的方法有两种,让还是从“使用向导创建查询”开始吧。

4.3.1 使用向导创建查询

已经学习了使用向导创建数据表,已经对向导工具的方便性有了体会。同样的,使用

向导创建查询也是很简便易学的。步骤如下:

1. 在数据库窗口左边的“列表栏”中选择“查询”,并双击“使用向导创建查询”选项,

会看到图4-1所示的窗口。

图4-1 确定要查询的表和字段 Access中的查询 5

2. 在“表/查询”组合框中选择一个表或查询作查询的对象。如果选择一个查询,表示

对一个查询的结果进一步查询。这里选择“雇员”。

3. 在“可用字段”中选择要查询的字段,选择的方法和前面用向导创建表中的操作类

似。这里单击向右的双箭头按钮,表示全选。单击“下一步”按钮,出现图4-2所示的

窗口。

图4-2 确定查询类型

4. 在这个窗口中要求用户选择“明细”还是“汇总”。

z “明细”是指在查询中显示每条纪录的每个被选字段,不作其他处理。

z “汇总”是指在查询中对纪录中的某些字段进行求和、求均值等处理,并把处理

的结果显示出来。 要注意的是这一步的窗口并不总是出现的,只有当被选的字段中有“数字”类型才会

出现这个窗口,否则会跳过这一步。这里暂时不使用“汇总”,而选择“明细”。单击“下

一步”按钮,会出现图4-3所示的窗口。

图4-3 为查询指定标题