4.1 查询对象设计基础
应用 Access 2003的查询对象是实现关系数据库查询操
作的主要方法,借助于 Access 2003为查询对象提供的
可视化工具,不仅可以很方便地进行 Access 2003查询
对象的创建、修改和运行,而且可以使用这个工具生
成合适的 SQL语句,直接将其粘贴到需要该语句的程
序代码或模块中。这将非常有效地减轻编程工作量,
也可以完全避免在程序中编写 SQL语句时很容易产生
的各种错误。
一个 Access查询对象实质上是一条 SQL语句,而 Access
提供的查询设计视图实质上是为我们提供了一个编写
相应 SQL语句的可视化工具。在 Access提供的查询设
计视图上,通过直观的操作,可以迅速地建立所需要
的 Access查询对象,也就是编写一条 SQL语句,从而
增加了设计的便利性、减少了编写 SQL语句过程中可
能出现的错误。
? 由查询生成的动态数据集合可以用于六种不同
的目的,根据其应用目标的不同,可以将
Access 2003的查询对象分为六种不同的基本类
型。
1.选择查询
? 选择查询是从多个数据表中筛选数据形成的查
询对象,其中可以包含计算字段、分类汇总字
段,可以设定各种筛选条件。选择查询用于显
示数据,形成数据编辑界面。
2.更新查询
? 更新查询用于在数据表中更改数据。
3.追加查询
?追加查询用于将数据表外部的数据添加
到指定数据表的记录中。
4.生成表查询
?生成表查询用于将选择查询的结果生成
为一个数据表对象。
5.删除查询
?删除查询用于在数据表中删除记录。
6.交叉表查询
?交叉表查询用于产生采用垂直方式对记
录进行分组汇总的查询结果。
4.1 查询对象设计基础
4.1.1 创建查询对象
4.1.2 查询对象的实质
4.1.3 结构化查询语言简介
4.1.4 运行查询对象
4.1.1 创建查询对象
在 Access 2003数据库中设计查询对象是需
要在查询设计视图中进行。在 Access 2003
查询设计视图中,可以在 Access 2003数据
库中新建一个查询对象,也可以针对
Access 2003数据库中已经存在的一个查询
对象进行设计修改。
在数据库设计视图中,单击, 查询, 标签按钮
即进入, 查询对象, 选项卡,如图 4-1所示。
1.新建查询对象的操作
单击数据库设计视图上的, 新建, 按钮
,”,即弹出, 新建查询, 对话框,如
图 4-2所示。
图 4-2, 新建查询, 对话框
在, 新建查询, 对话框中,可以从
Access提供的五种查询对象新建方法
中选择一种。但是,只有学会并理解
了, 查询设计视图, 的操作使用,才
可能很好地使用其他方法来加快新建
查询对象的操作。在新建查询对话框
中选择, 设计视图, 选项,然后单击
,确定, 按钮,,,即进入
,查询设计视图, 。由于是新建查询,
所以在查询设计视图中没有任何内容。
在查询设计视图中新建查询对象的第
一步操作是指定数据源,因此,一旦由
,新建查询, 对话框进入查询设计视图,
Access首先在查询设计视图中弹出, 显
示表, 对话框,用以提示操作者指定数
据源。这时,操作者需要在, 显示表,
对话框中逐个地指定数据源,并单击
,添加, 按钮,,,将指定的
数据源逐个添加入查询设计视图上半部
的数据源显示区域内。图 4-3所示为 在
“零售商店管理信息系统”数据库中新
建“销售数据记录查询”的第一步操作,
为查询指定数据源。
图 4-3, 显示表, 对话框的操

Access查询对象的数据源可以是若干个
表,也可以是已经存在的某些查询,还
可以是若干个表与某些查询的组合。与
此对应,,显示表, 对话框中包含三个
选项卡:, 表,,, 查询,,, 表和查
询, 。应该根据实际需要进行适当的选
择。例如,为, 销售数据记录查询, 指
定的数据源是, 销售数据记录, 表。选
择并添加完毕查询数据源后,单击, 显
示表, 对话框上的, 关闭, 按钮
,”,就完成了为查询对象指定
数据源的操作。
新建查询对象的第二步操作是定义查询
字段,也就是从选定的数据源中选择需
要在查询中显示的数据字段。既可以选
择数据源中的全部字段,也可以仅选择
数据源中的部分字段,且各个查询字段
的排列顺序可以与数据源中的字段排列
顺序相同,也可以与数据源中的字段排
列顺序不同。这一步操作可以通过两种
方法完成。
定义查询字段的两种方法
新建查询对象的第二步操作是定义查询字
段,也就是从选定的数据源中选择需要在
查询中显示的数据字段。既可以选择数据
源中的全部字段,也可以仅选择数据源中
的部分字段,且各个查询字段的排列顺序
可以与数据源中的字段排列顺序相同,也
可以与数据源中的字段排列顺序不同。这
一步操作可以通过两种方法完成。
将数据源表中的, *, 符号拖曳至设计视图下
部的, 字段, 行中;或下拉, 字段, 行的列表
框,从中选取, *, 符号。这时,,字段, 行
中即出现, *, 符号,,表, 行中出现该字段
所在的表名,,显示, 行中的复选框中出现
,√, 符号。这个新建的查询对象就基本完成
了,如图 4-4所示。如此方式建立的查选对象
在其运行时,将显示数据源表中所有字段中的
所有记录数据。即,符号, *, 代表着全部字
段。
( 1)新建包含数据源全部数据字段的查询
图 4-4、新建包含数据源全部数据字段查询
的操作
( 2)新建包含数据源部分数据字段的
查询
将数据源表中那些需要显示在查询中的
数据字段逐个地拖曳至, 字段, 行的各
列中;或逐个地下拉, 字段, 行列表框,
从中选取需要显示的数据字段。这时,
,字段, 行中出现选中的字段名,,表,
行中出现该字段所在表的表名,,显示,
行中的复选框中出现, √, (它表明该
查询字段将被显示,同时应该看到,取
消这个标记则意味着得到了一个不被显
示的查询字段)。
如此选择查询字段,可以将查询字段
的排列顺序设置为不同于数据源中字段的
排列顺序,是非常灵活的一种方式。图 4-5
所示为仅选中“销售数据记录”表中四个
字段的查询对象新建的情况。这样的查询
对象在其运行时,将显示数据源表中选中
字段中的所有记录数据,也就是说:不进
行筛选这样一种关系运算。在整个新建查
询对象的操作过程中,这个查询对象都将
命名为“查询?”。当新建操作完成时,
需要关闭查询设计视图,此时将出现“保
存”对话框。应该在“保存”对话框中为
新建查询对象命名为所需要的名字。
图 4-5、新建包含数据源部分数据字
段查询的操作
对于一个已经新建完成的查询对象,通常
都需要对其进行一些设计修改。例如,希
望图 4-5所示的查询对象在其运行时,能
够按照销售数量由大到小地排列显示;希
望仅显示满足某种条件的记录数据(即进
行筛选操作)等等。针对诸如此类的种种
需求,就需要对以上初步建立的查询对象
进行设计修改。
2.查询设计视图应用
建立查询的操作,实质上是生成 SQL语句的过
程。也就是说,Access提供了一个自动生成
SQL语句的可视化工具 —— 查询设计视图。那
么,通过在查询设计视图中的一系列操作后,
所生成的 SQL语句到底是什么样的?为了看到
一个查询所对应的 SQL语句,可以将查询设计
视图转换到 SQL视图中来观察。单击查询设计
视图中菜单栏上的【视图】 |【 SQL视图】,即
进入 SQL视图中。由图 4-5查询设计视图转换到
SQL视图中后,所看到的 SQL语句如下:
4.1.2 查询对象的实质
SELECT 销售数据记录,货号,销售数据记录,
货名,销售数据记录,销售单价,
销售数据记录,销售数量 FROM 销售数据
记录
WHERE (((销售数据记录,销售单价 )>=5))
ORDER BY 销售数据记录,销售数量 DESC;
可以看出:查询对象的实质是一条 SQL语句。
打开查询的操作也就是运行相应 SQL语句的过
程,其结果是生成一个动态数据集合。这个动
态数据集合,无论在形式上还是在所能接受的
操作上,都如同一个数据表对象。这就是说,
在数据表视图中所能进行的所有操作均能在查
询视图中实施。如果查询视图数据来源于若干
个数据表,则可以在查询视图中同时操作这若
干个表中的数据,在一定的限定条件下,也可
以同时对这些数据表进行追加记录、删除记录
和更改数据的操作。
SQL一词,是 Structure Query Language
的缩写,即, 结构化查询语言, 的英文
缩写。当今的所有关系型数据库管理系
统都是以 SQL作为核心的。 SQL概念的
建立起始于 1974年,随着 SQL的发展,
ISO,ANSI等国际权威标准化组织都为
其制订了标准,从而建立了 SQL在数据
库领域里的核心地位。
4.1.3 结构化查询语言简介
SQL的四个特点
( 1)在方法上的突破, SQL不再局限于数据表中的记
录与字段,而是通过设定表与表间的联接来组合地处理
数据。
( 2)容易学习与维护, SQL语句自然语言,简洁直
观,语句的功能非常强大,一条语句时常可以取代常
规程序设计语言的一大段程序,因而容易维护。
( 3)语言共享, 任意一种数据库管理系统都拥有自己
的程序设计语言,其各种语言的语法规定及其词汇相差
甚远。但是 SQL在任何一种数据库管理系统中都是相似
的,甚至是相同的。
( 4)全面支持客户 /服务器结构, 实现异种数据库间的
数据共享,即在客户端使用的数据访问语言必须与服务
器端所能识别数据查询语言相同。 SQL就是当今唯一的
一个已经形成标准的数据库共享语言。
SQL语句按其功能的不同可以分为
以下六大类
① 数据定义语句( DDL,Data-Definition Language)
② 数据操作语句( DML,Data-Manipulation Language)
③ 操作管理语句( TMLT,transaction-Management
Language)
④ 数据控制语句( DCL,Data-Control Language)
⑤ 数据查询语句( DQL,Data-Query Language)
⑥ 游标控制语句( CCL,Cursor-Control Language)
SELECT语句的一般语法格式为:
SELECT [predicate] { * | table.* | [table.]field1 [AS
alias1] [,[table.]field2 [AS alias2] [,...]]}
FROM tableexpression [,...] [IN externaldatabase]
[WHERE..,]
[GROUP BY..,]
[HAVING..,]
[ORDER BY..,]
[WITH OWNERACCESS OPTION]
1,SELECT语法
在 SELECT语法格式中, 大写字母为 SQL
保留字, 方括号所括部分为可有可无的
内容, 小写字母为语句参量 。
各项语句参量应该根据实际应用的需要取
值,表 4-1所列为 SELECT语句中各个参
量说明。
2,SELECT语法简要说明
表 4-1 SELECT语句参量说明
参量 取值及其含义 说明
Predicate 下列谓词之一,ALL、
DISTINCT,DISTINCTROW,
TOP
可用谓词来限制返回的记录
数量。默认值为 ALL
* 全部字段 从特定的表中指定全部字段
Table 表的名称
Field1 字段的名称 包含所要获取的数据
Alias1 字串常量 用来作列标头
Tableexpression 表的名称 这些表包含要获取的数据
Externaldatabase 数据库的名称 该数据库包含
tableexpression 中的表
WHERE 条件表达式 只筛选满足条件的记录
GROUP BY,字段名列表 根据所列字段名分组
ORDER BY 字段名列表 根据所列字段名排序
关闭查询设计视图,在随之出现的“保存”
对话框中指定查询对象名称,然后确定之。
对于一个设计完成的查询对象,可以在数
据库视图中的查询对象选项卡上看到它的
图标,用鼠标在一个查询对象图标上双击,
即可运行这个查询对象。一个运行着的查
询一般以查询视图的形式显示。在数据库
视图中,单击查询对象选项卡,选择需要
打开的查询对象,单击数据库视图上的
“打开”按钮,”,或双击需要打
开的查询对象图标,即进入查询视图。
4.1.4 运行查询对象
图 4-7所示即为上述“销售数据记录查
询举例”对象打开后的视图。可以看
到,查询视图与数据表视图是形式完
全相同的视图,不同的是查询视图中
显示的是一个动态数据集。对于本例,
仅是“销售数据记录”表中的销售单
价不低于 5元的那一部分商品数据按照
其销售数量的大小降序排列而成。
图 4-6,销售数据查询 1”对象的查询视图