ACCESS2010数据库应用教程第4章查询Access2010数据库应用教程知识要点查询的概念和类型查询条件选择查询的创建参数查询的创建交叉表查询的创建操作查询的创建SQL基础知识与SQL语句Access2010数据库应用教程重点与难点重点:查询条件选择查询参数查询交叉表查询操作查询SQL查询难点:运算符、函数和表达式选择查询交叉表查询SQL查询Access2010数据库应用教程4.1查询概述查询是Access2010数据库的主要对象,是Access2010数据库的核心操作之一。查询主要有以下几个方面的功能:(1)选择字段:选择表中的部分字段生成所需的表或多个数据集。(2)选择记录:根据指定的条件查找所需的记录,并显示查找的记录。(3)编辑记录:添加记录,修改记录和删除记录。(更新查询,删除查询)(4)实现计算:查询满足条件的记录,还可以在建立查询过程中进行各种计算。(计算平均成绩,年龄等)(5)建立新表:操作查询中的生成表查询可以建立新表。(6)为窗体和报表提供数据:可以作为建立报表和查询的数据源。Access2010数据库应用教程4.1.1查询的类型根据对数据源的操作方式及查询结果的不同,Access2010提供的查询可以分为5种类型,分别是选择查询、交叉表查询、参数查询、操作查询、SQL查询。Access2010数据库应用教程4.1.2创建查询的方法在Access2010中,创建查询的方法主要有以下两种:1.使用查询设计视图创建查询使用查询设计视图创建查询首先要打开查询设计视图窗口,然后根据需要进行查询定义。操作步骤如下:(1)打开数据库;(2)选择“新建”选项卡的“查询”组,单击“查询设计”按钮,打开“查询设计器”窗口,如图所示。Access2010数据库应用教程查询设计器窗口由两部分组成,上半部分是数据源窗口,用于显示查询所涉及的数据源,可以是数据表或查询,下半部分是查询定义窗口,也称为QBE网格,主要包括以下内容:①字段:查询结果中所显示的字段。②表:查询的数据源,即查询结果中字段的来源。③排序:查询结果中相应字段的排序方式。④显示:当相应字段的复选框被选中时,则在结构中显示,否则不显示。⑤条件:即查询条件,同一行中的多个准则之间是逻辑“与”的关系。⑥或:查询条件,表示多个条件之间的“或”的关系。1.使用查询设计视图创建查询Access2010数据库应用教程(3)在打开查询设计视图窗口的同时弹出“显示表”对话框,如图所示;1.使用查询设计视图创建查询Access2010数据库应用教程(4)在“显示表”对话框中,选择作为数据源的表或查询,将其添加到查询设计器窗口的数据源窗格中。在查询设计器窗口的查询定义窗口中,通过“字段”列表框选择所需字段,选中的字段将显示在查询定义窗口中;(5)在查询设计器窗口的查询定义窗口中,打开“排序”列表框,可以指定查询的排序关键字和排序方式;排序方式分为升序、降序和不排序三种。(6)使用“显示”复选框可以设置某个字段是否在查询结果中显示,若复选框被选中,则显示该字段,否则不显示;(7)在“条件”文本框中输入查询条件,或者利用表达式生成器输入查询条件;(8)保存查询,创建查询完成。1.使用查询设计视图创建查询Access2010数据库应用教程4.1.2创建查询的方法2.使用查询向导创建查询操作步骤如下:(1)打开数据库;(2)选择“创建”选项卡的“查询”组,单击“查询向导”按钮,打开“新建查询”对话框;(3)在“新建查询”对话框中,选择需要的查询向导,根据系统引导选择参数或者输入信息;(4)保存查询。Access2010数据库应用教程4.2查询条件的设置在实际应用中,经常查询满足某个条件的记录,这需要在查询时进行查询条件的设置。通过在查询设计视图中设置条件可以实现条件查询,而查询条件是通过输入表达式来表示的。表达式是由操作数和运算符构成的可计算的式子。其中操作数可以是常量、变量、函数、甚至可以是另一个表达式(子表达式);运算符是表示进行某种运算的符号,包括算术运算符、关系运算符、逻辑运算符、连接运算符、特殊运算符和对象运算符等,表达式具有唯一的运算结果。下面对表达式的各个组成部分进行介绍。Access2010数据库应用教程4.2查询条件的设置1.常量常量代表不会发生更改的值。按其类型的不同有不同的表示方法,如表所示。类型表示方法示例数字型直接输入数据123,-4,56.7日期时间型以“#”为定界符#2013-9-18#文本型以西文半角的单引号或双引号作为定界符“HelloWord”是/否型用系统定义的符号表示True,False,或Yes,No,或On,Off,或-1,0Access2010数据库应用教程4.2查询条件的设置2.变量变量是指在运算过程中其值允许变化的量。在查询的条件表达式中使用变量就是通过字段名对字段变量进行引用,一般需要使用[字段名]的格式,如[姓名]。如果需要指明该字段所属的数据源,则要写成[数据表名]![字段名]的格式。其他类型变量及其引用参见VBA编程部分的内容。Access2010数据库应用教程4.2查询条件的设置3.函数函数是用来实现某指定的运算或操作的一个特殊程序。一个函数可以接收输入参数(并不是所有函数都有输入参数),且返回一个特定类型的值。函数一般都用于表达式中,其使用格式为:函数名([实际参数列表])。当函数的参数超过一个时,各参数间用西文半角“,”隔开。函数分为系统内置函数和用户自定义函数。Access2010提供了上千个标准函数,可分为数学函数、字符串处理函数、日期/时间函数、聚合函数等,其中聚合函数可直接用于查询中。具体函数内容详见教材。Access2010数据库应用教程4.2查询条件的设置4.运算符运算符是表示进行某种运算的符号,包括算术运算符、关系运算符、逻辑运算符、连接运算符和特殊运算符等。(1)算术运算符算术运算符包括加(+)、减(-)、乘(*)、除(/)、乘方(^)、整除(\)、取余(Mod)等,主要用于数值计算。例如表达式4^4的运算结果为16;表达式9/2的运算结果为4.5;表达式9\2的运算结果为4;表达式9Mod2的运算结果为1。Access2010数据库应用教程4.2查询条件的设置(2)关系运算符关系运算符由=、、=、、=、等符号构成,主要用于数据之间的比较,其运算结果为逻辑值,即“真”和“假”。如表所示。关系运算符含义关系运算符含义关系运算符含义大于=大于等于小于=小于等于=等于不等于Access2010数据库应用教程4.2查询条件的设置(3)逻辑运算符逻辑运算符由And、Or、Not、Xor、Eqv等符号构成,具体含义如表所示。逻辑运算符作用Not逻辑非And当And前后的两个表达式均为真时,整个表达式的值为真,否则为假Or当Or前后的两个表达式均为假时,整个表达式的值为假,否则为真Xor当Xor前后的两个表达式均为假或均为真时,整个表达式的值为假,否则为真Eqv当Eqv前后的两个表达式均为假或均为真时,整个表达式的值为真,否则为假Access2010数据库应用教程4.2查询条件的设置(4)连接运算符连接运算符包括“&”和“+”。“&”:字符串连接。例如:表达式Access&2010,运算结果为Access2010“+”:当前后两个表达式都是字符串时与“&”作用相同;当前后两个表达式有一个或者两个都是数值表达式时,则进行加法算术运算。例如:表达式Access+2010,运算结果为Access2010。表达式Access+2010,运算结果为提示“类型不匹配”。表达式1+2013,运算结果为2014。Access2010数据库应用教程4.2查询条件的设置(5)特殊运算符Access提供了一些特殊运算符用于对记录进行过滤,常用的特殊运算符如表所示。特殊运算符含义In指定值属于列表中所列出的值Between…And…指定值的范围在…到…之间Is与Null一起使用确定字段值是否为空值Like用通配符查找文本型字段是否与其匹配。通配符“?”匹配任意单个字符;“*”匹配任意多个字符;“#”匹配任意单个数字;“!”不匹配指定的字符;[字符列表]匹配任何在列表中的单个字符Access2010数据库应用教程4.3选择查询选择查询是最常见的一类查询,很多数据库查询功能均可以用它来实现。所谓“选择查询”就是从一个或多个有关系的表中将满足要求的数据选择出来,并把这些数据显示在新的查询数据表中。而其他的方法,如“交叉表查询”、“参数查询”和“操作查询”等,都是“选择查询”的扩展。使用选择查询可以从一个或多个表或查询中检索数据,可以对记录进行分组,并进行求总计、计数、平均值等运算。选择查询产生的结果是一个动态记录集,不会改变源数据表中的数据。Access2010数据库应用教程4.3.1使用向导创建借助“简单查询向导”可以从一个表、多个表或已有查询中选择要显示的字段,也可对数值型字段的值进行简单汇总计算。如果查询中的字段来自多个表,这些表之间应已经建立了关系。简单查询的功能有限,不能指定查询条件或查询的排序方式。但它是学习建立查询的基本方法,因此,使用“简单查询向导”创建查询,用户可以在向导的指示下选择表和表中的字段,快速准确地建立查询。Access2010数据库应用教程4.3.1使用向导创建1.建立单表查询【例4.1】查询学生的基本信息,并显示学生的姓名、性别、出生日期等信息。具体操作步骤详见教师演示。Access2010数据库应用教程4.3.1使用向导创建2.建立多表查询有时,用户所需查询的信息来自两个或两个以上的表或查询,因此,需要建立多表查询。建立多表查询必须有相关联的字段,并且事先应通过这些相关联的字段建立起表之间的关系。【例4.2】查询学生的课程成绩,显示的内容包括:学号、姓名、课程编号、课程名称、和分数。具体操作步骤详见教师演示。Access2010数据库应用教程4.3.1使用向导创建3.查找重复项查询向导“查找重复项查询向导”可以快速找到表中的重复字段值的记录。【例4.3】在“学生”表中查询姓名重名的学生的所有信息。操作步骤如下:(1)打开“学生管理”数据库,并在数据库窗口中选择“创建”选项卡中的“查询”选项组;(2)单击“查询”选项组中的“查询向导”选项,弹出“新建查询”对话框,在“新建查询”对话框中选择“查找重复项查询向导”选项,然后单击“确定”按钮,打开“查找重复项查询向导”对话框,如图所示;Access2010数据库应用教程4.3.1使用向导创建(3)在弹出的“查找重复项查询向导”对话框中选择“学生表”,单击“下一步”按钮;Access2010数据库应用教程4.3.1使用向导创建(4)在弹出的对话框中选择“姓名”为重复字段,如图所示,单击“下一步”按钮;Access2010数据库应用教程4.3.1使用向导创建(5)选择其它要显示的字段,这里选择对话框的“可用字段”列中的所有字段移动到“另外的查询字段”列中,如图所示,单击“下一步”按钮;Access2010数据库应用教程4.3.1使用向导创建(6)在弹出的对话框的“请指定查询的名称”文本框中输入“重名学生信息查询”,如图所示。单击“完成”按钮,查看查询结果。Access2010数据库应用教程4.3.1使用向导创建4.查找不匹配项查询向导在Access中,可能需要对数据表中的记录进行检索,查看它们是否与其它记录相关,是否正真有实际意义。即用户可以利用“查找不匹配项查询向导”在两个表或查询中查找不匹配的记录。【例4.4】利用“查找不匹配项查询向导”创建查询,查找没有学生选修的课程信息。具体操作步骤如下:(1)打开“学生管理”数据库,并在数据库窗口中选择“创建”选项卡中的“查询”选项组;(2)单击“查询”选项组中的“查询向导”选项,弹出“新建查询”对话框,在“新建查询”对话框中选择“查找不匹配项查询向导”选项,然后单击“确定”按钮,打开“查找不匹配项查询向导”对话框;Access2010数据库应用教程4.3.1使用向导创建(3)在弹出的“查找不匹