Access基础与应用教程 第4章 查询_第1页
Access基础与应用教程 第4章 查询_第2页
Access基础与应用教程 第4章 查询_第3页
Access基础与应用教程 第4章 查询_第4页
Access基础与应用教程 第4章 查询_第5页
已阅读5页,还剩109页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 查询是查询是AccessAccess数据库的对数据库的对象之一,使用查询对象可以象之一,使用查询对象可以将查询命令预先保存,在需将查询命令预先保存,在需要时只要运行查询对象即可要时只要运行查询对象即可自动执行查询中规定的查询自动执行查询中规定的查询命令,从而大大方便用户进命令,从而大大方便用户进行查询操作。行查询操作。退出退出4.1 4.1 查询概述查询概述4.2 4.2 创建选择查询创建选择查询4.3 4.3 查询的运行和修改查询的运行和修改4.4 4.4 查询条件的设置查询条件的设置4.5 4.5 设置查询的计算设置查询的计算4.6 4.6 交叉表查询交叉表查询4.7 4.7 参数查询参

2、数查询4.8 4.8 操作查询操作查询4.9 SQL4.9 SQL查询查询 在在 Access 数据库中,表是存储数据的最基本的数据数据库中,表是存储数据的最基本的数据库对象,而查询则是对表中的数据进行检索、统计、分析、库对象,而查询则是对表中的数据进行检索、统计、分析、查看和更改的又一个非常重要的数据库对象。查看和更改的又一个非常重要的数据库对象。 一个查询对象实际上是一个查询命令,实质上它是一一个查询对象实际上是一个查询命令,实质上它是一个个SQL 语句。运行一个查询对象实质上就是执行该查询中语句。运行一个查询对象实质上就是执行该查询中规定的规定的SQL 命令。命令。 简单来说,表是将数据

3、(根据规范化的要求)进行了简单来说,表是将数据(根据规范化的要求)进行了分割,而查询则是从不同的表中抽取数据并组合成一个动分割,而查询则是从不同的表中抽取数据并组合成一个动态数据表。查询可以从多个表中查找到满足条件的记录组态数据表。查询可以从多个表中查找到满足条件的记录组成一个动态数据表,并以数据表视图的方式显示。成一个动态数据表,并以数据表视图的方式显示。 查询结果仅仅是一个临时的动态数据表,查询结果仅仅是一个临时的动态数据表,当关闭查询的数据表视图时,保存的是查询的当关闭查询的数据表视图时,保存的是查询的结构,并不保存该查询结果的动态数据表。结构,并不保存该查询结果的动态数据表。 表和查询

4、都是查询的数据源,表和查询也表和查询都是查询的数据源,表和查询也是窗体、报表的数据源。是窗体、报表的数据源。 建立查询之前,一定要先建立表与表之间建立查询之前,一定要先建立表与表之间的关系。的关系。 在在 Access 中,提供有如下五种类型的中,提供有如下五种类型的 查询:查询: 选择查询选择查询 参数查询参数查询 交叉表查询交叉表查询 操作查询操作查询 SQL 查询查询 选择查询是最常见的查询类型,它从一个或多个表选择查询是最常见的查询类型,它从一个或多个表中检索数据,并且在中检索数据,并且在“数据表视图数据表视图”中显示结果。也可以中显示结果。也可以使用选择查询来对记录进行分组,并且对记

5、录作合计、计使用选择查询来对记录进行分组,并且对记录作合计、计数、平均值等计算。查询结果仅仅是一个临时的动态数据数、平均值等计算。查询结果仅仅是一个临时的动态数据表。表。 例例4-1 在在“学生管理系统学生管理系统”数据库的数据库的“学生学生”表里,表里,查找出查找出1986年后(含年后(含1986)出生的女学生)出生的女学生的姓名、性别的姓名、性别和出生日期和出生日期。使用查询的。使用查询的“设计视图设计视图”创建出该查询,创建出该查询,其设计视图如图其设计视图如图4-1所示。当运行该查询时,以所示。当运行该查询时,以“数据表数据表视图视图”方式显示出该查询的结果,如图方式显示出该查询的结果

6、,如图4-2所示。所示。 图图4-2 查询结果查询结果图图4-1 “设计视图设计视图” 使用交叉表查询可以计算并重新组织数据的结构,这样使用交叉表查询可以计算并重新组织数据的结构,这样可以更加方便地分析数据。交叉表查询可以对记录作合计、可以更加方便地分析数据。交叉表查询可以对记录作合计、平均值、计数等计算,这种数据可分为两组信息:一类在数平均值、计数等计算,这种数据可分为两组信息:一类在数据表左侧排列,另一类在数据表的顶端。据表左侧排列,另一类在数据表的顶端。 例例4-3 在在“学生管理系统学生管理系统”数据库的数据库的“学生学生”表中,统表中,统计出各班男、女学生的人数。使用查询的计出各班男

7、、女学生的人数。使用查询的“设计视图设计视图”创建创建出该查询,当运行查询时,以出该查询,当运行查询时,以“数据表视图数据表视图”方式显示出该方式显示出该交叉表查询的结果。交叉表查询的结果。 操作查询是这样一种查询,使用这种查询操作查询是这样一种查询,使用这种查询只需进行一次操作就可对许多记录进行更改和移只需进行一次操作就可对许多记录进行更改和移动。有如下四种操作查询动。有如下四种操作查询: 生成表查询生成表查询 追加查询追加查询 更新查询更新查询 删除查询。删除查询。 SQL查询是用户使用查询是用户使用 SQL 语句创建的查询。可以用结构化语句创建的查询。可以用结构化查询语言查询语言 (SQ

8、L) 来查询、更新和管理来查询、更新和管理 Access 这样的关系数据这样的关系数据库。在查询的库。在查询的“设计视图设计视图”中创建查询时,中创建查询时,Access 将在后台构将在后台构造等效的造等效的 SQL 语句。语句。 可以在可以在“ SQL 视图视图”中查看和编辑中查看和编辑 SQL 语句。但是,在语句。但是,在对对 SQL 视图中的查询做更改之后,查询可能无法以以前在视图中的查询做更改之后,查询可能无法以以前在“设设计视图计视图”中所显示的方式进行显示。中所显示的方式进行显示。 有一些有一些 SQL 查询,称为查询,称为“SQL 特定查询特定查询”,无法在,无法在 “设设计视图

9、计视图” 的设计网格中进行创建,如传递查询、数据定义查询的设计网格中进行创建,如传递查询、数据定义查询和联合查询,都必须直接在和联合查询,都必须直接在 “SQL 视图视图” 中创建中创建 SQL 语句。语句。图图4-5 例例4-1查询查询的的“SQL视图视图” 在在“创建创建”选项卡上的选项卡上的“查询查询”组中有组中有“查询查询向导向导”和和“查询设计查询设计”两个按钮,如图两个按钮,如图4-6所示,所示,可用于创建查询。单击可用于创建查询。单击“查询向导查询向导”按钮,则显出按钮,则显出“新建查询新建查询”对话框对话框。图图4-6“创建创建”选项卡上的选项卡上的“查询查询”组组图图4-7

10、“新建查询新建查询”对话框中对话框中四种创建查询向导四种创建查询向导 选择查询的功能是从一个或多个表中选择查询的功能是从一个或多个表中检索数据,并且在检索数据,并且在“数据表视图数据表视图”中显示中显示结果。查询结果仅仅是一个临时的动态数结果。查询结果仅仅是一个临时的动态数据表。据表。 Access提供了向导功能以帮助用户方便快速创建简提供了向导功能以帮助用户方便快速创建简单的查询对象。使用向导创建查询对象的步骤如例单的查询对象。使用向导创建查询对象的步骤如例4-4 和例和例4-5 所述。所述。 单击单击“创建创建”选项卡上的选项卡上的“查询查询”组中的组中的“查询向查询向导导”按钮,显出按钮

11、,显出“新建查询新建查询”对话框。对话框。 例例4-4 在在“学生管理系统学生管理系统”数据库中,用数据库中,用“学生学生”表创建一个名为表创建一个名为“例例4-4学生高考总分查询学生高考总分查询”的查询。该的查询。该查询只要求显示学号、姓名、性别和高考总分四个字段。查询只要求显示学号、姓名、性别和高考总分四个字段。 例例4-5 在在“学生管理系统学生管理系统”数据库中,用数据库中,用“学生学生”表创建一个名为:表创建一个名为:“例例4-5男女学生平均高考总分查询男女学生平均高考总分查询”的查询。的查询。 单击单击“创建创建”选项卡上的选项卡上的“查询查询”组中的组中的“查询查询设计设计”按钮

12、,打开查询按钮,打开查询“设计视图设计视图”。 查询的查询的“设计视图设计视图”分为上、下两部分,上半部分为上、下两部分,上半部分称为分称为“字段列表字段列表”区,显示所选定的数据源表或查区,显示所选定的数据源表或查询(注意:查询也可作为查询的数据源)的所有字段。询(注意:查询也可作为查询的数据源)的所有字段。下半部分称为下半部分称为“设计网格设计网格”区,用于确定查询结果动区,用于确定查询结果动态集所拥有的字段、排序和检索条件等。态集所拥有的字段、排序和检索条件等。 在在“设计网格设计网格”中需要设置如下内容:中需要设置如下内容:(1)字段:设置查询所涉及的字段。)字段:设置查询所涉及的字段

13、。(2)表:)表: 字段所属的表。字段所属的表。(3)排序:查询的排序准则(如升序或降序)。)排序:查询的排序准则(如升序或降序)。(4)显示:当复选框选中时,字段将在查询结果中显出,否则,在查询结果中)显示:当复选框选中时,字段将在查询结果中显出,否则,在查询结果中不显出。不显出。(5)条件:设置检索记录的条件(也称为准则)。)条件:设置检索记录的条件(也称为准则)。(6)或:)或: 设置检索记录的条件(也称为准则)。设置检索记录的条件(也称为准则)。 例例4-6 在在“学生管理系统学生管理系统”数据库中,使用数据库中,使用“设计视图设计视图”创创建一个名为建一个名为“例例4-6查询高考总分

14、查询高考总分750分以上的女生分以上的女生”的查询。查的查询。查询要求是:对询要求是:对“学生学生”表,检索高考总分表,检索高考总分750分以上(含分以上(含750)的)的女学生的记录,并要求按高考总分降序进行排序,仅要求显示学女学生的记录,并要求按高考总分降序进行排序,仅要求显示学号、姓名、班级号、性别和高考总分五个字段。号、姓名、班级号、性别和高考总分五个字段。 运行查询实际上就是打开该查询的运行查询实际上就是打开该查询的“数据表数据表视图视图”,以表格形式显出该查询结果的动态集记,以表格形式显出该查询结果的动态集记录数据。录数据。 修改查询实际上就是打开该查询的修改查询实际上就是打开该查

15、询的“设计视设计视图图”,对查询所涉及的字段及条件等进行设计修,对查询所涉及的字段及条件等进行设计修改。改。 运行查询的六种基本方法:运行查询的六种基本方法:(1)打开某查询的)打开某查询的“设计视图设计视图”,单击,单击“查询工具查询工具”下的下的“设计设计”选项卡的选项卡的“结果结果”组中的组中的“运行运行”按钮。按钮。(2)打开某查询的)打开某查询的“设计视图设计视图”,单击,单击“查询工具查询工具”下的下的“设计设计”选项卡的选项卡的“结果结果”组中的组中的“视图视图”(默认是(默认是“数据表视图数据表视图”)按)按钮。钮。(3)打开某查询的)打开某查询的“设计视图设计视图”,右击该,

16、右击该“设计视图设计视图”中的空白中的空白处,弹出快捷菜单,单击该快捷菜单中的处,弹出快捷菜单,单击该快捷菜单中的“数据表视图数据表视图”。(4)双击)双击“导航窗格导航窗格”上的查询对象列表中要运行的查询名称。上的查询对象列表中要运行的查询名称。(5)右击)右击“导航窗格导航窗格”上的查询对象列表中要运行的查询名称,上的查询对象列表中要运行的查询名称,弹出快捷菜单,单击该快捷菜单中的弹出快捷菜单,单击该快捷菜单中的“打开打开”。 此外此外还有其他的运行查询方法,如在还有其他的运行查询方法,如在“宏宏”中运行查询的方法中运行查询的方法。 右击右击“导航窗格导航窗格”上查询对象列表中的某个查询,

17、上查询对象列表中的某个查询,弹出快捷菜单,单击该快捷菜单中的弹出快捷菜单,单击该快捷菜单中的“设计视图设计视图”,打,打开该查询的开该查询的“设计视图设计视图”,便可,便可对对该该查询的结构设计进查询的结构设计进行各种更改行各种更改。 如果所需的数据不在查询中,可以添加一个表或查如果所需的数据不在查询中,可以添加一个表或查询,或者如果决定不需要某个表或查询,也可以将其删询,或者如果决定不需要某个表或查询,也可以将其删除。添加了所需的表或查询后,就可以在除。添加了所需的表或查询后,就可以在“设计网格设计网格”中添加要使用的字段,在决定不需要这些字段时可以将中添加要使用的字段,在决定不需要这些字段

18、时可以将其删除。可对字段排序分别进行排序设置。也可通过把其删除。可对字段排序分别进行排序设置。也可通过把鼠标指针移到某字段鼠标指针移到某字段“列选定器列选定器”的右边界,使鼠标指的右边界,使鼠标指针变成双箭头时拖动鼠标的方法来调整查询的列宽等等。针变成双箭头时拖动鼠标的方法来调整查询的列宽等等。 例例4-7 在在“学生管理系统学生管理系统”数据库中,对已经创建好的名为数据库中,对已经创建好的名为“例例4-6查询高考总分查询高考总分750分以上的女生分以上的女生”的查询对象进行的查询对象进行“复制复制”操作、操作、“粘贴粘贴”操作,产生出一个新的名为操作,产生出一个新的名为“例例4-7查询高考总

19、分查询高考总分750分以上的学生分以上的学生”查询。然后对新建的查询。然后对新建的“例例4-7查询高考总分查询高考总分750分以上的学生分以上的学生”查询的设计按如下要求进行修改,该查询要查询的设计按如下要求进行修改,该查询要求是:检索高考总分求是:检索高考总分750分以上(含分以上(含750)的学生记录,并要求按)的学生记录,并要求按“性别性别”升序、升序、“高考总分高考总分”降序对查询结果的记录进行排序降序对查询结果的记录进行排序(即先按(即先按“性别性别”字段值升序排序,当字段值升序排序,当“性别性别”字段值相同时再字段值相同时再按按“高考总分高考总分”字段值降序排序),并要求显示学号、

20、姓名、班字段值降序排序),并要求显示学号、姓名、班级名称、性别和高考总分五个字段。级名称、性别和高考总分五个字段。提示:提示:对于要求显示对于要求显示“班级名称班级名称”字段,故需要先在该查询的字段,故需要先在该查询的“设计视图设计视图”中添加中添加“班级班级”表,然后,在表,然后,在“设计网格设计网格”区,把区,把原来的原来的“学生学生”表的表的“班级号班级号”字段更改为字段更改为“班级班级”表的表的“班级班级名称名称”字段。其他更改按查询要求进行相应的设置。字段。其他更改按查询要求进行相应的设置。 修改前修改前修改后修改后 创建查询时,通过对字段添加限制条创建查询时,通过对字段添加限制条件

21、,使查询结果中只包含满足查询条件的件,使查询结果中只包含满足查询条件的数据。数据。 在查询的在查询的“设计视图设计视图”中,若要对中,若要对“设计网格设计网格”区中区中的某个字段指定条件,就可在该字段的的某个字段指定条件,就可在该字段的“条件条件”单元格中单元格中直接输入一个表达式。直接输入一个表达式。 表达式是运算符、常数、函数和字段名称等的任意组表达式是运算符、常数、函数和字段名称等的任意组合。表达式可执行计算,其计算结果为单个值。对于较复合。表达式可执行计算,其计算结果为单个值。对于较复杂的表达式,当光标处于该字段的杂的表达式,当光标处于该字段的“条件条件”单元格时,单单元格时,单击击“

22、查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询设置查询设置”组组上的上的“生成器生成器”按钮按钮,打开表达式生成器,在表达式生成,打开表达式生成器,在表达式生成器中构造表达式,如图器中构造表达式,如图4-31所示。在输入表达式时,除了所示。在输入表达式时,除了汉字以外,其他所有字符必须是在英文输入法状态下输入。汉字以外,其他所有字符必须是在英文输入法状态下输入。图图4-31 表达式生成器示例表达式生成器示例 对于比较运算符来说,要比较的数据的数对于比较运算符来说,要比较的数据的数据类型必须匹配。也就是说,文本只能与文本据类型必须匹配。也就是说,文本只能与文本比较,数字只能与数

23、字比较,等等。可以使用比较,数字只能与数字比较,等等。可以使用函数临时将数据转换为其他数据类型,然后再函数临时将数据转换为其他数据类型,然后再作比较。比较运算符的含义、示例等信息如表作比较。比较运算符的含义、示例等信息如表4-1所示。所示。表表4-1 比较运算符比较运算符 运算符运算符含义含义SQL 视图窗口示例视图窗口示例Not 条件的逻辑否条件的逻辑否 SELECT * FROM 学生学生 WHERE NOT (性别性别 = 女女);And 必须同时满足两个条件必须同时满足两个条件 SELECT * FROM 学生学生 WHERE 性别性别 = 女女 AND 班级号班级号 = 3;Or 满

24、满 足一个条件即可足一个条件即可 SELECT 学号学号, 课程代码课程代码, 成绩成绩 FROM 修课成绩修课成绩 WHERE 成绩成绩 90;运算符运算符含义含义设计网格区示例设计网格区示例SQL 视图窗口示例视图窗口示例 IN测试某值是否出测试某值是否出现在值的列现在值的列表中。表中。或或测试某值是否出测试某值是否出现在一个子现在一个子查询的结果查询的结果集内。集内。 In(足球足球, 篮球篮球) In (SELECT 学号学号 FROM 修课成绩修课成绩 WHERE 成绩成绩 60) SELECT * FROM 学生学生 WHERE 特长特长 In(足球足球, 篮球篮球); SELEC

25、T 姓名姓名 FROM 学生学生 WHERE 学号学号 In (SELECT 学号学号 FROM 修课成绩修课成绩 WHERE 成绩成绩 =18SELECT 学号学号, 姓名姓名, 性别性别, 出生日期出生日期FROM 学生学生WHERE Year(Date( ) Year(出生日期出生日期)=18; Time( )返回当前系统返回当前系统时间。时间。 Hour(time)返回返回 0 和和 23 之之间的整数(表间的整数(表示一天中某个示一天中某个小时)。小时)。 在查询的在查询的“设计视图设计视图”中的中的“设计网格设计网格”区,区,“条件条件”行、行、“或或”条件行以及条件行以及“或或”

26、行下边紧接着的若干空白行行下边紧接着的若干空白行的单元格,均可用来设置查询条件的表达式。的单元格,均可用来设置查询条件的表达式。 在查询的在查询的“设计网格设计网格”区,用户可以在多个字段的区,用户可以在多个字段的“条件条件”单元格(包括单元格(包括“条件条件”行的单元格和行的单元格和“或或”条件条件行的单元格等)中设置查询条件的表达式。对于多个字段行的单元格等)中设置查询条件的表达式。对于多个字段的的“条件条件”单元格中的表达式,单元格中的表达式,Access数据库管理系统会数据库管理系统会自动使用自动使用 And 运算符或者运算符或者 Or 运算符去组合这些不同单元运算符去组合这些不同单元

27、格中的表达式,构成一个组合条件,以满足复杂查询的需格中的表达式,构成一个组合条件,以满足复杂查询的需要。要。 在查询的在查询的“设计网格设计网格”区,如果仅在同一条件行区,如果仅在同一条件行的不同单元格中设置了条件的表达式,表示这些在不的不同单元格中设置了条件的表达式,表示这些在不同单元格中设置的条件都必须要同时满足的。同单元格中设置的条件都必须要同时满足的。 Access自动用自动用 And 运算符去组合这一条件行运算符去组合这一条件行中的不同单元格中的条件表达式,构成一个组合条件,中的不同单元格中的条件表达式,构成一个组合条件,表示要筛选满足该条件行所有(设置了条件的)单元表示要筛选满足该

28、条件行所有(设置了条件的)单元格的条件的记录。格的条件的记录。 例例4-9 查询高考总分查询高考总分750分以上(含分以上(含750)的男学)的男学生的生的学号、姓名、性别和高考总分学号、姓名、性别和高考总分。用用And 运算符组合条件运算符组合条件SQL视图视图设计视图设计视图 在查询的在查询的“设计视图设计视图”的的“设计网格设计网格”区,如果在每区,如果在每一条件行中仅有一个字段的一条件行中仅有一个字段的“条件条件”单元格(包括单元格(包括“条件条件”行的单元格和行的单元格和“或或”条件行的单元格等)设置了查询条件条件行的单元格等)设置了查询条件的表达式,那么,对于这些条件行来说,的表达

29、式,那么,对于这些条件行来说,Access数据库管数据库管理系统会自动使用(一个或多个)理系统会自动使用(一个或多个) Or 运算符去组合这些运算符去组合这些不同条件行的表达式,构成一个组合条件,表示筛选只要不同条件行的表达式,构成一个组合条件,表示筛选只要满足任一条件行的满足任一条件行的“条件条件”单元格条件的记录。单元格条件的记录。 注意,注意,在查询的在查询的“设计视图设计视图”的的“设计网格设计网格”区,可区,可以在任一字段的以在任一字段的“条件条件”行单元格设置条件的表达式,也行单元格设置条件的表达式,也可以在任一字段的可以在任一字段的“或或”条件行单元格设置条件的表达式,条件行单元

30、格设置条件的表达式,还可以在任一字段的还可以在任一字段的“或或”行下边紧接着的若干空白行的行下边紧接着的若干空白行的单元格设置条件的表达式。单元格设置条件的表达式。 例例4-10 查询高考总分查询高考总分690分以下以及分以下以及780分以上分以上(含(含780)的学生的学号、姓名、性别和高考总分。)的学生的学号、姓名、性别和高考总分。图图4-35 在同一个字段的不同条件行的条件单元格中设置查询条件在同一个字段的不同条件行的条件单元格中设置查询条件设计视图设计视图用用 Or 运算符组合条件运算符组合条件SQL视图视图 例例4-11 查询高考总分查询高考总分750分以上(含分以上(含750)的学

31、)的学生以及全部女学生的学号、姓名、性别和高考总分。生以及全部女学生的学号、姓名、性别和高考总分。图图4-36 在两个不同字段的不同条件行(一字段一条件行)的条件单元格中设置查询条件在两个不同字段的不同条件行(一字段一条件行)的条件单元格中设置查询条件 设计视图设计视图用用 Or 运算符组合条件运算符组合条件SQL视图视图 在查询的在查询的“设计网格设计网格”区,如果对于若干不同字区,如果对于若干不同字段的不同条件行的段的不同条件行的“条件条件”单元格(包括单元格(包括“条件条件”行行的单元格和的单元格和“或或”条件行的单元格),设置了查询条条件行的单元格),设置了查询条件的表达式,件的表达式

32、,Access数据库管理系统会自动使用数据库管理系统会自动使用(一个或多个)(一个或多个)And 运算符和(一个或多个)运算符和(一个或多个)Or 运运算符去组合这些不同字段的不同条件行的算符去组合这些不同字段的不同条件行的“条件条件”单单元格的表达式,构成一个组合条件,表示筛选只要满元格的表达式,构成一个组合条件,表示筛选只要满足任何一条件行的所有足任何一条件行的所有“条件条件”单元格条件的记录。单元格条件的记录。 例例4-12 查询高考总分查询高考总分690分以下的男学生以及分以下的男学生以及780分以上(含分以上(含780)的女学生的学号、姓名、性别和高考)的女学生的学号、姓名、性别和高

33、考总分。总分。图图4-38 在两个字段的两条件行的条件单元格中设置查询条件在两个字段的两条件行的条件单元格中设置查询条件 设计视图设计视图用用 Or 运算符组合条件运算符组合条件用用 And 运算符组合条件运算符组合条件用用 And 运算符组合条件运算符组合条件SQL视图视图 要在查询中执行计算,可以在查询设计中使用要在查询中执行计算,可以在查询设计中使用“预定义计算预定义计算”或或“自定义计算自定义计算”形式来对查询中需形式来对查询中需要的计算进行相应的设置。要的计算进行相应的设置。 预定义计算是预定义计算是Access 通过聚合函数对查询中的通过聚合函数对查询中的分组记录或全部记录进行分组

34、记录或全部记录进行“总计总计”计算,比如求合计、计算,比如求合计、平均值、计数、最小值、最大值、标准偏差或方差等。平均值、计数、最小值、最大值、标准偏差或方差等。 计算中可用的聚合函数全都可以在查询的计算中可用的聚合函数全都可以在查询的“设设计视图计视图”的的“设计网格设计网格”区的区的“总计总计”行的任一单元行的任一单元格的下拉列表中选择到。格的下拉列表中选择到。 例例4-13 在在“学生管理系统学生管理系统”数据库中创建一个查询,数据库中创建一个查询,统计全校学生人数。统计全校学生人数。 分析:分析:本查询的运行结果实际上就是要统计出本查询的运行结果实际上就是要统计出“学生学生”表中的全部

35、记录个数。表中的全部记录个数。 在该查询的在该查询的“设计视图设计视图” ,单击单击“查询工具查询工具”下的下的“设计设计”选项卡的选项卡的“显示显示/隐藏隐藏”组中的组中的“汇总汇总”按钮,在按钮,在“设计网格设计网格”区显出区显出“总计总计”行行。 图图4-44 “姓名姓名”的的“字段属性字段属性”对话对话框框 图图4-45 字段改标题后的查询结果字段改标题后的查询结果 图图4-43 字段改名前的查询结果字段改名前的查询结果 修改该字段标题修改该字段标题 例例4-14 在在“学生管理系统学生管理系统”数据库中创建一个数据库中创建一个查询,统计全校男学生的高考总分的平均分和女学生查询,统计全

36、校男学生的高考总分的平均分和女学生的高考总分的平均分。的高考总分的平均分。 分析:本查询的运行结果实际上就是要分别统计出分析:本查询的运行结果实际上就是要分别统计出“学生学生”表中的表中的“性别性别”字段的值为字段的值为“男男”的高考总分的平均分和的高考总分的平均分和“性性别别”字段的值为字段的值为“女女”的高考总分的平均分。实际上就是要把的高考总分的平均分。实际上就是要把“学生学生”表中的全部记录按表中的全部记录按“性别性别”字段的值进行分组,将全字段的值进行分组,将全部部“性别性别”为为“男男”的学生记录分为一组并统计出该组的高考的学生记录分为一组并统计出该组的高考总分的平均分,将全部总分

37、的平均分,将全部“性别性别”为为“女女”的学生记录分为一组的学生记录分为一组并统计出该组的高考总分的平均分。并统计出该组的高考总分的平均分。 图图4-47 查询结果查询结果 图图4-46 “设计网格设计网格”区查询条件设置区查询条件设置 例例4-15 在在“学生管理系统学生管理系统”数据库中创建一数据库中创建一个查询,统计每一个学生已修的学分数。对于每个学个查询,统计每一个学生已修的学分数。对于每个学生来说,某门课程的成绩大于等于生来说,某门课程的成绩大于等于60分才能计算该门分才能计算该门课程的学分(若不及格,就不计算该门课程的学分课程的学分(若不及格,就不计算该门课程的学分数)。要求在查询

38、结果中显出数)。要求在查询结果中显出“学号学号”、“姓名姓名”和和“学分学分”。 分析:分析:“学生学生”表中有表中有“学号学号”和和“姓名姓名”两两个字段,在个字段,在“修课成绩修课成绩”表中才有表中才有“成绩成绩”字段,在字段,在“课程课程”表中才有表中才有“学分学分”字段,故在创建该查询时字段,故在创建该查询时要添加要添加“学生学生”、“修课成绩修课成绩”和和“课程课程”三个表。三个表。运行查询结果运行查询结果设计视图设计视图 自定义计算是指使用一个或多个字段中的自定义计算是指使用一个或多个字段中的数据在每个记录上执行数值、日期或文本计算。数据在每个记录上执行数值、日期或文本计算。 在在

39、“设计视图设计视图”中,对于自定义计算,可中,对于自定义计算,可直接在设计网格中创建新的计算字段。直接在设计网格中创建新的计算字段。 创建计算字段的方法是:将表达式输入到创建计算字段的方法是:将表达式输入到查询设计网格中的空查询设计网格中的空“字段字段”单元格中。单元格中。 例例4-16 在在“学生管理系统学生管理系统”数据库中创建一个查询,计数据库中创建一个查询,计算每一个学生每一已修课程成绩的绩点数。对于每个学生来说,算每一个学生每一已修课程成绩的绩点数。对于每个学生来说,某一课程的成绩大于等于某一课程的成绩大于等于60分才能计算该门课程成绩的绩点数分才能计算该门课程成绩的绩点数(若不及格

40、,就不计算该门课程成绩的绩点数)。要求在查询(若不及格,就不计算该门课程成绩的绩点数)。要求在查询结果中显出结果中显出“学号学号”、“课程名称课程名称”、“成绩成绩”和和“绩点绩点”,并按学号、课程代码排序并按学号、课程代码排序。绩点的计算公式为:。绩点的计算公式为:成绩成绩/10-5。 分析:分析:在在“修课成绩修课成绩”表中有表中有“学号学号”字段、字段、“课程代码课程代码”字段和字段和“成绩成绩”字段。在字段。在“课程课程”表中有表中有“课程名称课程名称”字段,字段,在任何表中都没有在任何表中都没有“绩点绩点”字段,故要添加一个计算字段,即字段,故要添加一个计算字段,即在在“设计网格设计

41、网格”区的空白的区的空白的“字段字段”单元格输入:单元格输入: 绩点绩点:成绩成绩/10-5 另外,另外,“课程代码课程代码”字段不需显示,在此例中添加进来仅字段不需显示,在此例中添加进来仅是为了排序用途。是为了排序用途。运行查询结果运行查询结果输入输入绩点绩点:成绩成绩/10-5设置不显示设置不显示设计视图设计视图 使用交叉表查询可以计算并重新组织数使用交叉表查询可以计算并重新组织数据的结构,这样可以更加方便地分析数据。据的结构,这样可以更加方便地分析数据。交叉表查询可以按分类对记录数据作合计、交叉表查询可以按分类对记录数据作合计、平均值、计数等计算平均值、计数等计算,这种数据可分为两组,这

42、种数据可分为两组信息:一类在数据表左侧排列,另一类在数信息:一类在数据表左侧排列,另一类在数据表的顶端。据表的顶端。例例4-17 在在“学生管理系统学生管理系统”数据库中,对数据库中,对“学生学生”表创建的交表创建的交叉表查询,计算各班级的男、女学生的人数。该查询的名称为:叉表查询,计算各班级的男、女学生的人数。该查询的名称为:例例4-17 班级男女学生人数班级男女学生人数交叉表查询。交叉表查询。 单击单击“创建创建”选项卡的选项卡的“查询查询”组上的组上的“查询向导查询向导”按钮,按钮,显出显出“新建查询新建查询”对话框对话框,单击单击“交叉表查询向导交叉表查询向导”。图图4-54 选定行标

43、题选定行标题 (班级号)(班级号) 图图4-55 选定列标题选定列标题 (性别)(性别) 在在“请确定为每个列和行的交叉点计算出什么数字:请确定为每个列和行的交叉点计算出什么数字:”的的“交叉表查询向导交叉表查询向导”对话框中,单击选择对话框中,单击选择“函数函数”列表框中的列表框中的 “Count” 。图图4-56 指定计数函数指定计数函数Count 图图4-58 查询运行结果查询运行结果 例例4-18 在在“学生管理系统学生管理系统”数据库中,对数据库中,对“修课成绩修课成绩”表创建交叉表查询,计算各学生各学年度的修课数。该查表创建交叉表查询,计算各学生各学年度的修课数。该查询的名称为:例

44、询的名称为:例4-18查询学生各学年的修课数查询学生各学年的修课数交叉表。交叉表。 单击单击“查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询类查询类型型”组上的组上的“交叉表交叉表”按钮,立即在该查询的按钮,立即在该查询的“设计网格设计网格”区添加上了区添加上了“总计总计”行和行和“交叉表交叉表”行,如图行,如图4-59所示。所示。“字段”单元格下拉按钮添加“总计”行和“交叉表”行选选“学号学号”为行标题为行标题选选“学年度学年度”为列标题为列标题选选“计数计数”选选“值值”运行查询结果运行查询结果 参数查询是这样一种查询,它在运行时显示参数查询是这样一种查询,它在运行时显示

45、“输输入参数值入参数值”的对话框,提示用户输入信息,用户可在的对话框,提示用户输入信息,用户可在该对话框中输入不同的条件参数值,即可检索该对话框中输入不同的条件参数值,即可检索到满足到满足条件的记录内容条件的记录内容。 可以设计参数查询来提示输入条件,检索要满可以设计参数查询来提示输入条件,检索要满足该条件值的记录,例如,可设计参数查询来提示输足该条件值的记录,例如,可设计参数查询来提示输入一个入一个“班级号班级号”等。可以设计多个参数查询来提示等。可以设计多个参数查询来提示更多的内容,例如,设计两个参数的查询来提示输入更多的内容,例如,设计两个参数的查询来提示输入两个日期,当运行时,检索出这

46、两个日期之间的所有两个日期,当运行时,检索出这两个日期之间的所有记录。记录。 例例4-19 在在“学生管理系统学生管理系统”数据库中,创建数据库中,创建一个单个参数的查询,根据提示输入某一个一个单个参数的查询,根据提示输入某一个“班级班级号号”,检索出该班级的成绩不及格的,检索出该班级的成绩不及格的“班级号班级号”、“学号学号”、“姓名姓名”、“课程名称课程名称”和和“成绩成绩”字段。字段。该查询的名称为:例该查询的名称为:例4-19按班级号查询成绩不及格的按班级号查询成绩不及格的学生名单。学生名单。 分析:分析:“学生学生”表中有表中有“班级号班级号”、“学号学号”和和“姓名姓名”三个字段,

47、在三个字段,在“修课成绩修课成绩”表中才有表中才有“成成绩绩”字段,在字段,在“课程课程”表中才有表中才有“课程名称课程名称”字段,字段,故在创建该查询时一定要添加故在创建该查询时一定要添加“学生学生”表、表、“修课成修课成绩绩”表和表和“课程课程”表等三个表。表等三个表。图图4-63 含单个参数的查询的含单个参数的查询的“设计视图设计视图”的设置的设置在在“班级号班级号”字段的字段的“条件条件”行单元格行单元格中输入:中输入:请输入要查询的班级号请输入要查询的班级号 图图4-64 “输入参数值输入参数值”对话框对话框 图图4-65 参数查询结果参数查询结果 当运行该查询时显出:当运行该查询时

48、显出:运行查询结果运行查询结果 例例4-20 在在“学生管理系统学生管理系统”数据库中,创建一数据库中,创建一个含有两个参数的查询,提示输入两个日期,然后检个含有两个参数的查询,提示输入两个日期,然后检索在这两个日期之间出生的所有学生的学号、姓名、索在这两个日期之间出生的所有学生的学号、姓名、性别、出生日期、班级名称、课程名称及成绩。该查性别、出生日期、班级名称、课程名称及成绩。该查询的名称为:例询的名称为:例4-20查询两个日期之间出生学生的成查询两个日期之间出生学生的成绩。绩。 提示:提示:创建本查询要添加创建本查询要添加“班级班级”表、表、“学生学生”表、表、“修课成绩修课成绩”表和表和

49、“课程课程”表。表。图图4-66 含两个参数查询的含两个参数查询的“设计视图设计视图”的设置的设置 在在“出生日期出生日期 ”字段的字段的“条件条件”行单元格中输入:行单元格中输入:Between 请输入开始日期请输入开始日期 And 请输入终止日期请输入终止日期 图图4-67 第一个第一个“输入参数值输入参数值”对话框对话框 图图4-69 两个日期参数的查询结果两个日期参数的查询结果 当运行该查询时显出:当运行该查询时显出:图图4-68 第二个第二个“输入参数值输入参数值”对话框对话框 运行查询结果运行查询结果 操作查询是仅在一个操作中就可以追加、操作查询是仅在一个操作中就可以追加、更改或删

50、除许多记录的查询更改或删除许多记录的查询操作查询。操作查询。有如下四种类型:有如下四种类型: 生成表查询生成表查询 追加查询追加查询 更新查询更新查询 删除查询删除查询 生成表查询利用一个或多个表中的全部或部分生成表查询利用一个或多个表中的全部或部分数据创建新表。数据创建新表。 利用生成表查询建立新表时,如果数据库中已利用生成表查询建立新表时,如果数据库中已有同名的表,则新表将覆盖该同名的表。有同名的表,则新表将覆盖该同名的表。 注意,利用生成表查询建立新表时,新表中的注意,利用生成表查询建立新表时,新表中的字段从生成表查询的源表中继承字段名称、数据类字段从生成表查询的源表中继承字段名称、数据

51、类型以及型以及“字段大小字段大小”属性。但是不继承其它的字段属性。但是不继承其它的字段属性以及表的主键。属性以及表的主键。 例例4-21 在在“学生管理系统学生管理系统”数据库中,创建数据库中,创建一个生成表查询,将一个生成表查询,将2003-2004学年度成绩学年度成绩“不及不及格格”的学生相关内容(包括的学生相关内容(包括“学号学号”、“姓名姓名”、“课程名称课程名称”、“成绩成绩”、“学年度学年度”、“学期学期”、“班级名称班级名称”字段)生成到一新表。该新表名为字段)生成到一新表。该新表名为“成绩不及格的学生成绩不及格的学生”。该查询名为:例。该查询名为:例4-21成绩成绩不及格学生的

52、生成表查询。不及格学生的生成表查询。 提示:提示:在创建本查询时要添加在创建本查询时要添加“班级班级”表、表、“学生学生”表、表、“修课成绩修课成绩”表和表和“课程课程”表。表。单击单击“查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询类型查询类型”组上的组上的“生成表生成表”按钮,显出按钮,显出“生成表生成表”对话框。对话框。设计视图设计视图“生成表生成表”对话框对话框 当运行当运行“例例4-21成绩不及格学生的生成表查询成绩不及格学生的生成表查询”时,显出时,显出提示提示“确实要执行这种类型的动作查询吗?确实要执行这种类型的动作查询吗?”对话框对话框 。 单击上述对话框中的

53、单击上述对话框中的“是是”按钮,显出提示按钮,显出提示“确实要用选确实要用选中的记录来创建新表吗?中的记录来创建新表吗?”对话框。对话框。 追加查询是将一个或多个表中的一组记录追加查询是将一个或多个表中的一组记录添加到另一个已存在的表的末尾。添加到另一个已存在的表的末尾。 要被追加记录的表必须是已经存在的表。要被追加记录的表必须是已经存在的表。这个表可以是当前数据库中的表,也可以是另这个表可以是当前数据库中的表,也可以是另外一个数据库中的表。外一个数据库中的表。 例例4-22 在在“学生管理系统学生管理系统”数据库中,创建一数据库中,创建一个追加查询,将个追加查询,将2004-2005学年度成

54、绩学年度成绩“不及格不及格”的学生相关内容(包括的学生相关内容(包括“学号学号”、“姓名姓名”、“课课程名称程名称”、“成绩成绩”、“学年度学年度”、“学期学期”、“班级名称班级名称”字段)追加到字段)追加到“成绩不及格的学生成绩不及格的学生”中。该查询名为:例中。该查询名为:例4-22成绩不及格学生的追加查成绩不及格学生的追加查询。询。 提示:提示:在创建本查询时要添加在创建本查询时要添加“班级班级”表、表、“学生学生”表、表、“修课成绩修课成绩”表和表和“课程课程”表表单击单击“查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询类型查询类型”组上组上的的“追加追加”按钮,显出

55、按钮,显出“追加追加”对话框。对话框。设计视图设计视图“追加追加”对话框对话框 当运行当运行“例例4-22成绩不及格学生的追加查询成绩不及格学生的追加查询”时,显出提时,显出提示示“确实要执行这种类型的动作查询吗?确实要执行这种类型的动作查询吗?”对话框对话框 单击上述对话框中的单击上述对话框中的“是是”按钮,显出提示按钮,显出提示“确实要追加确实要追加选中行吗?选中行吗?”对话框。对话框。 更新查询可以对表中的部分记录或全部记更新查询可以对表中的部分记录或全部记录作更改。更新查询用在一次更新一批数据的录作更改。更新查询用在一次更新一批数据的操作中非常方便。操作中非常方便。 例例4-23 在在

56、“学生管理系统学生管理系统”数据库中,数据库中,创建一个更新查询,将创建一个更新查询,将“修课成绩修课成绩”表中的表中的“学期学期”字段值为字段值为“1”的所有记录的的所有记录的“学期学期”字段值更改为字段值更改为“一一”。该查询名为:例。该查询名为:例4-23学期的更新查询。学期的更新查询。 分析:分析:“修课成绩修课成绩”表有表有“学期学期”字段,字段,故在创建该更新查询时要添加故在创建该更新查询时要添加“修课成绩修课成绩”表。表。 单击单击“查询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询查询类型类型”组上的组上的“更新更新”命令,显出命令,显出“更新查询更新查询”的的“

57、设设计视图计视图”。添加了添加了“更新更新到到”行行图图4-80 更新查询的更新查询的“设计视图设计视图” 设计视图设计视图 当运行当运行“例例4-23对学期的更新查询对学期的更新查询”时,显出提示时,显出提示“确实确实要执行这种类型的动作查询吗?要执行这种类型的动作查询吗?”对话框对话框 。 单击上述对话框中的单击上述对话框中的“是是”按钮,显出提示按钮,显出提示“确实要更新确实要更新这些记录吗?这些记录吗?”对话框。对话框。 删除查询可以从一个或多个表中删除一组删除查询可以从一个或多个表中删除一组记录。使用删除查询,将删除整个记录,而不记录。使用删除查询,将删除整个记录,而不是只删除记录中

58、所选的字段。是只删除记录中所选的字段。 如果启用级联删除,则可以用删除查询从如果启用级联删除,则可以用删除查询从单个表中、从一对一关系的多个表中,或一对单个表中、从一对一关系的多个表中,或一对多关系中的多个表删除多关系中的多个表删除相关的相关的记录。记录。 例例4-24 在在“学生管理系统学生管理系统”数据库中,数据库中,创建一个删除查询,从创建一个删除查询,从“成绩不及格的学生成绩不及格的学生”表中将表中将“学年度学年度”字段值为字段值为 2004-2005 的的所有记录删除。该查询名为:例所有记录删除。该查询名为:例4-24成绩不及成绩不及格学生的删除查询。格学生的删除查询。 单击单击“查

59、询工具查询工具”下的下的“设计设计”选项卡中的选项卡中的“查询查询类型类型”组上的组上的“删除删除”按钮,显出按钮,显出“删除查询删除查询”的的“设设计视图计视图”。 添加了添加了“删除删除”行行设计视图设计视图 当运行当运行“例例4-24成绩不及格学生的删除查询成绩不及格学生的删除查询”时,显出提时,显出提示示“确实要执行这种类型的动作查询吗?确实要执行这种类型的动作查询吗?”对话框对话框 。 单击上述对话框中的单击上述对话框中的“是是”按钮,显出提示按钮,显出提示“确实要删除确实要删除选中的记录吗?选中的记录吗?”对话框。对话框。 SQL(Structure Query Language)

60、的中文)的中文名称为结构化查询语言。名称为结构化查询语言。SQL是一种专门针对数据是一种专门针对数据库操作的计算机语言。库操作的计算机语言。SQL 查询是使用查询是使用 SQL 语句语句创建的查询。创建的查询。 在在 Access 数据库中,查询对象本质上是一个数据库中,查询对象本质上是一个SQL语言编写的命令。当使用查询的语言编写的命令。当使用查询的“设计视图设计视图”用可视化的方式创建一个查询对象后,系统便自动用可视化的方式创建一个查询对象后,系统便自动把它转换为相应的把它转换为相应的SQL语句保存起来。语句保存起来。 运行一个查询对象实质上就是执行该查询中指运行一个查询对象实质上就是执行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论