1、ACCESSACCESS数据库应用技术数据库应用技术任课教师:路纲任课教师:路纲E-mail:lgsnnu.edu关系运算关系运算4.1 4.1 查询类型查询类型4.2 4.2 选择查询选择查询4.3 4.3 参数查询参数查询4.4 4.4 交叉表查询交叉表查询4.5 4.5 动作查询动作查询4.6 SQL4.6 SQL查询查询2关系数据库中的查询操作功能非常强大。尤其是用户关系数据库中的查询操作功能非常强大。尤其是用户可以快速实现从单个表或多个有关联的表中提取有用可以快速实现从单个表或多个有关联的表中提取有用信息。这都基于关系模型中蕴含的关系数学理论基信息。这都基于关系模型中蕴含的关系数学理
2、论基础础关系代数。关系代数。关系代数是一种抽象的查询语言,用对关系的运算来关系代数是一种抽象的查询语言,用对关系的运算来表达查询,是研究关系数据语言的数学工具。关系代表达查询,是研究关系数据语言的数学工具。关系代数的运算对象是关系,运算结果亦为关系。数的运算对象是关系,运算结果亦为关系。关系代数的运算可分为传统关系运算和专门关系运算关系代数的运算可分为传统关系运算和专门关系运算两类。两类。传统关系运算是二目运算,包括并、交、差、广义笛卡传统关系运算是二目运算,包括并、交、差、广义笛卡尔积四种运算。尔积四种运算。专门关系运算包括选择、投影和连接。专门关系运算包括选择、投影和连接。何为查询?何为查
3、询?4 查询是以表为基础数据源的查询是以表为基础数据源的虚表虚表,查询结果与查询结果与数据源表中的数据保持同步数据源表中的数据保持同步 查询是表加工处理后的结果查询是表加工处理后的结果 查询是一个或多个表的相关信息组成的视图查询是一个或多个表的相关信息组成的视图 查询可以作为其他数据库对象的数据源查询可以作为其他数据库对象的数据源 查询是数据库的核心操作查询是数据库的核心操作在在Access中,中,查询对象主要有五种类型查询对象主要有五种类型5(1 1)选择查询)选择查询(2 2)交叉表查询)交叉表查询(3 3)参数查询)参数查询(4 4)动作查询)动作查询(5 5)SQLSQL查询查询6(1
4、)(1)选择查询:最常用选择查询:最常用 可从一个或多个表中检索数据,并且在可可从一个或多个表中检索数据,并且在可以更新记录(有一些限制条件)的数据表中显以更新记录(有一些限制条件)的数据表中显示结果。示结果。可以使用选择查询来对记录进行分组,并可以使用选择查询来对记录进行分组,并且对记录做总计、计数、平均值以及其他类型且对记录做总计、计数、平均值以及其他类型的累计计算。的累计计算。4.2.1 4.2.1 使用向导创建查询使用向导创建查询7简单选择查询向导简单选择查询向导四种查询向导四种查询向导8 在在AccessAccess中利用新建查询的向导方法可以中利用新建查询的向导方法可以创建简单查询
5、、交叉表查询、查找重复项查询创建简单查询、交叉表查询、查找重复项查询和查找不匹配项查询。和查找不匹配项查询。(1)(1)简单查询简单查询 用于从一个或多个用于从一个或多个(相关)(相关)表或表或查询中,按指定的字段检索数据。查询中,按指定的字段检索数据。(2)(2)交叉表查询交叉表查询 使用交叉表查询可以计算并重使用交叉表查询可以计算并重新组织数据的结构新组织数据的结构四种查询向导四种查询向导9(3)(3)查找重复项查询查找重复项查询 可以创建选择查询,用于可以创建选择查询,用于确定表中是否有重复的记录。确定表中是否有重复的记录。(4)(4)查找不匹配项查询查找不匹配项查询 使用使用“查找不匹
6、配项查查找不匹配项查询向导询向导”,可以创建选择查询,以找出在主表,可以创建选择查询,以找出在主表存在、在相应子表中不存在相关记录的主表中存在、在相应子表中不存在相关记录的主表中的记录。的记录。4.2.2 4.2.2 使用查询设计器使用查询设计器10查询设计器的查询设计器的启动有启动有2 2种方法种方法 通过通过“设计视图设计视图”建立一个新查询建立一个新查询 打开现有的查询对打开现有的查询对象象表表/查询查询显示区显示区设计网格设计网格选择好查询字段后运行即可选择好查询字段后运行即可4.2.3 4.2.3 排序查询排序查询114.2.4 4.2.4 设置查询条件设置查询条件121.1.查询查
7、询“条件条件”栏栏 在查询中,写在在查询中,写在“条件条件”栏同一行的栏同一行的条件之间是条件之间是“与与”的的逻辑关系,写在逻辑关系,写在“条条件件”栏不同行的条件栏不同行的条件之间是之间是“或或”的逻辑的逻辑关系关系4.2.4 4.2.4 设置查询条件设置查询条件142.2.表达式表达式 表达式是运算符、常数、函数和字段名称、表达式是运算符、常数、函数和字段名称、控件和属性的任意组合,其计算结果为单个值。控件和属性的任意组合,其计算结果为单个值。4.2.4 4.2.4 设置查询条件设置查询条件153.3.运算符运算符 运算符是一个标记或符号,它指定表达式运算符是一个标记或符号,它指定表达式
8、内执行的计算的类型。内执行的计算的类型。(1)(1)数学运算符数学运算符 主要包括加(主要包括加(+)、减()、减(-)、)、乘(乘(*)、除()、除(/)。)。(2)(2)比较运算符比较运算符 主要包括等于(主要包括等于(=)、大于)、大于()、大于等于()、大于等于(=)、小于()、小于()、大于等)、大于等于(于(=)和不等于()和不等于()。)。4.2.4 4.2.4 设置查询条件设置查询条件163.3.运算符运算符(3)(3)逻辑运算符逻辑运算符 主要包括非(主要包括非(NotNot)、与)、与(AndAnd)、或()、或(OrOr)。)。(4)(4)引用运算符引用运算符&表示将引用
9、符号两边的值连接表示将引用符号两边的值连接起来,形成一个运算结果。如起来,形成一个运算结果。如“”“”12”&”ab”12”&”ab”,结果为,结果为“”“”12ab”12ab”。4.2.4 4.2.4 设置查询条件设置查询条件174.4.其他常用符号其他常用符号常用到的条件符号还有以下常用到的条件符号还有以下3 3种:种:(1)Between A and B 用于指定用于指定A到到B之间范围。之间范围。A和和B可可以是数字型、日期型和文本型数据,而且以是数字型、日期型和文本型数据,而且A和和B的类型的类型相同。如要查找相同。如要查找1986年出生的学生,可在年出生的学生,可在“出生日期出生日
10、期”字段设定查询条件为:字段设定查询条件为:Between#1986-1-1#and#1986-12-31#。其中,。其中,“#”是日期常量的定界符。是日期常量的定界符。4.2.4 4.2.4 设置查询条件设置查询条件184.4.其他常用符号其他常用符号(2)in 指定一系列满足条件的值。如要查找计算机专业、指定一系列满足条件的值。如要查找计算机专业、中文专业和英语专业的学生,可在中文专业和英语专业的学生,可在“专业名称专业名称”字段设字段设定查询条件为:定查询条件为:in(计算机计算机,中文中文,英语英语)。注意表达式中。注意表达式中的分隔符(如的分隔符(如“-”,“,”等),应该是英文半角
11、符号。等),应该是英文半角符号。(3)like 指定某类字符串,需要与通配符配合使用。通配指定某类字符串,需要与通配符配合使用。通配符符“?”表示任何单一字符,表示任何单一字符,“*”表示零个或多个字符,表示零个或多个字符,“#”表示任何一个数字。表示任何一个数字。4.2.4 4.2.4 设置查询条件设置查询条件195.5.常量常量(1)(1)数字型常量数字型常量 直接键入数字,直接键入数字,AccessAccess默认其默认其为数字型常量。为数字型常量。(2)(2)文本型常量文本型常量 在能接受任意类型的编辑框中,在能接受任意类型的编辑框中,加了文本常量定界符加了文本常量定界符(“”)(“”
12、)的输入值,如的输入值,如“计计算机算机”,被视为常量。,被视为常量。4.2.4 4.2.4 设置查询条件设置查询条件205.5.常量常量(3)(3)日期型常量日期型常量 在数字表达式的两边加了日期在数字表达式的两边加了日期常量定界符常量定界符(#)(#)(如如#1970-1-1#)#1970-1-1#)或或ANSI-92 ANSI-92 中中的单引号的单引号()()被视为日期型常量。被视为日期型常量。(4)(4)是是/否型常量否型常量 TrueTrue、FalseFalse、YesYes、NoNo等,等,当其不被定义为文本型常量时,当其不被定义为文本型常量时,AccessAccess默认其默
13、认其为是为是/否型常量。否型常量。2.2.查询条件的设置方法查询条件的设置方法(1 1)单个常量条件查询)单个常量条件查询:若在若在“设计视图设计视图”中某个字段名下面对应的中某个字段名下面对应的“条件条件”行上输入一个常量,则表示只查询包含该常量的记录集。行上输入一个常量,则表示只查询包含该常量的记录集。(2 2)多个常量条件查询)多个常量条件查询:当查询条件多于一个时,当查询条件多于一个时,AccessAccess使用逻辑运算符使用逻辑运算符AndAnd或或OrOr对多个条件进行组合。分两种情况:对多个条件进行组合。分两种情况:多个常量条件分别属于多个字段(不在同一列上)多个常量条件分别属
14、于多个字段(不在同一列上)逻辑与运算逻辑与运算 多个常量条件属于同一个字段多个常量条件属于同一个字段 逻辑或运算逻辑或运算(3 3)使用通配符设置查询条件)使用通配符设置查询条件:可以在查询条件中使用通配符进行设计。最常用的是可以在查询条件中使用通配符进行设计。最常用的是“*”和和“?”?”。(4 4)使用)使用BetweenandBetweenand与与InIn运算符设置查询条件运算符设置查询条件 BetweenandBetweenand常用于指定记录的一个连续数据范围。常用于指定记录的一个连续数据范围。InIn运算符通常用于为查询的记录指定一个值域的范围。运算符通常用于为查询的记录指定一个
15、值域的范围。InIn运算符可以看作是逻辑运算符可以看作是逻辑或运算(或运算(oror)的简单描述。)的简单描述。4.2.5 4.2.5 汇总查询汇总查询23分组字段4.2.5 汇总查询选择选择查找查找使用下列字段数据类型使用下列字段数据类型Sum字段值的总和。字段值的总和。数字、日期数字、日期/时间、货币和自动编号时间、货币和自动编号Avg字段的平均值。字段的平均值。数字、日期数字、日期/时间、货币和自动编号时间、货币和自动编号Min字段的最小值。字段的最小值。文本、数字、日期文本、数字、日期/时间、货币和自时间、货币和自动编号动编号Max字段的最大值。字段的最大值。文本、数字、日期文本、数字
16、、日期/时间、货币和自时间、货币和自动编号动编号Count字段值的个数,不包括字段值的个数,不包括Null(空)值。(空)值。文本、备注、数字、日期文本、备注、数字、日期/时间、货时间、货币、自动编号、是币、自动编号、是/否和否和 OLE 对对象象StDev字段的标准偏差值。字段的标准偏差值。数字、日期数字、日期/时间、货币和自动编号时间、货币和自动编号Var字段的方差值。字段的方差值。数字、日期数字、日期/时间、货币和自动编号时间、货币和自动编号24寻找两个表中不一致的记录 例如名字打错了 适用于检查大量的数据在在AccessAccess中,查询对象主要有五种类型中,查询对象主要有五种类型2
17、6(3)(3)参数查询参数查询 参数查询可以在运行时提示用户输入参数参数查询可以在运行时提示用户输入参数信息,并根据该信息执行相关的查询工作,如信息,并根据该信息执行相关的查询工作,如设定条件、将查询控制在一定的范围内等。设定条件、将查询控制在一定的范围内等。实际上,这是实际上,这是一种特殊的选择查询一种特殊的选择查询,将选择将选择查询中的字段条件设为带有查询中的字段条件设为带有“参数参数”的条件。的条件。参数查询参数查询27 执行时,显示自己的参数对话框以提示用户输执行时,显示自己的参数对话框以提示用户输入查询条件中的参数值,并根据条件检索要显入查询条件中的参数值,并根据条件检索要显示的记录
18、。示的记录。参数查询设计28交叉表查询交叉表查询 使用交叉表查询可以计算并重新组织使用交叉表查询可以计算并重新组织一个表或查一个表或查询询中数据的结构,这样可以更加方便地分析数据。中数据的结构,这样可以更加方便地分析数据。实现数据重构的基础是分组实现数据重构的基础是分组l例:对籍贯来说,不同省的学生就组成一个分组例:对籍贯来说,不同省的学生就组成一个分组两种创建途径两种创建途径l交叉表查询向导交叉表查询向导l设计视图设计视图实例演示实例演示l将学生情况表按籍贯分省显示将学生情况表按籍贯分省显示在在AccessAccess中,查询对象主要有五种类型中,查询对象主要有五种类型30(4)(4)动作查
19、询动作查询 使用动作查询(也叫操作查询)可以通过使用动作查询(也叫操作查询)可以通过查询的运行查询的运行对数据源中的数据进行改动或生成对数据源中的数据进行改动或生成新表新表,通常这样可以大批量地更改和移动数据。,通常这样可以大批量地更改和移动数据。操作查询主要有四种:删除查询、更新查询、操作查询主要有四种:删除查询、更新查询、追加查询、生成表查询、新字段查询。追加查询、生成表查询、新字段查询。生成表查询生成表查询生成表查询生成表查询32 生成表查询可以从一个或多个表的数据中生成表查询可以从一个或多个表的数据中产生新的数据表,生成的表可以作为数据备份,产生新的数据表,生成的表可以作为数据备份,也
20、可作为新的数据集。也可作为新的数据集。“生成表生成表”对话框对话框“或或”条条件设置件设置追加查询追加查询33 追加查询可以将一个或多个表中的一组记追加查询可以将一个或多个表中的一组记录添加到另一个或多个表的末尾。对追加的表录添加到另一个或多个表的末尾。对追加的表建立查询。建立查询。“追加”对话框建立一个空的建立一个空的“学生情况备份表学生情况备份表”l只复制结构只复制结构在查询的设计视图中,选择追加查询类型在查询的设计视图中,选择追加查询类型执行此查询,则所有数据追加到:执行此查询,则所有数据追加到:“学生情况备份表学生情况备份表”更新查询更新查询35 更新查询可以对一个或多个表中的一组记更
21、新查询可以对一个或多个表中的一组记录做批量的更改,它比通过键盘逐一修改表记录做批量的更改,它比通过键盘逐一修改表记录更加准确、快捷,但需要被修改的数据有规录更加准确、快捷,但需要被修改的数据有规律。律。删除查询删除查询37 删除查询可以对一个或多个表中的一组记删除查询可以对一个或多个表中的一组记录做批量的删除,如从学生表中删除所有已经录做批量的删除,如从学生表中删除所有已经毕业的学生。这种删除操作一旦执行,删除掉毕业的学生。这种删除操作一旦执行,删除掉的数据将无法恢复,所以应慎用。的数据将无法恢复,所以应慎用。新字段查询新字段查询给查询增加新的字段。给查询增加新的字段。设计计算字段设计计算字段
22、38新字段名4.6.1 SQL4.6.1 SQL语言简介语言简介 4.6.2 4.6.2 创建创建SQLSQL查询查询 4.6.3 SQL4.6.3 SQL视图视图 SQLSQL查询是使用查询是使用SQLSQL语句创建的查询。语句创建的查询。SQLSQL是是Structured Query LanguageStructured Query Language的缩写,即的缩写,即结构化结构化查询语言查询语言。它既可以用于大型数据库管理系统,。它既可以用于大型数据库管理系统,也可以用于微型机数据库管理系统,是关系数据也可以用于微型机数据库管理系统,是关系数据库的标准语言。库的标准语言。SQLSQL语
23、言功能极强,但由于设计巧妙,语言十分简洁。语言功能极强,但由于设计巧妙,语言十分简洁。利用利用SQLSQL语言,可以独立完成整个数据库生命周期中的全部操作语言,可以独立完成整个数据库生命周期中的全部操作在在AccessAccess中所有通过设计网格设计出的查询,系统在后台都自动生成了中所有通过设计网格设计出的查询,系统在后台都自动生成了相应的相应的SQLSQL查询语句,但不是所有的查询语句,但不是所有的SQLSQL查询语句都可以在设计网格中查询语句都可以在设计网格中显示出来。显示出来。在在SQLSQL语言中,语言中,SELECTSELECT语句构成了该查询语言的核心部分,使用语句构成了该查询语
24、言的核心部分,使用SELECTSELECT语句可以从数据库中选择数据来源。语句可以从数据库中选择数据来源。SELECTSELECT语句的一般语法结语句的一般语法结构如下:构如下:SELECT SELECT FROM FROM WHERE WHERE GROUP BY GROUP BY HAVING HAVING ORDER BY ORDER BY INTO INTO 其中其中“”中的内容为可选项。中的内容为可选项。创建创建SQLSQL查询的操作步骤如下:查询的操作步骤如下:(1 1)数据库的)数据库的“查询查询”对象窗口中,双击对象窗口中,双击“在设计视在设计视图中创建查询图中创建查询”图标,
25、并关闭弹出的图标,并关闭弹出的“显示表显示表”对话框,对话框,进入到查询进入到查询“设计视图设计视图”窗口。窗口。(2 2)右击查询设计视图上半部分的空白区,在打开)右击查询设计视图上半部分的空白区,在打开的快捷菜单中选择的快捷菜单中选择“SQLSQL特定查询特定查询”下的下的“联合联合”选项,选项,系统自动打开系统自动打开SQLSQL语句编辑窗口。语句编辑窗口。(3 3)输入相应的)输入相应的SQLSQL语句后,保存该查询即可。语句后,保存该查询即可。AccessAccess的查询方式的查询方式选择查询选择查询参数查询参数查询交叉表查询交叉表查询动作查询动作查询SQLSQL查询查询可以按照不
26、同方式查看、更改和分析表中的数据可以按照不同方式查看、更改和分析表中的数据查询结果可以作为其他数据库对象(如窗体、报查询结果可以作为其他数据库对象(如窗体、报表和数据访问页等)的来源。表和数据访问页等)的来源。42在在Access Access 中,创建查询可以使用向导或设计视图,但维中,创建查询可以使用向导或设计视图,但维护查询一般在查询的设计视图中完成。护查询一般在查询的设计视图中完成。任何一个查询都可在设计视图中完成任何一个查询都可在设计视图中完成选择查询可实现从一个或多个表中检索相应的数据,但一选择查询可实现从一个或多个表中检索相应的数据,但一个查询只能检索出特定的记录,个查询只能检索
27、出特定的记录,例如,只能按特定的专业检索相应的学生,不够灵活。例如,只能按特定的专业检索相应的学生,不够灵活。参数查询可通过设置参数,实现一个查询根据使用者的输参数查询可通过设置参数,实现一个查询根据使用者的输入值而检索出不同的数据集,入值而检索出不同的数据集,如可将专业设置为参数,从而实现一个查询可检索出不同专业的学如可将专业设置为参数,从而实现一个查询可检索出不同专业的学生信息。生信息。选择查询、参数查询,以及交叉表查询,不能改变数据源选择查询、参数查询,以及交叉表查询,不能改变数据源的数据,更不能生成新的数据表的数据,更不能生成新的数据表动作查询动作查询可以实现更改、删除记录和生成新表等功能。可以实现更改、删除记录和生成新表等功能。