《access数据库应用教程使用查询实用教案》由会员分享,可在线阅读,更多相关《access数据库应用教程使用查询实用教案(122页珍藏版)》请在金锄头文库上搜索。
1、学习学习(xux)(xux)目标目标 查询是Access组织和提取数据(shj)的一种重要手段。使用查询,可以将多个表或查询中的数据(shj)组织到一起,为应用程序服务。本章将在介绍查询基础知识的同时,重点讲解如何使用查询向导和查询设计器创建查询。第1页/共121页第一页,共122页。本章本章(bn zhn)(bn zhn)要点要点 查询基础查询设计器查询向导查询中的运算符和函数(hnsh)高级查询第2页/共121页第二页,共122页。查查 询询 基基 础础 理解查询 查询类型(lixng) 查询设计工具 SQL Select语句 表联接类型(lixng)第3页/共121页第三页,共122页。
2、理解理解(lji)(lji)查询查询 查询可从一个或多个表中检索(jin su)数据,并可执行各种统计,如求最大值、最小值、总计、计数和平均值等。查询本质上是SQL Select语句。执行查询时,Access会将表或查询中的数据提取出来,显示在数据表中。数据表中的记录称为动态集。动态集是动态的记录集合,实际的数据保存在数据库的表中。它与表类似,但不是表。Access不会保存动态集,每次在运行查询时,都从底层的表中读取数据并重建动态集,所以动态集中的数据始终是最新的。在保存查询时,Access保存的是查询的结构:使用的表、字段、排序规则、筛选条件和查询类型等。第4页/共121页第四页,共122页
3、。查询查询(chxn)(chxn)类型类型 Access提供了多种查询,包括选择查询、参数查询、交叉(jioch)表查询、操作查询和SQL查询。选择查询参数查询 交叉(jioch)表查询操作查询 操作查询 第5页/共121页第五页,共122页。选择选择(xunz)(xunz)查询查询 选择查询是最简单的一种查询,用于从一个或多个表中提取需要(xyo)的字段,也可将数据的更新返回底层的表。在选择查询中,还可使用条件(也称查询准则)来限制查询结果。查询准则对应SQL Select语句中的WHERE和HAVING子句。第6页/共121页第六页,共122页。参数参数(cnsh)(cnsh)查询查询 参
4、数查询在执行时要求输入查询参数,然后按照输入内容执行数据检索(jin su)。如使用参数查询检索(jin su)指定班级的学生人数。第7页/共121页第七页,共122页。交叉交叉(jioch)(jioch)表查询表查询 交叉表查询只用一个表或查询作为数据源,从中返回(fnhu)某个字段的统计值(合计、计算或平均值),并将它们分组,一组列在数据表的左侧,一组列在数据表的上部。第8页/共121页第八页,共122页。操作操作(cozu)(cozu)查询查询 操作查询用于对多个(du )记录执行批量更新操作,Access共有4种类型的操作查询:删除查询、更新查询、追加查询与生成表查询。删除查询删除查询
5、用于对一个或多个(du )表中满足条件的一组记录进行删除操作。如使用删除查询删除在“选课记录”表中出现的无效学号的选课记录。第9页/共121页第九页,共122页。操作操作(cozu)(cozu)查询查询更新查询更新查询用于对一个或多个(du )表中记录的某些字段执行更新。如将所有学生的成绩统一加10分。追加查询追加查询用于将查询结果添加到其他的表中。生成表查询生成表查询使用查询结果创建新的表。第10页/共121页第十页,共122页。SQLSQL查询查询(chxn)(chxn)SQL查询指用户直接使用SQL语句创建的查询,这类查询通常(tngchng)不能直接在查询设计器中通过图形化的方式创建。
6、SQL查询包括4种方式:联合查询、传递查询、数据定义查询和子查询。联合查询联合查询将多个查询结果合并到一起。第11页/共121页第十一页,共122页。SQLSQL查询查询(chxn)(chxn)传递查询传递查询指基于远程数据库上的SQL语句进行的查询。这种查询可在不建立连接的情况下直接对服务器中的表进行操作。在Access中,可用ADO对象替代传递查询。数据定义查询数据定义查询指使用SQL的数据定义语言(DDL)在查询过程(guchng)中创建、删除、更改表或创建数据库中的索引。第12页/共121页第十二页,共122页。SQLSQL查询查询(chxn)(chxn)子查询(chxn)SQL的子查
7、询(chxn)指嵌套在其他查询(chxn)中的SQL Select语句。第13页/共121页第十三页,共122页。查询设计查询设计(shj)(shj)工具工具Access提供了多种查询设计工具,包括查询设计器、简单查询向导、交叉(jioch)表查询向导、查找重复项查询向导和查找不匹配项查询向导等。查询设计器 简单查询向导 交叉(jioch)表查询向导 查找重复项查询向导 查找不匹配项查询向导 第14页/共121页第十四页,共122页。查询查询(chxn)(chxn)设计器设计器 在查询的“设计视图(sht)”中打开的就是“查询设计器”。使用“查询设计器”可创建各种类型的查询。在创建查询,通常先
8、使用向导创建查询,然后在“查询设计器”中进行修改。第15页/共121页第十五页,共122页。简单简单(jindn)(jindn)查询向导查询向导 “简单查询向导”使用一个或多个表或查询作为(zuwi)数据源,可对记录分组,或执行求最大值、最小值、总计、计数和平均值等计算。“简单查询向导”不能设置条件筛选记录。 第16页/共121页第十六页,共122页。交叉交叉(jioch)(jioch)表查询向导表查询向导 “交叉表查询向导”用于创建交叉表查询,对记录计算总计、平均值、计数或其他类型总计,然后按照两类信息对结果进行(jnxng)分组:一组信息分布在数据表的左侧,另一组分布在数据表的顶端。第17
9、页/共121页第十七页,共122页。查找查找(ch zho)(ch zho)重复项查询向导重复项查询向导 “查找重复项查询向导(xingdo)”创建的查询为选择查询,在查询结果中返回重复的记录。如在“选课记录”表中查询是否有学生重复选择了同一门课。第18页/共121页第十八页,共122页。查找查找(ch zho)(ch zho)不匹配项查询向导不匹配项查询向导 “查找不匹配项查询向导”也用于创建选择查询,用于查找与其他表不相关(xinggun)的记录。如查找没有选课的学生信息。第19页/共121页第十九页,共122页。SQL SelectSQL Select语句语句(yj)(yj)在使用设计(
10、shj)器或向导创建查询时,Access将查询转换为SQL Select语句。在查询的“SQL视图”中可查看查询的SQL Select语句。SQL Select基本结构 SELECT子句 使用INTO子句创建新表 使用FROM子句指定数据源 使用WHERE子句定义筛选条件 使用GROUP BY子句对记录分组 使用ORDER BY子句对结果排序 使用联合查询 使用子查询 第20页/共121页第二十页,共122页。SQL SelectSQL Select基本基本(jbn)(jbn)结构结构SELECT语句的完整语法较复杂(fz),其基本结构如下:SELECT select_listINTO new
11、_table_nameFROM table_listWHERE search_conditionsGROUP BY group_by_listHAVING search_conditionsORDER BY order_list ASC | DESC 第21页/共121页第二十一页,共122页。SQL SelectSQL Select基本基本(jbn)(jbn)结构结构SELECT语句基本结构(jigu)中包含了7个子句,这些子句的排列顺序是固定的。其中除SELECT子句外,其他子句都可省略,但若出现,则必须按照基本结构(jigu)中的顺序排列。SELECT语句中各个子句的作用分别如下:SEL
12、ECT子句指定出现在查询结果中的字段,其中select_list为选择包含在查询结果中的字段列表,多个字段之间使用逗号分隔。第22页/共121页第二十二页,共122页。SQL SelectSQL Select基本基本(jbn)(jbn)结构结构INTO子句指定使用查询结果来创建新表,其中new_table_name指定新表的名称。FROM子句指定查询结果中数据的来源。这些来源可能包括表、查询或链接表。WHERE子句指定源表中记录(jl)的筛选条件,只有符合条件的记录(jl)中的字段才可能出现在查询结果中。第23页/共121页第二十三页,共122页。SQL SelectSQL Select基本基
13、本(jbn)(jbn)结构结构GROUP BY子句指定在执行(zhxng)查询时,对记录的分组条件,其中在SELECT子句的select_list列表的字段必须包含在group_by_list中。HAVING子句指定查询结果的附加筛选。逻辑上讲,HAVING子句从中间结果对记录进行筛选,这些中间结果是用SELECT语句中的FROM、WHERE或GROUP BY子句创建的。HAVING子句通常与GROUP BY子句一起使用,尽管HAVING子句前面不必有GROUP BY子句。第24页/共121页第二十四页,共122页。SQL SelectSQL Select基本基本(jbn)(jbn)结构结构O
14、RDER BY子句指定查询结果中记录(jl)的排列顺序。order_list指定用于排列记录(jl)的字段列表,ASC和DESC关键字用于指定记录(jl)是按升序还是按降序排序。第25页/共121页第二十五页,共122页。SELECTSELECT子句子句(z j)(z j)SELECT子句的作用是从数据源表中选择包含在查询结果(ji gu)中的字段,其语法格式如下:SELECT ALL | DISTINCT | DISTINCTROW TOP n PERCENT * | 表名.* | 字段名 AS 输出名称使用*返回所有字段SELECT子句中,*表示从FROM子句指定表中返回所有字段,各字段按
15、表中的顺序返回。第26页/共121页第二十六页,共122页。SELECTSELECT子句子句(z j)(z j)直接指定字段名如果只返回表中的部分字段,可在SELECT子句中直接列出字段名称,多个字段使用逗号分隔。例如,下面的查询返回“学生信息”表中所有学生的姓名和学号:SELECT姓名, 学号 FROM 学生信息如果返回字段出现在多个表中,则必须(bx)在字段名之前加上表名进行限定。定义字段输出名称查询结果输出的字段默认与原字段名称相同,可用AS指定字段的输出名称。第27页/共121页第二十七页,共122页。SELECTSELECT子句子句(z j)(z j)在查询结果中输出(shch)唯一
16、记录在SELECT子句中,可用ALL或DISTINCT关键字指定是否输出(shch)重复记录。默认为ALL,即输出(shch)重复记录;DISTINCT表示不输出(shch)重复记录。DISTINCTROW关键字与DISTINCT类似,DISTINCT用于限制查询结果中的各个字段必须是唯一的,DISTINCTROW则进一步限制记录必须是唯一的,忽略掉重复记录。第28页/共121页第二十八页,共122页。SELECTSELECT子句子句(z j)(z j)使用TOP控制返回的记录(jl)数量在SELECT子句中,可用TOP n返回前n条记录(jl)。n是0,294967295范围内的整数。如果加
17、上PERCENT关键字,则表示返回前百分之n条记录(jl)。此时,n必须是0,100范围内的整数。第29页/共121页第二十九页,共122页。使用使用(shyng)INTO(shyng)INTO子句创建新表子句创建新表INTO子句的语法格式如下:INTO 新表名称INTO子句使用(shyng)查询结果创建新表。 第30页/共121页第三十页,共122页。使用使用FROMFROM子句子句(z j)(z j)指定数据源指定数据源 FROM子句的语法格式如下:FROM 表名 INNER | LEFT | RIGHT JOIN 表名ON 条件FROM子句一般只需指定(zhdng)源表或查询的名称,多个
18、源表或查询用逗号分隔。JOIN关键字用于指定(zhdng)联接类型。INNER JOIN表示内部联接,若使用内部联接,INNER关键字可以省略。LEFT JOIN表示左外联接,RIGHT JOIN表示右外联接。若不指定(zhdng)联接类型,则为交叉联接。ON关键字指定(zhdng)联接的条件,其格式如下:ON 表名1.字段名1 运算符 表名2.字段名2运算符包括=(大于)、(大于)、=(大于等于)和(不等)。第31页/共121页第三十一页,共122页。使用使用WHEREWHERE子句定义子句定义(dngy)(dngy)筛选条件筛选条件 WHERE子句的语法(yf)如下:WHERE 筛选条件筛
19、选条件是一个有效的逻辑表达式。 第32页/共121页第三十二页,共122页。使用使用GROUP BYGROUP BY子句子句(z j)(z j)对记录分组对记录分组 GROUP BY子句(z j)语法格式如下:GROUP BY 分组字段列表 GROUP BY子句(z j)对记录进行分组,从而实现SELECT子句(z j)中统计函数(如SUM、COUNT、MIN、MAX和AVG等)的分类计算。第33页/共121页第三十三页,共122页。使用使用(shyng)ORDER BY(shyng)ORDER BY子句对结果排序子句对结果排序ORDER BY子句的语法格式如下:ORDER BY 排序字段1
20、ASC | DESC ,.n ASC表示升序,DESC表示降序,默认为ASC。Access允许(ynx)指定多个排序字段,其间需用逗号分隔。第34页/共121页第三十四页,共122页。使用联合使用联合(linh)(linh)查询查询联合查询指使用UNION运算将多个查询结果合并到一起,其语法格式如下:SELECT语句1UNIONSELECT语句2用UNION合并两个查询必须满足如下条件:输出字段的数目必须相同。对应字段的数据类型必须兼容,即在数据类型不同时,可相互转换。在合并后的查询结果中,字段名称为(chn wi)第一个查询中的字段名称,其他查询的字段名称被忽略。在转换不同类型的对应字段值时
21、,以“容纳最多数据”为基本原则。第35页/共121页第三十五页,共122页。使用使用(shyng)(shyng)子查询子查询 子查询指嵌套在其他SQL语句中的SELECT语句,如嵌套在SELECT、INSERT、UPDATE、DELETE语句或其他子查询中。任何允许使用表达式的地方都可使用子查询。子查询也称为内部查询或内部选择(xunz),而包含子查询的语句也称为外部查询或外部选择(xunz)。通常,子查询作为外部选择(xunz)的选取条件或者数据来源。(1)子查询与SELECT语句的使用语法完全相同,但在使用时必须遵守以下原则: 子查询语句使用括号()括起来。第36页/共121页第三十六页,
22、共122页。使用使用(shyng)(shyng)子查询子查询在比较运算中使用(shyng)的子查询的输出字段最多一个字段。若外部查询的WHERE子句包括某个字段,则该子句中使用(shyng)的子查询选择列表中该字段的数据类型必须兼容(在不同时可相互转换)。使用(shyng)了GROUP BY的子查询不能使用(shyng)DISTINCT关键字。只有在子查询中使用(shyng)了TOP关键字时,才可以使用(shyng)ORDER BY子句。第37页/共121页第三十七页,共122页。使用使用(shyng)(shyng)子查询子查询(2)子查询的返回结果可分为3种:单一值、单列的多行数据和多列的多
23、行数据。这3种返回结果对应了不同的使用方法:直接使用单一的返回结果。例如使用在=、等关系表达式或+、-、*、/等算术表达式中。使用单列的多行数据作为比较清单。通常(tngchng)使用在IN、ALL或ANY(SOME)运算中,判断某个值是否在比较清单中,运算结果为TRUE或FALSE。使用多列的多行数据作为测试条件,即使用EXISTS判断是否有返回值,运算结果为TRUE或FALSE。第38页/共121页第三十八页,共122页。使用使用(shyng)(shyng)子查询子查询(3)下面通过具体的查询实例来说明子查询的使用。直接使用单一的返回结果使用单列的多行数据作为比较清单作为比较清单的子查询通
24、常用在SELECT、INSERT、UPDATE和DELETE等语句中的WHERE或HAVING子句的逻辑(lu j)表达式中,并且多使用IN、ALL或ANY (SOME) 运算。 第39页/共121页第三十九页,共122页。使用使用(shyng)(shyng)子查询子查询使用多列的多行数据(shj)作为测试条件在查询中,可使用EXISTS运算来测试子查询中是否有任何返回结果,如果有返回结果,则运算结果为TRUE,否则为FALSE。第40页/共121页第四十页,共122页。表联接表联接(lin ji)(lin ji)类型类型联接类型用于控制从两个表返回的查询结果(ji gu),Access支持4
25、种联接:内部联接、左外联接、右外联接和交叉联接。内部联接 (INNER JOIN) 左外联接 (LEFT JOIN) 右外联接 (RIGHT JOIN) 交叉联接 第41页/共121页第四十一页,共122页。内部内部(nib)(nib)联接联接 (INNER JOIN) (INNER JOIN) 内部联接是指返回两个表中联接字段值完全匹配(ppi)的记录。第42页/共121页第四十二页,共122页。左外联接左外联接(lin ji) (LEFT JOIN)(lin ji) (LEFT JOIN)左外联接是指返回左表的全部记录,若右侧(yu c)表中有匹配的记录,则用NULL代替。第43页/共12
26、1页第四十三页,共122页。右外联接右外联接(lin ji) (RIGHT JOIN) (lin ji) (RIGHT JOIN) 右外联接是指返回右表全部记录(jl),若左侧表中没有匹配的记录(jl),则用NULL代替。第44页/共121页第四十四页,共122页。交叉交叉(jioch)(jioch)联接联接 交叉联接是指没有指定联接类型的联接,将两个(lin )表中的记录一一对应。第45页/共121页第四十五页,共122页。查询查询(chxn)(chxn)设计器设计器 在“查询设计器”中可以对数据表中的任意字段进行查询,下面将详细讲解“查询设计器”的新建、结构和使用方法。打开“查询设计器”“
27、查询设计器”结构 操作查询中的表 选择字段 设置排序方式 筛选记录 运行(ynxng)查询 应用举例设计“选课成绩单”查询 第46页/共121页第四十六页,共122页。打开打开(d ki)“(d ki)“查询设计器查询设计器”利用“查询设计器”建立查询之前(zhqin),首先需将其打开,Access中常用的两种方法,即新建查询打开和打开现有查询。新建查询 打开现有查询 第47页/共121页第四十七页,共122页。新建查询新建查询(chxn)(chxn)第48页/共121页第四十八页,共122页。新建查询新建查询(chxn)(chxn)第49页/共121页第四十九页,共122页。新建查询新建查询
28、(chxn)(chxn)第50页/共121页第五十页,共122页。打开打开(d ki)(d ki)现有查询现有查询 第51页/共121页第五十一页,共122页。“查询查询(chxn)(chxn)设计器设计器”结构结构 “查询设计器”分为上下(shngxi)两部分,上半部分称为“表/查询窗格”,下半部分称为“设计网格”。第52页/共121页第五十二页,共122页。“查询设计查询设计(shj)(shj)器器”结构结构第53页/共121页第五十三页,共122页。“查询查询(chxn)(chxn)设计器设计器”结构结构“表/查询窗格”中显示了用于设计查询的表或查询,以及表之间的关系。“设计网格”用于设
29、计查询。在“设计网格”中,每一列都显示了一个字段的相关设置(shzh)。在每列中都包含了下列内容:字段:输入或添加查询中使用的字段。表:显示字段来源表的名称。排序:设置(shzh)字段是否排序以及排序方式。第54页/共121页第五十四页,共122页。“查询查询(chxn)(chxn)设计器设计器”结构结构显示:设置字段是否在查询中输出(shch)。选中该复选框,字段在查询结果中输入;取消选中该复选框,不输出(shch)字段。条件:设置字段的筛选条件。或:设置字段的其他筛选条件,允许在多个行中输入多个条件。在为查询添加条件时,每一行中各列之间的条件需要成立,而各行之间是“或者”关系,只要满足任意
30、一行的条件即可。第55页/共121页第五十五页,共122页。 操作操作(cozu)(cozu)查询中的表查询中的表 对查询中的表进行操作包括添加表、删除(shnch)表、移动字段列表窗口和定义表关系与联接类型等。添加表删除(shnch)表 移动字段列表窗口 定义表关系与联接类型 第56页/共121页第五十六页,共122页。添加添加(tin ji)(tin ji)表表在“查询设计器”中设计查询的第一步就是添加表,其操作可通过 “显示表”对话框完成。在打开“查询设计器”创建新查询时,Access可自动(zdng)打开“显示表”对话框。在该对话框中,可用下列方法将表添加到“查询设计器”中:在列表框中
31、双击表或查询的名称。在列表框中单击表或查询的名称,再单击“添加”按钮。第57页/共121页第五十七页,共122页。添加添加(tin ji)(tin ji)表表第58页/共121页第五十八页,共122页。删除删除(shnch)(shnch)表表 若添加了某个不需要的表,可先单击“表/查询窗格”中该表的字段列表窗口,然后执行下列操作将其删除(shnch):按Del键。选择“编辑/删除(shnch)”命令。选择“查询/删除(shnch)表”命令。用鼠标右键单击表的字段列表窗口,在弹出的快捷菜单中选择“删除(shnch)表”命令。第59页/共121页第五十九页,共122页。移动移动(ydng)(ydn
32、g)字段列表窗口字段列表窗口适当调整字段列表窗口(chungku)位置,可以更好的显示表之间的关系连线。同拖动其他窗口(chungku)一样,拖动字段列表窗口(chungku)的标题栏即可移动窗口(chungku)。第60页/共121页第六十页,共122页。定义定义(dngy)(dngy)表关系与联接类型表关系与联接类型 表关系决定了两个表的联接类型,从而决定了如何从多个表中返回记录。若已经定义了关系,在“表/查询窗格”中会显示一条连接线。如果没有定义关系,则表之间不会显示连接线,按交叉联接执行查询。在“表/查询窗格”中定义关系很简单,从关系“主表”的字段列表窗口中将(zhngjing)关联字
33、段拖动到“子表”的关联字段上即可。第61页/共121页第六十一页,共122页。定义表关系与联接定义表关系与联接(lin ji)(lin ji)类型类型第62页/共121页第六十二页,共122页。定义表关系与联接定义表关系与联接(lin ji)(lin ji)类型类型若在查询中不需要关系,可用下列方法(fngf)删除关系连接线:单击关系连接线,按Del键或选择“编辑/删除”命令。用鼠标右键单击关系连接线,在弹出的快捷菜单中选择“删除”命令。第63页/共121页第六十三页,共122页。定义定义(dngy)(dngy)表关系与联接类型表关系与联接类型关系(gun x)连接线用于在查询中设置连接类型。
34、双击关系(gun x)连接线,打开“联接属性”对话框。在对话框的“左表名称”和“右表名称”下拉列表框中,可选择联接中左表和右表的名称,在“左列名称”和“右列名称”下拉列表框中,可选择联接字段的名称。在对话框下方的3个选项用于设置联接类型:第64页/共121页第六十四页,共122页。定义表关系定义表关系(gun x)(gun x)与联接类型与联接类型第65页/共121页第六十五页,共122页。定义定义(dngy)(dngy)表关系与联接类型表关系与联接类型第66页/共121页第六十六页,共122页。选择选择(xunz)(xunz)字段字段 在Access中有多种方法为查询(chxn)选择字段,包
35、括选择单个字段、添加多个字段等。选择单个字段添加多个字段 添加全部字段 改变字段输出名称 使用表达式 改变字段顺序 第67页/共121页第六十七页,共122页。选择选择(xunz)(xunz)单个字段单个字段为查询(chxn)选择单个字段可用下列方法:第68页/共121页第六十八页,共122页。选择选择(xunz)(xunz)单个字段单个字段从“表/查询窗格”的字段列表窗口中将(zhngjing)字段拖动到“设计网格”的“字段”行中。第69页/共121页第六十九页,共122页。添加添加(tin ji)(tin ji)全部字段全部字段 要添加表中的全部字段,可将字段列表窗口中的*符号添加到设计网
36、格中,或者(huzh)选择全部字段后,再将其拖动到“设计网格”中。第70页/共121页第七十页,共122页。改变改变(gibin)(gibin)字段输出名称字段输出名称默认情况下,查询结果中字段的名称与原字段名称一致。如果要改变字段输出名称,可在“设计网格”中“字段”行显示的字段名称之前加上字段的输出名称,并用冒号“:”分隔(fng)。如要将“课程信息”表的“名称”字段修改为“课程名称”,则应在“设计网格”中“字段”行显示“名称”之前加上“课程名称:”(注意这里的冒号应该是在英文状态下输入)。第71页/共121页第七十一页,共122页。使用使用(shyng)(shyng)表达式表达式 在“设计
37、网格”的“字段”行中可以使用表达式。如要将查询结果中学生的成绩(chngj)加上100,可在“字段”行中输入“成绩(chngj)+100”。Access自动将其规范化为“表达式1: 成绩(chngj)+100”,冒号之前的为该字段在查询结果中的输出名称。第72页/共121页第七十二页,共122页。使用使用(shyng)(shyng)表达式表达式第73页/共121页第七十三页,共122页。改变改变(gibin)(gibin)字段顺序字段顺序 默认(mrn)情况下,查询结果中各个字段按照“设计网格”中的先后顺序输出。可在“设计网格”中调整各个字段的顺序.第74页/共121页第七十四页,共122页。
38、删除删除(shnch)(shnch)选择字段选择字段 从“设计网格”中删除(shnch)已选字段的操作步骤如下:第75页/共121页第七十五页,共122页。设置设置(shzh)(shzh)排序方式排序方式 默认情况下,查询不对记录排序,“设计网格”的字段的“排序”行显示为空。根据(gnj)需要可重新对字段进行排序。第76页/共121页第七十六页,共122页。 筛选筛选(shixun)(shixun)记录记录 在“设计网格”的“条件”和“或”行中,可设置记录的筛选条件。Access允许省略字符串的双引号,并按相等进行比较(bjio)。也可使用其他的比较(bjio)运算符,例如(大于)、=(大于等
39、于)、(不等)。如=60可作为“成绩”字段的条件,从而输出成绩大于等于60的记录。 第77页/共121页第七十七页,共122页。运行运行(ynxng)(ynxng)查询查询在“查询设计器”中,可使用下列方式运行(ynxng)并观察查询结果:第78页/共121页第七十八页,共122页。运行运行(ynxng)(ynxng)查询查询运行(ynxng)查询时,Access在“数据表视图”中显示查询结果。在“数据库窗口”中,可使用下列方式运行(ynxng)查询:第79页/共121页第七十九页,共122页。运行运行(ynxng)(ynxng)查询查询第80页/共121页第八十页,共122页。应用举例应用举
40、例(j l)(j l)设计设计“选课成绩单选课成绩单”查询查询 创建(chungjin)一个“选课成绩单”查询,显示学生的学号、姓名、课程名称和成绩等信息。(光盘:chapter3第3章例.mdb)第81页/共121页第八十一页,共122页。 查查 询询 向向 导导 通过查询(chxn)向导可以很方便地建立所需的查询(chxn),Access提供了包括简单查询(chxn)、交叉表查询(chxn)、查找重复项查询(chxn)和查找不匹配项查询(chxn)等4种查询(chxn)向导,下面分别介绍其用法。简单查询(chxn)向导交叉表查询(chxn)向导 查找重复项查询(chxn)向导 查找不匹配项
41、查询(chxn)向导 第82页/共121页第八十二页,共122页。简单查询简单查询(chxn)(chxn)向导向导“简单查询向导(xingdo)”用于创建基于多个表或查询的简单查询。如果使用多个表作为数据源,“简单查询向导(xingdo)”要求定义表之间的关系。使用下列方法可打开“简单查询向导(xingdo)”: 第83页/共121页第八十三页,共122页。简单查询简单查询(chxn)(chxn)向导向导第84页/共121页第八十四页,共122页。简单简单(jindn)(jindn)查询向导查询向导第85页/共121页第八十五页,共122页。简单查询简单查询(chxn)(chxn)向导向导第8
42、6页/共121页第八十六页,共122页。简单查询简单查询(chxn)(chxn)向导向导【例3-1】 创建“平均成绩(chngj)”查询,显示学生的姓名、学号和平均成绩(chngj)。(光盘:chapter3第3章例.mdb)第87页/共121页第八十七页,共122页。交叉表查询交叉表查询(chxn)(chxn)向导向导 “交叉表查询向导”只能从一个数据源中检索数据。如果需要从多个表中检索数据,可先创建一个查询,然后使用查询来创建交叉表查询。交叉表查询在“数据表视图”中以固定格式显示数据,一个或多个字段作为行标题,一个字段作为列标题,另外一个字段作为表格数据,并可对数据执行各种( zhn)统计
43、计算,在本节例题中创建的交叉表查询的“数据表视图”。第88页/共121页第八十八页,共122页。交叉交叉(jioch)(jioch)表查询向导表查询向导第89页/共121页第八十九页,共122页。交叉表查询交叉表查询(chxn)(chxn)向导向导【例3-2】 使用前面创建的“选课成绩单”查询创建“选课成绩单_交叉(jioch)表”交叉(jioch)表查询。(光盘:chapter3第3章例.mdb)第90页/共121页第九十页,共122页。查找重复项查询查找重复项查询(chxn)(chxn)向导向导查找(ch zho)重复项查询可在表或查询中检索重复的字段值。使用“查找(ch zho)重复项查
44、询向导”,可以快速创建查找(ch zho)重复项查询。【例3-3】 创建一个查找(ch zho)重复项查询,检索“选课记录”表中“学号”和“课程号”的重复值。(光盘:chapter3第3章例.mdb)第91页/共121页第九十一页,共122页。查找查找(ch zho)(ch zho)不匹配项查询向导不匹配项查询向导 查找不匹配项查询可以从一个表中检索出与另一个表中不匹配的记录(jl)。如从“选课记录(jl)”表中查找与“学生信息”表中不匹配的记录(jl),从而查看哪些选课记录(jl)没有对应的学生信息。【例3-4】 创建查找不匹配项查询,查看哪些选课记录(jl)没有对应的学生信息。(光盘:ch
45、apter3第3章例.mdb)第92页/共121页第九十二页,共122页。查询查询(chxn)(chxn)中的运算符与函数中的运算符与函数 在查询中,除了使用单个字段外,还可使用运算符和函数来构造各种表达式。Access提供了下列类型的运算符:算术运算符比较(bjio)运算符字符串运算符逻辑运算符特殊预算符第93页/共121页第九十三页,共122页。查询查询(chxn)(chxn)中的运算符与函数中的运算符与函数 算术运算符 比较运算符字符串运算符 逻辑运算符 特殊(tsh)预算符 运算符的优先级 第94页/共121页第九十四页,共122页。算术算术(sunsh)(sunsh)运算符运算符算术
46、运算符用于执行算术运算,由算术运算符构成的表达式称为算术表达式。Access支持的算术运算符如下:+:加法(jif),如成绩+10。-:减法,如成绩-10。*:乘法,如成绩*10。/:除法,如7/2,结果为3.5。第95页/共121页第九十五页,共122页。算术算术(sunsh)(sunsh)运算符运算符:整除,整数除法,并取结果(ji gu)的整数部分。如果参与运算的数不是整数,则四舍五入为整数。例如62,结果(ji gu)为3;7.52,结果(ji gu)为4。:乘方,如23表示2的3次方。Mod:求余,要求参与运算的数为整数。如果不是整数,则四舍五入为整数。例如7 Mod 2,结果(ji
47、 gu)为1。第96页/共121页第九十六页,共122页。比较比较(bjio)(bjio)运算符运算符 比较运算符用于比较两个值或表达式的大小关系,比较运算又称为关系运算。比较运算的结果为逻辑值(True或False)或Null。由关系运算符构成(guchng)的表达式称为关系表达式。Access支持的比较运算符如下:=:相等,如成绩=100。:小于,如成绩:大于,如成绩100。=:小于等于,如成绩=:大于等于,如成绩=60。:不等,如成绩100。第97页/共121页第九十七页,共122页。字符串运算符字符串运算符 字符串指用双引号括起来的一串字符,文本(wnbn)数据类型字段也是字符串。Ac
48、cess支持的文本(wnbn)运算符如下:&:字符串连接,将两个字符串连接起来,构成一个字符串,例如文本(wnbn) & 123。Like:字符串模式匹配,运算结果为True、False或Null。第98页/共121页第九十八页,共122页。字符串运算符字符串运算符字符串模式匹配的格式如下:字符串表达式 Like 模式字符串在模式字符串中可使用下列通配符:?:任意(rny)的一个字符,如a?表示以字符a开头的,包含一个字符或两个字符的字符串。*:任意(rny)长度的任意(rny)字符构成的字符串,如a*表示以字符a开头的所有字符串。:任意(rny)的一个数字。第99页/共121页第九十九页,共
49、122页。字符串运算符字符串运算符列表:列表中的任意一个字符,如abc*表示以ab或ac开头(ki tu)的任意字符串。!列表:不包含列表中的任何字符,如!bc*表示不以b或c开头(ki tu)的任意字符串。在“列表”和“!列表”中,可使用连字符表示范围,例如ab-m*。第100页/共121页第一百页,共122页。逻辑逻辑(lu j)(lu j)运算符运算符 逻辑(lu j)运算符用于对逻辑(lu j)值进行运算,运算结果仍为逻辑(lu j)值或Null。由逻辑(lu j)运算符构成的表达式称为逻辑(lu j)表达式。逻辑(lu j)表达式在查询中常常作为条件出现,逻辑(lu j)真(True
50、)表示条件成立,逻辑(lu j)假(False)表示条件不成立。Access常用的逻辑(lu j)运算符如下:Not:逻辑(lu j)非(取反),Not True为False,Not False为True。第101页/共121页第一百零一页,共122页。逻辑逻辑(lu j)(lu j)运算符运算符And:逻辑与,两个值都为True时,结果才为True。只要有一个值为False,则结果为False。例如,下面的条件表示姓张,而且成绩(chngj)在60分以上:姓名 Like 张* And 成绩(chngj)=60。Or:逻辑或,两个值都为False时,结果才为Flase。只要有一个值为True,
51、则结果为True。例如,下面的条件表示姓张,或者成绩(chngj)在60分以上:姓名 Like 张* Or 成绩(chngj)=60第102页/共121页第一百零二页,共122页。特殊特殊(tsh)(tsh)预算符预算符 除了一些常用的运算符外,Access还提供了一些特殊(tsh)预算符,如BetweenAnd、In和Is Null等,下面分别讲解其用法。BetweenAndInIs Null第103页/共121页第一百零三页,共122页。BetweenAnd BetweenAnd 此预算符表示范围,其格式如下:表达式 Between 值1 And 值2若表达式结果在“值1”和“值2”表示的
52、范围内,则结果为True,否则(fuz)为False。例如,下面的表达式判断成绩是否在90和100之内(包含90和100):成绩 Between 90 And 100第104页/共121页第一百零四页,共122页。In In 此预算符用于判断(pndun)表达式结果是否等于列表中的某个值,其格式如下:表达式 In(值1,值2,值3,)若表达式结果等于列表中的任意一个值,则结果为True,否则为False。例如,下面的表达式判断(pndun)姓名是否为“张三”、“李四”或“王五”:姓名 In(张三,李四,王五)第105页/共121页第一百零五页,共122页。Is Null Is Null 此预算
53、符用于判断表达式结果(ji gu)是否为Null,结果(ji gu)为True或False。例如,下面的表达式判断姓名字段是否为空值:姓名 Is Null第106页/共121页第一百零六页,共122页。 运算符的优先级运算符的优先级 不同的运算符,其运算的先后顺序(shnx)也有一定规定。按类别确定的运算优先顺序(shnx)()算术运算符字符串连接比较运算符逻辑运算符算术运算符的优先顺序(shnx)乘方取负乘法/除法整除求余加法/减法第107页/共121页第一百零七页,共122页。 运算符的优先级运算符的优先级 优先级相同的按照从左到右的顺序依次(yc)计算。所有比较运算符的优先顺序相同,同时
54、出现时按照从左到右的顺序依次(yc)计算。逻辑运算符的优先顺序NotAndOr第108页/共121页第一百零八页,共122页。高高 级级 查查 询询高级查询是查询器的高级使用,主要包括删除查询、参数查询、追加查询和SQL联合查询,下面(xi mian)将详细介绍创建这些查询器的方法。创建删除查询 创建参数查询 创建追加查询 创建SQL联合查询 第109页/共121页第一百零九页,共122页。创建删除创建删除(shnch)(shnch)查询查询删除查询是Access提供的一种操作查询,用于删除符合条件的记录。【例3-5】 创建一个查询删除无效的选课记录,无效选课记录指选课记录中的学号在“学生信息
55、”表中没有匹配(ppi)的记录。(光盘:chapter3第3章例.mdb)第110页/共121页第一百一十页,共122页。创建创建(chungjin)(chungjin)参数查询参数查询参数查询在执行(zhxng)时提示用户输入参数值,然后根据输入执行(zhxng)查询。【例3-6】 创建一个参数查询,查询指定学生的选课信息,输出学生的学号、姓名、课程名称和成绩等信息。(光盘:chapter3第3章例.mdb)第111页/共121页第一百一十一页,共122页。创建追加创建追加(zhuji)(zhuji)查询查询 追加查询可以将查询结果添加到目的表中。【例3-7】 创建一个追加查询,利用参数输入
56、学生学号,并与“课程信息”表所有(suyu)课程的课程号组成选课记录添加到“选课记录”表,选课记录的成绩设置为0。(光盘:chapter3第3章例.mdb)第112页/共121页第一百一十二页,共122页。创建创建(chungjin)SQL(chungjin)SQL联合查询联合查询 联合查询、传递查询和数据定义查询都属于特殊的SQL查询,这些查询只能在SQL视图中进行设计。【例3-8】 创建一个(y )SQL联合查询,将“学生信息”和“教师信息”表中的数据合并到一起。(光盘:chapter3第3章例.mdb)第113页/共121页第一百一十三页,共122页。 上上 机机 练练 习习 本练习使用
57、“上机练习”数据库(光盘:chapter3上机练习.mdb)中的学生(xu sheng)信息、课程信息和选课记录查询学生(xu sheng)选择的课程和课程平均成绩。第114页/共121页第一百一十四页,共122页。“学生学生(xu sheng)(xu sheng)选课选课”信息查询信息查询 “学生选课”信息查询根据(gnj)输入的学号查询该学生选择的课程清单。第115页/共121页第一百一十五页,共122页。 创建创建“课程平均课程平均(pngjn)(pngjn)成绩成绩”查询查询 创建“课程(kchng)平均成绩”查询。第116页/共121页第一百一十六页,共122页。习习 题题 使用本书
58、配套光盘提供的数据库(光盘:chapter3第3章习题.mdb)完成下面的练习。(1)设计一个“重复订单”查询,检索“订单”表中“订户号”、“期刊号”、“发行员编号”、“起订期”和“止订期”等字段值都相同的记录。(2)设计一个“订户期刊”查询,检索每个用户订阅(dngyu)的期刊的名称和订阅(dngyu)份数。 第117页/共121页第一百一十七页,共122页。习习 题题第118页/共121页第一百一十八页,共122页。习习 题题(3)设计一个“更新期刊单价”查询,修改期刊单价,要求(yoqi)使用查询参数输入期刊名称和价格。(4)设计一个“删除订单”查询,删除订阅份数为“0”的订单。(5)设
59、计一个“邮局发行员”查询,运行查询时,输入邮局名称的前几个字符,即可检索已输入字符开头的邮局的发行员信息。(6)设计一个“追加邮递员”查询,将编号为偶数的发行员添加到“邮递员”表中。(7)设计一个“邮局员工”联合查询,将“发行员”和“邮递员”记录合并。第119页/共121页第一百一十九页,共122页。习习 题题第120页/共121页第一百二十页,共122页。感谢您的观看(gunkn)!第121页/共121页第一百二十一页,共122页。内容(nirng)总结学习目标。更新查询用于对一个(y )或多个表中记录的某些字段执行更新。在SELECT子句中,可用TOP n返回前n条记录。应用举例设计“选课成绩单”查询。在列表框中单击表或查询的名称,再单击“添加”按钮。+:加法,如成绩+10。-:减法,如成绩-10。如果参与运算的数不是整数,则四舍五入为整数。如果不是整数,则四舍五入为整数。感谢您的观看第一百二十二页,共122页。