查询的创建与使用
◇一个查询就是对数据库中的表或其他查询结果的一组相关操作,比如在一张表中筛选出符合某种条件的记录或把某两张表中的部分记录和字段组合在一起建立一张新表。
◇
查询的执行结果往往也是一张表,但这种表不会被存储,因为它是在执行查询时即时生成的虚拟表。
用“查找”按钮来找数据说的是查找,并不是查询。我们首先要知道,并不需要将所有可能用到的数据都罗列在表上,即使是一些需要计算的值,也统统先算好以后才填到表中,仍然像在纸上使用表格及其里面的数据那样,完全没有觉得Access数据库中的表和纸上的表格有什么区别。其实在Access数据库中的表并不是一个百宝箱,不需要将所有的数据都保存在一张表中。不同的数据可以分门别类地保存在不同的表中,就像在“客户信息表”中保存和客户资料有关的信息,而在“订单信息表”中保存和订单内容相关的信息。
在使用表存储数据的时候我们都有侧重点,通过它们的名字就可以看出这个表是用来做什么的,这样很容易就可以知道哪些表中存储有什么数据内容。很少有人会把表的名字起成“表一”、“表二”的。如果有很多表的话,这样根本就不知道这些表存储了什么内容。所以我们在建立表的时候,首先想的就是要把同一类的数据放在一个表中,然后给这个表取个一目了然的名字,这样管理起来会方便得多。但是另一方面,我们在实际工作中使用数据库中的数据时,并不是简单地使用这个表或那个表中的数据,而常常是将有“关系”的很多表中的数据一起调出使用,有时还要把这些数据进行一定的计算以后才能使用。如果再建立一个新表,把要用到的数据拷贝到新表中,并把需要计算的数据都计算好,再填入新表中,就显得太麻烦了,用“查询”对象可以很轻松地解决这个问题,它同样也会生成一个数据表视图,看起来就像新建的“表”对象的数据表视图一样。“查询”的字段来自很多互相之间有“关系”的表,这些字段组合成一个新的数据表视图,但它并不存储任何的数据。当我们改变“表”中的数据时,“查询”中的数据也会发生改变。计算的工作也可以交给它来自动地完成,完全将用户从繁重的体力劳动中解脱出来,充分体现了计算机数据库的优越性。
查询的分类与应用
Access数据库中的查询对象有很多不同的类型,比如选择查询、参数查询、交叉表查询、操作查询和SQL查询。
“选择查询”就是从一个或多个有关系的表中将满足要求的数据提取出来,并把这些数据显示在新的查询数据表中。而其他的方法,像“交叉查询”、“操作查询”和“参数查询”等,都是“选择查询”的扩展。
每种查询都有着很重要的应用,下面介绍查询对象的6种主要应用。
选择字段 在查询中,可以只选择表中的部分字段。例如建立一个查询,只显示“学生基本信息”表中的“姓名” “班级”等字段。
选择记录 根据指定的条件查找所需的记录,并显示找到的记录。例如建立一个查询,只显示“学生基本信息”表中的男性记录。
编辑记录 编辑记录主要包括添加记录、修改记录和删除记录等。在Access中,可以利用查询添加、修改和删除表中的记录。
实现计算 查询不仅可以找到满足条件的记录,而且还可以在建立查询的过程中进行各种统计计算。
建立新表 利用查询得到结果可以建立一个新表,也可以直接通过一个查询来创建新表。
建立基于查询的报表和窗体为了从一个或多个表中选择合适的数据显示在报表或窗体中,用户可以先建立一个查询,然后将该查询的结果作为报表或窗体的数据源。每次打印报表或打开窗体时,该查询就从它的基表中检索出符合条件的最新记录。这样也提高了报表或窗体的使用效果。
查询的视图
Access的查询对象一共拥有5种视图,分别是“设计视图” “SQL视图” “数据表视图” “数据透视表视图”和“数据透视图视图”,其中最常用到的是“设计视图” “SQL视图”和“数据表视图”。
设计视图 查询对象的设计视图主要用于创建或修改查询。在【数据库】窗口的【查询】对象页面中单击按钮,打开【新建查询】对话框,然后选择【设计视图】一项,再单击【确定】按钮,便会打开一个查询的设计视图。

打开新查询的设计视图的同时,还会打开一个名为【显示表】的对话框,此对话框也可以通过单击【查询】/【显示表】命令或单击Access 2003主窗口的工具栏上的按钮打开。

由于查询是基于表或其他查询之上的操作,所以在使用设计视图创建查询时,首先要将需要操作的表或查询添加到设计视图中,这可以通过【显示表】对话框完成。【显示表】对话框中包含有【表】【查询】和【两者都有】3个选项卡。
【表】选项卡中列出了当前数据库中包含的所有表;
【查询】选项卡中列出了当前数据库中包含的所有查询;
【两者都有】选项卡中则是包含了当前数据库中所有的表和查询。
选择当前查询所要操作的表和查询,然后单击【添加】按钮便可以将它们添加到当前查询的设计视图中。

查询的设计视图分为上下两部分,上半部分称为字段列表区,用来查看和管理此查询所要操作的表或其他查询。
查询视图的下半部分称为“设计网格”区,用来查询的结果中所包含的字段进行设计。在字段列表区中单击某一个表或查询,再按Del键便可以将其删除。
使用设计视图创建完一个查询后,应该通过单击【文件】/【保存】命令将其保存。
SQL视图
在Access中,虽然可以使用设计视图创建出功能强大的查询,但其可定制能力依然存在一定的限制,为此,Access提供了使用SQL语言的方式来创建查询。
如果想使用SQL语言创建或编辑查询,可以先打开一个查询(可以是一个新查询,也可以是一个已经建立好的查询),然后单击【视图】/【SQL视图】命令,即可打开查询的SQL视图。
在查询的SQL视图中,可以直接编写SQL语句,每一条SQL语句都对应着一项数据库的操作(在查询中不能编写诸如创建数据库这样的SQL语句),一个查询中可以包含多条SQL语句。

在Access 2003中,也可以先使用向导或设计视图创建查询,然后再切换到SQL视图中进行进一步的编辑,因为Access会自动根据向导或设计视图中的设计生成相应的SQL语句。完成SQL语句的编写后,可以单击【文件】/【保存】命令将其保存。
数据表视图
由于查询的运行结果往往是一张表,所以Access也为查询对象提供了“数据表视图”。打开查询对象后,可以通过单击【视图】/【数据表视图】命令切换到查询的数据表视图。在数据表视图下,可以查看查询的执行结果。
数据表视图中显示的表是即是生成的一张虚拟表,Access不会对其进行单独的存储。

选择查询
选择查询是最常用的查询,它对保存在表中的数据进行查询,以数据表的方式返回查询结果,但不改变万年青中的数据。选择查询可以选择要返回的特定字段、符合条件的记录、设置记录的顺序、对记录进行分组并进行汇总计算(包括求和、计数、求平均值等)。
例如,创建一个查询,用于筛选出1985年出生的男生记录,将此查询命名为“1985年出生的男生”。
① 打开一个新查询的设计视图,在弹出的【显示表】对话框中选择表,并单击【添加】按钮。
② 单击【显示表】对话框的【关闭】按钮,将该对话框关闭,并切换到新建查询的设计视图上。这时,查询设计视图的字段列表区会显示出表的字段。
③ 在查询设计视图的设计网格中设计此查询的结果中将要显示的字段。
④ 在设计网格中编写筛选条件。在本例中,要求筛选出1985年出生的男生记录,所以应该在“性别”字段中设置查询条件为“男”,“生日”字段中设置查询条件为Between "1985-1-1" And "1985-12-31"。这两个条件的关系是“与”,表示“男”和“1985年出生”两个条件同时满足。
⑤ 单击【文件】/【保存】命令,在弹出的【另存为】对话框中输入查询的名称“1985年出生的男生”,然后单击【确定】按钮。
⑥ 单击【视图】/【数据表视图】命令或单击【查询】/【运行】命令可以查看到该查询执行的结果。
在查询中进行计算
在Access的查询中,可以进行预定义计算或自定义计算。预定义计算又叫总计计算,使用Access提供的预定义函数,对查询结果中的全部或部分数据进行统计计算,例如,求和、求平均值、计数、求最大值或最小值等。
在查询的设计视图中单击工具栏上的【总计】按钮,在设计网格中就会出现“总计”行,,用于进行总计的设置。
Access提供了丰富的总计选项。单击查询中各个字段对应的“总计”单元格的下拉按钮,打开下拉列表。在下拉列表中共有12个总计选项,供用户选择,其功能见表。
分类 |
名称 |
功能 |
聚合函数 |
分组(Group By) |
指定进行数值汇总的分类字段 |
总计(Sun) |
为每一组中的指定字段求和 |
平均值(Avg) |
为每一组中的指定字段求平均值 |
最小值(Min) |
为每一组中的指定字段求最小值 |
最大值(Max) |
为每一组中的指定字段求最大值 |
计数(Count) |
为每一组中的指定字段求记录数 |
标准差(StDev) |
为每一组中的指定字段求标准差 |
方差(Var) |
为每一组中的指定字段求方差 |
第一条记录(First) |
返回组中第一个记录指定字段的值 |
最后一条记录(Last) |
返回组中最后一个记录指定字段的值 |
表达式 |
表达式(Expression) |
在设计网格的“字段”行建立计算字段 |
限制条件 |
条件(Where) |
在“条件”行指定查询条件 |
下面,我们建立一个总计查询,用于按类别统计各班学生《计算机基础》分数比较,包括平均分、最低分和最高分。将这个查询命名为“各班计算机基础分值比较”
① 打开一个新查询的设计视图,并在【显示表】以对话框中将“学生基本信息”和“学生成绩”两个表添加到此查询的设计视图中。
② 单击工具栏上的【总计】按钮,将“总计”行显示在设计网格中,然后在设计网格中作如下设置:在“字段”行中,将“类别”表中的“学生基本信息”和“学生成绩”表中的“姓名”以及“计算机基础”字段添加到设计网格的字段行中,“计算机基础”字段要添加3次。在“总计”行中,将3个“姓名”字段分别指定为“平均值(Avg)” “最小值(Min)”和“最大值(Max)”。在“显示”行中,将全部字段选中。

③ 设置完成后的设计视图。将该查询命名并进行保存。
④ 执行这个查询可以得到结果。


操作查询
选择查询不更改源表中的数据,操作查询与选择查询不同,操作查询是用来更改数据库的查询。
Access中的操作查询包括以下4种。
生成表查询
生成表查询就是使用已有的一个或多个表中的数据创建新表。运行生成表查询时把查询的数据存储在一个新表中。生成的新表并不继承表中的字段属性和主键设置。所有的选择查询都可以改变成生成表查询。
追加查询
追加查询就是将一组记录追加到一个或多个表的末尾。运行追加查询的结果是向有关表中自动添加记录,增加了表中的记录数。
更新查询
更新查询就是对一个或多个表中的数据进行更改。运行更新查询的结果是自动修改了有关表中的数据。若设置了级联更新,则更新“一方”数据的同时,“多方”的数据也会自动更新。数据一旦更新,则不能恢复。
删除查询
删除查询就是对一个或多个表中的数据进行删除。运行删除查询的结果是自动删除了表中的有关数据。若设置了级联删除。则删除“一方”数据的同时,“多方”的数据也会自动删除。数据一旦删除,则不能恢复。
这里仅以生成表查询为例,介绍创建操作查询的步骤,其他的操作查询的创建方法与生成表查询类似。
例如,我们把之前创建的一个“1985年出生的男生”查询改造为生成表查询。将此查询命名为“部分男生表”。
① 在【数据库】窗口中的【查询】对象页面中双击之前创建的“1985年出生的男生”查询,将其打开,并在【视图】菜单中选择【设计视图】命令,切换到查询的设计视力中,。
② 单击【查询】/【生成表查询】命令,打开【生成表】对话框。
③ 在表名称文本框中输入一个新的表名,比如“部分男生”,然后单击【确定】按钮。这样就完成一个生成表查询的创建。单击【文件】/【保存】命令或【另存为】将这个查询保存。
④ 单击【查询】/【运行】命令,执行这一查询。这时,会弹出一个对话框,要求确认是否要创建新表并填入数据。单击【是】按钮将使用该查询结果中的记录创建新表。
报表的创建与使用
报表是Access数据库的对象之一,用于对表、查询或窗休中的数据进行组织、计算、排序、分组和汇总,并按照指定的格式显示和打印出来。
报表的功能
◇报表是Access用来打印数据库信息的对象。
◇它的主要功能是根据需要将数据库中的有关数据提取出来,进行分类、整理、汇总和统计,并按照用户需要的格式打印出来。
◇打印出来的报表供用户使用、查阅和存档。
可以在“报表”中控制每个对象的大小和显示方式,并可以按照所需的方式来显示相应的内容。我们还可以在“报表”中添加多级汇总、统计比较,甚至加上图片和图表。
报表的结构
◇报表的结构是由若干个“节”组成。
◇报表的节包含“主体” “报表页眉” “报表页脚” “页面页眉” “页面页脚” “组页眉”和“组页脚”等。
◇“报表页眉/页脚”和“页面页眉/页脚”都可以使用【视图】菜单选择是否显示。
而“组页眉”和“组页脚”只有在创建分组报表时根据需要显示。
◇所谓分组是指在报表中将某些具有共性的记录,集中到一起作为一个组。
◇按分组字段的不同值将报表分为不同的段落,可使报表层次清晰,提高报表的可读性。
◇分组可以嵌套,Access 2003最多可以允许10个“组页眉”和“组页脚”。
报表中各节的作用如下:
主体,是报表的主要组成部分,用来显示报表数据源中的记录。
报表页眉,是报表的首部,用来显示报表的标题、徽标、单位、部门名称、日期和说明性文本。
报表页脚,是报表的尾部,用来显示整个报表的统计数据、日期和说明性文本。
页面页眉,在每一页的顶部,用来显示列标题、页码等信息。
页面页脚,在每一页的底部,用来显示页面摘要、页码、本页汇总数据等信息。
组页眉,在组的明细部分的前面,用来显示分组字段等分组信息。
组页脚,在组的明细部分的后面,用来显示分组统计数据等分组信息。
使用向导创建报表
在Access 2003中,创建报表的方法分为两大类,一是使用向导创建报表,二是使用设计视图创建报表。
使用向导创建报表 在Access的【数据库】窗口的【报表】对象页面中,单击按钮,打开【新建报表】对话框。该对话框中包含有6个选项,分别是“设计视图” “报表向导” “自动创建报表:纵栏式” “自动创建报表:表格式” “图表向导”和“标签向导”。其中,后5个选项均是通过向导创建报表。
创建报表时,一般先用向导进行报表的初步设计,完成报表的大部分基础性工作,然后用设计视图对报表进行再设计,直到满意为止。
例如,使用“报表向导”创建一个报表,此报表以“学生基本信息”表作为数据源,显示“姓名”、“出生年月”、“学号”、“班级”、“寝室”、“联系电话”、“电子邮件”字段的信息,并且进行分组。
① 打开【数据库】窗口的【报表】对象页面,单击按钮,打开【新建报表】对话框。在【新建报表】对话框中选择【报表向导】选项。
② 在【新建报表】对话框中单击【确定】按钮,系统会打开【报表向导】对话框。【报表向导】的第1步是要确定报表上使用的字段。在“表/查询”下拉列表框中选择“表:学生基本信息”,然后使用按钮将【可用字段】列表框中的“姓名”、“出生年月”、“学号”、“班级”、“寝室”、“联系电话”、“电子邮件”字段添加到【选定的字段】列表框中。

③ 单击【下一步】按钮,打开【报表向导】的第2步。这一步是要确定字段的分组级别。使用按钮将“姓名”字段添加到右边分组级别框中,还可以使用两个按钮调整分组字段的优先级。

④ 单击【下一步】按钮,打开【报表向导】的第3步,这一步是要确定报表中记录的排序方式。在第一个排序字段中选择“学号”,并使用默认的升序方式排序。

⑤ 单击【下一步】按钮,打开【报表向导】的第4步,这一步是为报表选择一种布局方式。向导中提供了6种布局方式,分别是“阶梯” “块” “分级显示1” “分级显示2” “左对齐1”和“左对齐2”,还提供了两种方向,即“纵向”和“横向”。这里选择默认的【阶梯】和【纵向】选项。
⑥ 单击【下一步】按钮,弹出【报表向导】的第5步,这一步是要为报表 选定一种样式。向导提供了6种样式,分别是“大胆” “正式” “淡灰” “紧凑”“组织”和“随意”。

⑦ 单击【下一步】按钮,弹出【报表向导】的最后一步,这一步是要确定报表的标题。在对话框上面的标题文本框中输入该报表的标题。
⑧ 最后单击【完成】按钮,系统会自动创建并打开这个报表。
【TOP】【打印】【关闭】