ACCESS数据库应用技术任课教师:路纲E-mail:lg@snnu.edu.cn关系运算4.1查询类型4.2选择查询4.3参数查询4.4交叉表查询4.5动作查询4.6SQL查询2第4章查询关系数据库中的查询操作功能非常强大。尤其是用户可以快速实现从单个表或多个有关联的表中提取有用信息。这都基于关系模型中蕴含的关系数学理论基础——关系代数。关系代数是一种抽象的查询语言,用对关系的运算来表达查询,是研究关系数据语言的数学工具。关系代数的运算对象是关系,运算结果亦为关系。关系代数的运算可分为传统关系运算和专门关系运算两类。传统关系运算是二目运算,包括并、交、差、广义笛卡尔积四种运算。专门关系运算包括选择、投影和连接。图1.11专门关系运算中的选择、投影运算示例图图1.12专门关系运算中的连接运算(等值连接和自然连接)示例图何为查询?4•查询是以表为基础数据源的虚表,查询结果与数据源表中的数据保持同步•查询是表加工处理后的结果•查询是一个或多个表的相关信息组成的视图•查询可以作为其他数据库对象的数据源•查询是数据库的核心操作在Access中,查询对象主要有五种类型5(1)选择查询(2)交叉表查询(3)参数查询(4)动作查询(5)SQL查询4.1查询类型6(1)选择查询:最常用可从一个或多个表中检索数据,并且在可以更新记录(有一些限制条件)的数据表中显示结果。可以使用选择查询来对记录进行分组,并且对记录做总计、计数、平均值以及其他类型的累计计算。4.1查询类型4.2.1使用向导创建查询7简单选择查询向导建立的查询4.2选择查询四种查询向导8在Access中利用新建查询的向导方法可以创建简单查询、交叉表查询、查找重复项查询和查找不匹配项查询。(1)简单查询用于从一个或多个(相关)表或查询中,按指定的字段检索数据。(2)交叉表查询使用交叉表查询可以计算并重新组织数据的结构4.2选择查询四种查询向导9(3)查找重复项查询可以创建选择查询,用于确定表中是否有重复的记录。(4)查找不匹配项查询使用“查找不匹配项查询向导”,可以创建选择查询,以找出在主表存在、在相应子表中不存在相关记录的主表中的记录。4.2选择查询4.2.2使用查询设计器10查询设计器的启动有2种方法•通过“设计视图”建立一个新查询•打开现有的查询对象表/查询显示区设计网格选择好查询字段后运行即可4.2选择查询4.2.3排序查询114.2选择查询4.2.4设置查询条件121.查询“条件”栏在查询中,写在“条件”栏同一行的条件之间是“与”的逻辑关系,写在“条件”栏不同行的条件之间是“或”的逻辑关系4.2选择查询4.2.4设置查询条件142.表达式表达式是运算符、常数、函数和字段名称、控件和属性的任意组合,其计算结果为单个值。4.2.4设置查询条件153.运算符运算符是一个标记或符号,它指定表达式内执行的计算的类型。(1)数学运算符主要包括加(+)、减(-)、乘(*)、除(/)。(2)比较运算符主要包括等于(=)、大于()、大于等于(=)、小于()、大于等于(=)和不等于()。4.2选择查询4.2.4设置查询条件163.运算符(3)逻辑运算符主要包括非(Not)、与(And)、或(Or)。(4)引用运算符&表示将引用符号两边的值连接起来,形成一个运算结果。如“”12”&”ab””,结果为“”12ab””。4.2选择查询4.2.4设置查询条件174.其他常用符号常用到的条件符号还有以下3种:(1)BetweenAandB用于指定A到B之间范围。A和B可以是数字型、日期型和文本型数据,而且A和B的类型相同。如要查找1986年出生的学生,可在“出生日期”字段设定查询条件为:Between#1986-1-1#and#1986-12-31#。其中,“#”是日期常量的定界符。4.2选择查询4.2.4设置查询条件184.其他常用符号(2)in指定一系列满足条件的值。如要查找计算机专业、中文专业和英语专业的学生,可在“专业名称”字段设定查询条件为:in(计算机,中文,英语)。注意表达式中的分隔符(如“-”,“,”等),应该是英文半角符号。(3)like指定某类字符串,需要与通配符配合使用。通配符“?”表示任何单一字符,“*”表示零个或多个字符,“#”表示任何一个数字。4.2选择查询4.2.4设置查询条件195.常量(1)数字型常量直接键入数字,Access默认其为数字型常量。(2)文本型常量在能接受任意类型的编辑框中,加了文本常量定界符(“”)的输入值,如“计算机”,被视为常量。4.2选择查询4.2.4设置查询条件205.常量(3)日期型常量在数字表达式的两边加了日期常量定界符(#)(如#1970-1-1#)或ANSI-92中的单引号(‘)被视为日期型常量。(4)是/否型常量True、False、Yes、No等,当其不被定义为文本型常量时,Access默认其为是/否型常量。4.2选择查询2.查询条件的设置方法(1)单个常量条件查询:若在“设计视图”中某个字段名下面对应的“条件”行上输入一个常量,则表示只查询包含该常量的记录集。(2)多个常量条件查询:当查询条件多于一个时,Access使用逻辑运算符And或Or对多个条件进行组合。分两种情况:①多个常量条件分别属于多个字段(不在同一列上)——逻辑与运算②多个常量条件属于同一个字段——逻辑或运算(3)使用通配符设置查询条件:可以在查询条件中使用通配符进行设计。最常用的是“*”和“?”。(4)使用Between…and与In运算符设置查询条件Between…and常用于指定记录的一个连续数据范围。In运算符通常用于为查询的记录指定一个值域的范围。In运算符可以看作是逻辑或运算(or)的简单描述。在查询“学生成绩详细浏览”的“设计视图”中输入筛选条件在查询“学生成绩详细浏览”中筛选学号为“06040240110”的查询输出结果在查询“学生成绩详细浏览”的“设计视图”中输入筛选条件在查询“学生成绩详细浏览”中筛选专业代码为“1101”、课程代码为“1102003”的查询输出结果在查询“学生成绩详细浏览”的“设计视图”中输入筛选条件在查询“学生成绩详细浏览”中筛选专业代码为“1001”、“1101”、“1201”的查询输出结果在查询“学生成绩详细浏览”的“设计视图”中输入筛选条件在查询“学生成绩详细浏览”中筛选姓张、并且课程名称均以“大学”开头的查询输出结果在查询“学生成绩详细浏览”的“设计视图”中输入筛选条件学过微观经济学、宏观经济学、销售管理和国际贸易法,并且成绩介于70到80之间的查询结果4.2.5汇总查询23分组字段4.2选择查询4.2.5汇总查询选择查找使用下列字段数据类型Sum字段值的总和。数字、日期/时间、货币和自动编号Avg字段的平均值。数字、日期/时间、货币和自动编号Min字段的最小值。文本、数字、日期/时间、货币和自动编号Max字段的最大值。文本、数字、日期/时间、货币和自动编号Count字段值的个数,不包括Null(空)值。文本、备注、数字、日期/时间、货币、自动编号、是/否和OLE对象StDev字段的标准偏差值。数字、日期/时间、货币和自动编号Var字段的方差值。数字、日期/时间、货币和自动编号244.2选择查询寻找两个表中不一致的记录◦例如名字打错了◦适用于检查大量的数据在Access中,查询对象主要有五种类型26(3)参数查询参数查询可以在运行时提示用户输入参数信息,并根据该信息执行相关的查询工作,如设定条件、将查询控制在一定的范围内等。实际上,这是一种特殊的选择查询,将选择查询中的字段条件设为带有“参数”的条件。4.3参数查询参数查询27执行时,显示自己的参数对话框以提示用户输入查询条件中的参数值,并根据条件检索要显示的记录。参数查询设计4.4参数查询28交叉表查询使用交叉表查询可以计算并重新组织一个表或查询中数据的结构,这样可以更加方便地分析数据。4.4交叉表查询实现数据重构的基础是分组例:对籍贯来说,不同省的学生就组成一个分组两种创建途径交叉表查询向导设计视图实例演示将学生情况表按籍贯分省显示原始表交叉表向导2、选择表3、选择行标题4、选择值查询结果:将原表行中的内容自动转换成列标题,并将指定数据放到了行列的交叉点处用设计视图也能创建-交叉表查询用设计视图也能创建-交叉表查询在Access中,查询对象主要有五种类型30(4)动作查询使用动作查询(也叫操作查询)可以通过查询的运行对数据源中的数据进行改动或生成新表,通常这样可以大批量地更改和移动数据。操作查询主要有四种:删除查询、更新查询、追加查询、生成表查询、新字段查询。4.5动作查询生成表查询生成表查询32生成表查询可以从一个或多个表的数据中产生新的数据表,生成的表可以作为数据备份,也可作为新的数据集。“生成表”对话框“或”条件设置4.5动作查询追加查询33追加查询可以将一个或多个表中的一组记录添加到另一个或多个表的末尾。对追加的表建立查询。“追加”对话框4.5动作查询建立一个空的“学生情况备份表”只复制结构在查询的设计视图中,选择追加查询类型执行此查询,则所有数据追加到:“学生情况备份表”设计视图创建追加查询更新查询35更新查询可以对一个或多个表中的一组记录做批量的更改,它比通过键盘逐一修改表记录更加准确、快捷,但需要被修改的数据有规律。4.5动作查询删除查询37删除查询可以对一个或多个表中的一组记录做批量的删除,如从学生表中删除所有已经毕业的学生。这种删除操作一旦执行,删除掉的数据将无法恢复,所以应慎用。4.5动作查询新字段查询给查询增加新的字段。设计计算字段38新字段名4.5动作查询4.6.1SQL语言简介4.6.2创建SQL查询4.6.3SQL视图SQL查询是使用SQL语句创建的查询。SQL是StructuredQueryLanguage的缩写,即结构化查询语言。它既可以用于大型数据库管理系统,也可以用于微型机数据库管理系统,是关系数据库的标准语言。SQL语言功能极强,但由于设计巧妙,语言十分简洁。利用SQL语言,可以独立完成整个数据库生命周期中的全部操作在Access中所有通过设计网格设计出的查询,系统在后台都自动生成了相应的SQL查询语句,但不是所有的SQL查询语句都可以在设计网格中显示出来。在SQL语言中,SELECT语句构成了该查询语言的核心部分,使用SELECT语句可以从数据库中选择数据来源。SELECT语句的一般语法结构如下:SELECT字段列表FROM表名称[WHERE行选择条件][GROUPBY分组选择][HAVING组选择条件][ORDERBY排序条件][INTO查询去向]其中“[]”中的内容为可选项。创建SQL查询的操作步骤如下:(1)数据库的“查询”对象窗口中,双击“在设计视图中创建查询”图标,并关闭弹出的“显示表”对话框,进入到查询“设计视图”窗口。(2)右击查询设计视图上半部分的空白区,在打开的快捷菜单中选择“SQL特定查询”下的“联合”选项,系统自动打开SQL语句编辑窗口。(3)输入相应的SQL语句后,保存该查询即可。SQL查询例:寻找陕西籍学生Access的查询方式选择查询参数查询交叉表查询动作查询SQL查询可以按照不同方式查看、更改和分析表中的数据查询结果可以作为其他数据库对象(如窗体、报表和数据访问页等)的来源。42在Access中,创建查询可以使用向导或设计视图,但维护查询一般在查询的设计视图中完成。任何一个查询都可在设计视图中完成选择查询可实现从一个或多个表中检索相应的数据,但一个查询只能检索出特定的记录,例如,只能按特定的专业检索相应的学生,不够灵活。参数查询可通过设置参数,实现一个查询根据使用者的输入值而检索出不同的数据集,如可将专业设置为参数,从而实现一个查询可检索出不同专业的学生信息。选择查询、参数查