二级ACCESS培训讲义第3章查询二级ACCESS培训讲义2第3章查询本章要求熟悉查询的功能和类型熟练掌握运算符和函数的类型及使用熟练掌握使用设计视图及向导建立查询掌握总计查询及添加计算字段掌握创建交叉表查询掌握参数查询掌握追加查询、更新查询、生成表查询、删除查询掌握SQL查询学会编辑查询中的字段及对查询结果进行排序二级ACCESS培训讲义33.1查询概述一、查询的功能查询最主要的目的,是根据指定的条件,对表或者其他查询进行检索,筛选出符合条件的记录,构成一个新的数据集合,从而方便对数据库中的表进行查看和分析。主要有如下功能:(1)选择字段(2)选择记录(3)编辑记录(4)实现计算(5)建立新表(6)为窗体、报表或数据访问页提供数据查询的运行结果是一个数据集,也称为动态集。它很像一个表,但并不存储在数据库中。创建查询后,只保存查询的操作,只有在运行查询时,才会从查询数据源中抽取数据,并创建它;只要关闭查询,查询的动态集就会消失。二级ACCESS培训讲义4二、查询的类型Access提供了以下几种查询:选择查询、参数查询、操作查询、交叉表查询和SQL查询(1)选择查询通过指定条件,从一个或多个表中检索数据,并且在数据表中按照顺序显示数据,还可以对记录进行计数、求和、平均值及其他类型的计算。例如,查找”学生管理“数据库”学生“表中”专业“为”经济管理“的记录,可以通过在”设计视图中创建查询“建立该查询。二级ACCESS培训讲义5运行该查询的结果如下:二级ACCESS培训讲义6(2)交叉表查询使用交叉表查询能够以行列的格式分组和汇总数据,就像Excel的数据透视表一样。它将数据分组,一组列于数据表的左侧,另一组列在数据表的上部。(3)参数查询参数查询是在执行时显示对话框,要求用户输入查询信息,根据输入信息检索字段中的记录。(4)操作查询操作查询是指在一个操作中可以对一条或多条记录进行更改或移动的查询。包括:生成表查询、更新查询、追加查询和删除查询四种。二级ACCESS培训讲义7(5)SQL查询SQL查询是指用户利用SQL语句进行查询,SQL特定查询包括联合查询、传递查询、数据定义查询和子查询等。查询的要素:数据源查询内容条件二级ACCESS培训讲义8三、查询的条件查询条件:指对查询的记录作限制条件,利用条件限制查询的范围,条件表达式是由操作符、文字、标识符和函数等组合成的。1.运算符(1)算术操作符:加(+)、减(-)、乘(*)、除(/)和乘方(^)(2)关系操作符小于()、小于等于(=)、大于()、大于等于(=)、等于(=)和不等于()二级ACCESS培训讲义9(3)逻辑操作符AND(逻辑与)、OR(逻辑或)和NOT(逻辑非)(4)连接操作符“&”和“+”(5)标识操作符“!”(感叹号)和“.”(句号)(6)特殊操作符In、Like、IsNull、IsNotNull和Between特殊运算符说明In用于指定一个字段值的列表,表中任意值均可与查询的字段相匹配Like用于指定查找文本字段的字符模式IsNull用于指定某一字段为空IsNotNull用于指定某一字段为非空Between用于指定一个字段值的范围二级ACCESS培训讲义102.函数函数功能Abs(数值表达式)求表达式的绝对值Int(数值表达式)求运算结果的整数部分Sqr(数值表达式)计算数值表达式的平方根Log(数值表达式)计算数值表达式的自然对数Sgn(数值表达式)取数值表达式的符号值函数功能Date()取得当前的系统日期Year(date)取当前日期的年值Month(date)取当前日期的月值Hour(date)取当前时间的小时值Weekday(date)取当前日期的星期值Time()取得当前的系统时间Sec(date)取得当前时间的秒值数值函数日期时间函数二级ACCESS培训讲义11函数功能Sum(字符表达式)求和Avg(字符表达式)求平均值Count(字符表达式)统计记录个数Max(字符表达式)求最大值Min(字符表达式)求最小值函数功能Left(字符表达式,数值表达式)从左侧截取指定位数的字符串Len(字符表达式)求字符串的长度Space(数值表达式)生成指定数值的空格Right(字符表达式,数值表达式)从右侧截取指定位数的字符串Ltrim(字符表达式)去掉前导空格的字符串Rtrim(字符表达式)去掉尾部空格的字符串Trim(字符表达式)去掉首尾空格的字符串String(数值表达式,字符表达式)返回一个由字符表达式的首字符重复组成的指定长度为数值表达式值的字符串字符函数统计函数二级ACCESS培训讲义123.使用数值作为查询条件在创建查询时,经常会用数值作为查询条件。使用数值作为查询条件的示例如下:字段名条件功能成绩80查询成绩小于80分的记录成绩Between80And90查询成绩在80~90分之间的记录=80And=90二级ACCESS培训讲义134.使用文本值作为查询条件使用文本值作为查询条件示例如下:字段名条件功能职称“教授”查询职称为“教授”的记录“教授”Or“副教授”查询职称为“教授”或“副教授”的记录Right([职称],2)=“教授”InStr([职称],“教授”)=1OrInStr([职称],“教授”)=2姓名In(“李明”,”王朋”)查询姓名为“李明”或“王朋”的记录“李明”Or”王朋”Not“李明”查询姓名不为“李明”的记录Left([姓名],1)=“王”查询姓“王”的记录Like“王*”InStr([姓名],“王”)=1Len([姓名])=2查询姓名为两个字的记录课程名称Right([课程名称],2)=“概论”查询课程名称最后两个字为“概论”的记录学生编号Mid([学生编号],5,2)=“03”查询学生编号第5和第6个字符为03的记录InStr([学生编号],“03”)=5二级ACCESS培训讲义14在查找职称为“教授”的职工,查询条件可以表示为:=“教授”,为了输入方便,Access允许在条件中省略“=”,所以可以直接表示为:“教授”。输入时如果没有加双引号,Access会自动加上双引号。5.使用处理日期结果作为查询条件使用处理日期结果作为查询条件的示例如下:字段名条件功能工作时间Between#1992-01-01#And#1992-12-31#查询1992年参加工作的记录Year([工作时间])=1992Date()-20查询20天前参加工作的记录BetweenDate()AndDate()-20查询20天之内参加工作的记录出生日期Year([出生日期])=1980查询1980年出生的记录工作时间Year([工作时间])=1999AndMonth([工作时间])=4查询1999年4月参加工作的记录二级ACCESS培训讲义15注意:日期常量要用英文的“#”号括起来。6.使用字段的部分值作为查询条件使用字段的部分值作为查询条件的示例如下:注意:在条件中,字段名必须使用方括号括起来,而且数据类型与对应字段定义的类型相符合。字段名条件功能课程名称Like”计算机*”查询课程名称以”计算机“开头的记录Left([课程名称],3)=“计算机”InStr([课程名称],“计算机”)=1Like”*计算机*”查询课程名称中包含”计算机“的记录姓名Not”张*”查询不姓”张“的记录Left([姓名],1)“张”二级ACCESS培训讲义167.使用空值或空字符串作为查询条件空值是使用Null或空白来表示字段的值;空字符串是用双引号括起来的字符串,且双引号中间没有空格。使用空值或空字符串作为查询条件的示例如下:函数的应用实例P.81表3-13字段名条件功能姓名IsNull查询姓名为Null(空值)的记录IsNotNull查询姓名有值(不是空值)的记录联系电话“”查询没有联系电话的记录二级ACCESS培训讲义17设置查询条件时注意:日期型数据两边加“#”,字符型数据两边加半角双引号在条件中字段名必须用方括号括起来两个以上条件时,同行相与,异行相或条件中引用表名时,应用方括号括起来,与字段名之间用“!”。如[教师档案表]![姓名]二级ACCESS培训讲义183.2创建选择查询一、使用”查询向导“创建查询在数据库视图窗口中单击”对象“控制面板中的”查询“对象,切换到查询窗口界面,在右边的列表中双击”使用向导创建查询“选项,具体参见P.82~84使用向导不能创建带条件的查询二级ACCESS培训讲义19二、使用设计视图Access有5种查询视图,分别为:”设计“视图、数据表视图、SQL视图、数据透视表视图和数据透视图视图。在”设计“视图中,既可创建不带条件的查询,也可创建带条件的查询,还可对已建查询进行修改。查询”设计“视图窗口工具栏如下图所示:二级ACCESS培训讲义20使用”设计“视图创建查询的步骤:添加数据源—表或查询选择查询内容—字段填写查询条件(可选)设置排序(可选)例3-3使用”设计“视图创建查询”学生成绩查询“。P.85~87二级ACCESS培训讲义21条件举例例如:1992年参加工作,性别为“男”的教师二级ACCESS培训讲义22举例例如:高级职称的教师二级ACCESS培训讲义23举例例如:高级职称的“女”教师二级ACCESS培训讲义24举例例如:没有联系电话的教师二级ACCESS培训讲义25举例例如:姓“李”的学生二级ACCESS培训讲义26三、在查询中进行计算Access查询中,可以执行两种类型的计算:预定义计算和自定义计算预定义计算即”总计“计算,是系统提供的对查询中的记录组或全部记录进行的计算,包括总计、平均值、计数、最大值、最小值、标准偏差或方差等。单击工具栏上的”总计“按钮,可以在设计网格中显示”总计“行。”总计“行中有12个总计项,其名称及含义见表3-17(教材P.88)自定义计算可以用一个或多个字段的值进行数值、日期和文本计算。直接在设计网格中创建新的计算字段二级ACCESS培训讲义271.在查询中进行计算例3-4教材P.882.在查询中进行分组统计分组统计时,只需在”设计“视图中将用于分组字段的”总计“行设置成”分组“即可。3.添加计算字段计算字段:是指根据一个或者多个表中的一个或者多个字段,利用表达式建立的新字段。当用户需要统计的字段不在数据表中时,或用于计算的数据值源于多个字段时,就应该添加一个字段来显示需要统计的数据。例3-5教材P.89~91二级ACCESS培训讲义283.3创建交叉表查询交叉表查询:就是将源于某个数据表的字段进行分组,一组列在数据表左侧,另一组列于上部,然后在数据表行列交叉处显示表中某个字段的各类计算值。交叉表字段说明:行标题——位于数据表左侧第一列。它是指把与某一字段或记录相关的数据放入指定的一行中,以便进行概括;列标题——位于表的顶端。它是对某一列的字段或表进行统计,并把结果放入该列;列中值字段——它是用户选择在交叉表中显示的字段,用户需要为该字段指定一个总结类型,例如Sum、Avg、Min、Max函数等二级ACCESS培训讲义29二级ACCESS培训讲义30一、使用”交叉表查询向导”打开要建立查询的数据库文件,单击”对象“控制面板中的”查询“对象,并单击该窗口中的”新建“按钮,打开”新建查询“对话框。选择”交叉表查询向导“如果要建立包含多个表中字段的交叉查询,先要创建一个含有所需字段的查询,在此查询的基础上建立交叉查询。二级ACCESS培训讲义31二、使用”设计“视图例3-8教材P93二级ACCESS培训讲义323.4创建参数查询参数查询是通过对话框提示用户输入查询参数,然后检索数据库中符合用户要求的记录或值。分为单参数查询和多参数查询。一、单参数查询在字段中只指定一个参数,在执行查询时,用户只需要输入一个参数查询。二级ACCESS培训讲义33二、多参数查询就是在字段中指定多个参数,在执行查询时,用户需要输入多个参数。根据参数查询,可以设置输入数据的条件范围,根据不同的条件查询所需数据。二级AC