3.1 任务描述
在数据库中创建数据表后,可以根据需要方便且快捷地从中检索出需要的各种数据。在本任务中,我们将利用选择查询和参数查询在“商品管理系统”中创建包含商品名称、单价和数量的商品基本信息查询,以及查询商品详细信息、查询“广州”的供应商信息、按价格范围查询商品信息、根据提供的商品名称查询商品信息,从而满足用户对数据的快捷查询需求。
3.2 业务咨询
3.2.1 查询的功能
使用数据库管理数据的目的是为了更好地使用数据。Access的查询功能可以使用户从数据库管理的大量数据中迅速地检索出需要的数据。
查询的主要目的是根据指定的条件对表或其他查询进行检索,筛选出符合条件的记录,并构成一个新的数据集合,从而便于对数据库中的表进行查看和分析。查询的主要功能如下。
(1)提取数据。通过指定查询的准则,使符合条件的数据出现在结果集中。
(2)产生新表。查询可以以一个表或多个不同的表为基础,创建一个新的数据集。
(3)实现计算。对某些字段进行计算,显示计算结果,完成数据的统计分析等操作。
(4)作为其他对象的数据源。查询结果可作为窗体或报表的数据源。
(5)数据更新。利用操作查询,可实现对数据库表格数据的修改、删除和更新。
查询与表不一样,查询的对象不是数据集合,而是操作集合,查询运行的结果是一个动态集,查询不保存数据。
3.2.2 查询的类型
Access中的查询种类分为选择查询、参数查询、操作查询(更新查询、生成表查询、追加查询和删除查询)、交叉表查询以及SQL查询。
选择查询用来按指定条件浏览和统计表中的数据。参数查询是将执行时输入的值作为条件具体值来进行的带条件的选择查询。操作查询共有4种类型,分别为更新查询、生成表查询、追加查询和删除查询,常用来按指定条件对表中的数据进行修改、添加、删除及合并等处理。SQL查询,即使用SQL语句来构造查询。
3.2.3 查询的视图
查询视图主要用于设计、修改查询或按不同方式查看查询结果,Access中提供了3种常用视图,分别是数据表视图、设计视图和SQL视图。除这3种视图外,还有数据透视表视图和数据透视图视图。
1.查询的数据表视图
查询的数据表视图是以行和列的格式显示查询结果的窗口,如图1.87所示。在这个视图中,用户可以进行编辑字段、添加和删除数据、查找数据等操作,而且可以对查询进行排序和筛选等,也可以进行行高、列宽及单元格风格的设置以调整视图的显示风格。具体的操作方法和数据表操作的方法一样。查询的数据表视图是一个查询完成后的结果显示方式。
2.查询的设计视图
查询的设计视图是用来设计查询的窗口,是查询设计器的图形化表示,利用它可以完成多种结构复杂、功能完善的查询。查询设计视图由上、下两个窗口构成,即表/查询显示窗口和查询设计网格窗口,如图1.88所示。
(1)表/查询显示窗口。
表/查询显示窗口显示的是当前查询所包含的数据源(表和查询)以及表间关系。在这个窗口中可以添加或删除表,可以建立表间关系。
(2)查询设计网格。
查询设计网格用于设计显示的查询字段以及查询准则等,其中每一行都包含查询字段的相关信息,列是查询的字段列表。查询设计网格的功能如表1.8所示。
行名称 |
作 用 |
---|---|
字段 |
可以在此处输入或加入字段名,也可以单击鼠标右键,选择【生成器】命令来生成表达式 |
表 |
字段所在的表或查询的名称 |
排序 |
查询字段的排序方式(无序、升序、降序三种,默认为无序) |
显示 |
利用复选框确定字段是否在数据表中显示 |
条件 |
可以输入查询准则的第一行,也可以用单击鼠标右键,选择【生成器】命令来生成表达式 |
或 |
用于输入多个值的准则,与“条件”行成为“或”的关系 |
3.查询的SQL视图
查询的SQL视图用来显示或编辑查询的SQL语句,如图1.89所示。要正确使用SQL视图,必须熟练掌握SQL命令的语法和使用方法。后面的学习情境中将详细介绍这些内容。
3.3 任务实施
3.3.1 查询各种商品的名称、单价和数量信息
Access提供了设计视图、简单查询向导、交叉表查询向导、查找重复项查询向导和查找不匹配项查询向导等多种创建查询的方法。使用简单查询向导可以创建一个简单的选择查询,它能生成一些小的选择查询,将数据表中的记录的全部或部分字段输出,而无需使用某种条件得到结果集。
这里,我们需要查询各种商品的名称、单价和数量信息,即从“商品”表中提取商品名称、单价和数量字段进行显示,因此可采用简单查询向导创建查询。
(1)打开“商品管理系统”数据库。
(2)单击【创建】→【查询】→【查询向导】按钮,打开如图1.90所示的“新建查询”对话框。
(3)在对话框中选择“简单查询向导”选项,单击【确定】按钮,弹出“简单查询向导”对话框。
(4)在“表/查询”下拉列表中选择“表:商品”选项,“商品”表的所有字段将出现在“可用字段”列表中;再选择“可用字段”列表中的“商品名称”字段,单击 按钮,将选定的字段添加到“选定字段”列表框中。使用相同的方法,将其他需要查询的字段添加到“选定字段”列表框中,如图1.91所示。
(5)单击【下一步】按钮,弹出如图1.92所示的对话框。选择是使用明细查询还是使用汇总查询,默认选择【明细(显示每个记录的每个字段)】选项,这里不进行修改。
(6)单击【下一步】按钮,弹出如图1.93所示的指定查询标题对话框。将查询的标题修改为“商品的单价和数量”,且选中【打开查询查看信息】单选按钮。
(7)单击【完成】按钮,切换到数据表视图,显示如图1.94所示的查询结果。
3.3.2 查询商品详细信息
在“商品”表中,商品的供应商和类别信息均为编号形式。实际查询时,为了能显示具体的供应商名称和类别名称,可以采用表间数据的共享方式。
(1)打开“商品管理系统”数据库。
(2)单击【创建】→【查询】→【查询设计】按钮,打开如图1.95所示的查询设计器,同时弹出“显示表”对话框。
(3)添加查询中需要的数据源。这里,将“供应商”、“类别”和“商品”表均添加到查询设计器中,并关闭“显示表”对话框。
(4)将查询设计器上半部分数据源“商品”表中的“商品名称”字段拖曳到设计区的第一个“字段”中,该字段的其余信息将自动显示,“显示”复选框也自动勾选,表示此字段的数据内容可以在查询结果集中显示出来,如图1.96所示。
(5)在“类别”表的“类别名称”字段处双击,可将“类别名称”也添加到下方的设计区中。用同样的方法将“供应商”表中的“公司名称”字段,“商品”表中的“规格型号”、“单价”和“数量”字段添加到设计区中,指定查询输出的内容,如图1.97所示。
(6)单击快速访问工具栏上的【保存】按钮,弹出“另存为”对话框,在其中的“查询名称”文本框中输入查询名称“商品详细信息”,如图1.98所示。单击【确定】按钮,保存查询。
(7)单击【查询工具】→【设计】→【结果】→【运行】按钮 ,运行查询的结果如图1.99所示。
3.3.3 查询“广州”的供应商信息
表中的数据是以存储的要求存放的,如果需要查看其中一些满足某条件的记录,就要使用带条件的查询,将满足条件的记录筛选出来。制作时,可以用查询向导或设计器创建一个简单查询,然后在设计视图中对其进行修改和细化,并加入查询条件,从而最终设计出符合要求的查询。
这里,我们需要从所有供应商的信息中查询“广州”的供应商记录。
(1)单击【创建】→【查询】→【查询设计】按钮,打开查询设计器。
(2)将“供应商”表作为查询数据源。
(3)将“供应商”表中的所有字段添加到下方的设计区中。
(4)在查询设计区中的“城市”字段下面的“条件”文本框中输入“广州”,如图1.100所示。
(5)将查询另存为“广州的供货商信息”,运行查询的结果如图1.101所示。
3.3.4 查询单价在100~300元的商品的详细信息
前面的查询,数据来源均为数据表。其实,除了数据表外,我们也可利用已有的查询作为数据源。这里,我们将利用前面的“商品详细信息”查询作为数据源来创建查询。
对于前面创建的查询,由于查询的条件字段为“文本”类型,且为准确查询,因此省略了运算符“=”。通常情况下,可通过键入条件表达式或使用表达式生成器来输入条件表达式(表达式是指算术或逻辑运算符、常数、函数和字段名称、控件及属性的任意组合,计算结果为单个值。表达式可执行计算、操作字符或测试数据)。
(1)单击【创建】→【查询】→【查询设计】按钮,打开查询设计器。
(2)在如图1.102所示的“显示表”对话框中选择“查询”选项卡,添加“商品详细信息”查询作为查询数据源。
(3)将“商品详细信息”查询中的所有字段添加到设计区中。
(4)在查询设计区中的“单价”字段下面的“条件”文本框中输入查询条件“>=100 And <=300”,如图1.103所示。
【提示】 要查询单价在100~300元的商品,除了上面的条件表达式外,也可使用“Between 100 And 300”。注意,该表达式的查询结果包含100和300这两个值,否则,两个表达式就不等价了。
(5)将查询另存为“单价在100~300元的商品”,运行查询的结果如图1.104所示。
3.3.5 根据“商品名称”查询商品详细信息
前面所创建的查询均是按照固定的条件从数据库中查询数据的,而实际的情况常常是依照不同的条件来查询数据,这就需要创建参数查询。利用参数查询可以提高查询的通用性。用户只要输入不同的信息,就可以利用同一个查询查出不同的结果,而不需要对查询进行重新设计。
这里,我们将根据用户提供的“商品名称”来动态查询商品的详细信息。
(1)单击【创建】→【查询】→【查询设计】按钮,打开查询设计器,将“商品详细信息”查询作为数据源加入查询设计器中。
(2)拖曳表中字段列表中的“*”到下方的设计区中,表示该表的所有字段均会显示出来。
(3)将“商品名称”字段加入设计区中,并取消勾选其“显示”复选框。
【提示】由于前面已经设置“商品详细信息”查询的所有字段均会显示,这里如果不取消勾选再次选择的“商品名称”的“显示”复选框,则会在最终的结果中显示两次该字段。因此一般都会将其再次显示取消,它仅仅用来控制条件。
(4)在“商品名称”字段的下方输入条件“[请输入商品名称:]”,如图1.105所示。
【提示】在查询设计器中选择所需的字段,先根据条件的情况构造条件表达式,再将运行查询时用户需要输入的条件或参数的提示信息放在一个方括号内,如这里的“请输入商品名称”,则执行的时候会弹出以方括号中文本作为提示的对话框,然后在其中输入内容,作为这里的方括号位置的数据,参与表达式的运算。
(5)将查询保存为“根据‘商品名称’查询商品详细信息”,并关闭查询设计器。
(6)在导航窗格中双击创建好的查询,运行查询时,将弹出如图1.106所示的“输入参数值”对话框。
(7)若输入商品名称“移动硬盘”,并单击【确定】按钮,则会出现如图1.107所示的查询结果。
3.4 任务拓展
3.4.1 设计和创建“按汉语拼音顺序的商品列表”查询
一般情况下,查询结果中记录的显示顺序为数据表默认的顺序,但在设计查询时,我们可根据需要对查询结果进行升序或降序排列。如显示商品表中记录时,由于表中的“商品编号”为主键字段,因此,默认将以“商品编号”字段的值升序排列。这里我们将通过查询,按汉语拼音顺序显示商品列表。
(1)利用查询设计器新建查询。
(2)将“商品”表作为数据源。
(3)拖曳表中字段列表中的“*”到下方的设计区的“字段”行中。
(4)双击“商品名称”字段,将其加入到下方的设计区中,并取消勾选其“显示”复选框。
(5)在“商品名称”字段处,设置排序为“升序”,如图1.108所示。
(6)以“按汉语拼音顺序的商品列表”为名保存查询。 (7)运行查询,结果如图1.109所示。
3.4.2 设计和创建“五种最贵的商品”查询
在查询中,除了可以通过条件来筛选显示的结果外,还可通过设置上限值来控制显示的记录条数。
(1)利用查询设计器新建查询。
(2)设置“商品”表作为数据源。
(3)将“商品”表中所有的字段添加到“字段”行中。
(4)在“单价”字段处设置排序为“降序”。
(5)在【查询工具】→【设计】→【查询设置】→【返回】组合框 中输入数值“5”,然后按【Enter】键。
(6)以“五种最贵的商品”为名保存查询。
(7)运行查询,结果如图1.110所示。
3.4.3 删除“单价在100~300元的商品”查询中的“公司名称”字段
在实际工作的过程中,当创建好的查询不能满足需求时,可以使用设计视图修改查询(包括删除字段、添加字段、改变字段的显示顺序等),从而最终设计出符合要求的查询。
这里,我们将对创建好的“单价在100~300元的商品”查询进行修改,删除其中的“公司名称”字段。
(1)在设计视图中打开前面创建的“单价在100~300元的商品”查询。
(2)先将鼠标指针指向查询设计区中的“公司名称”字段网格上方,当鼠标指针变成指向下方的黑色箭头“”时,单击以选中该列,如图1.111所示。
(3)按键盘上的【Delete】键,将该列删除。
(4)保存查询,切换到数据表视图,查看查询的效果,如图1.112所示。
3.5 任务检测
(1)打开“商品管理系统”数据库,选择“查询”对象,查看数据库窗口中的查询是否如图1.113所示。
(2)分别运行这7个查询对象,查看查询运行的结果是否如图1.94、图1.99、图1.101、图1.107、图1.09、图1.110和图1.112所示。
3.6 任务总结
本任务通过设计并创建包含商品名称、单价和数量的商品基本信息查询,查询商品详细信息、查询“广州”的供应商信息、按价格范围查询商品信息、根据提供的商品名称查询商品信息的查询,介绍了查询的概念以及查询的基本功能。使用户掌握了利用简单查询向导和查询设计视图来创建无条件和带条件的选择查询的方法,同时掌握了参数查询的创建方法。在此基础上,还利用查询设计器对已有查询进行了修改完善,从而设计和制作出满足条件的查询。