收藏 分享(赏)

第5章 数据查询.ppt

上传人:hyngb9260 文档编号:7883960 上传时间:2019-05-29 格式:PPT 页数:66 大小:739.50KB
下载 相关 举报
第5章  数据查询.ppt_第1页
第1页 / 共66页
第5章  数据查询.ppt_第2页
第2页 / 共66页
第5章  数据查询.ppt_第3页
第3页 / 共66页
第5章  数据查询.ppt_第4页
第4页 / 共66页
第5章  数据查询.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

1、计算机应用基础,武汉科技大学计算机学院,第5章 数据查询,查询是Access处理和分析数据的工具,它能够把多个表中的数据抽取出来,供使用者查看、更改和分析使用。,教学目标,掌握查询的概念; 掌握各种查询的建立和使用方法;,双语课堂 C,重点与难点:查询的建立、查询准则、使用查询,5.1 查询的基本概念,查询就是按给定的要求(包括条件、范围、方式等)从指定的数据源中查找,将符合条件的数据提取出来,形成一个新的数据集合,但这个数据集在数据库中实际上并不存在,只是在运行查询时,Access才会从查询源表的数据中抽取出来。 查询的数据源:一个表或多个相关联的表、其他查询 查询的结果:窗体、报表,另一个

2、查询的基础,5.1.1 查询的功能,提取数据 实现计算 数据更新 产生新的表 作为其他对象的数据源,查询结果,1提取数据,从一个或多个表中选择部分或全部字段 例如,从学生表的若干个字段中选取3个字段:学号、姓名、家庭住址,这是对列进行的操作。也可以从一个或多个表中将符合某个指定条件的记录选取出来,例如,从成绩表中提取期末成绩在90分以上的记录,这是对行进行的操作,这两种操作可以单独进行,也可以同时进行。 用来提供选择数据的表称为查询操作的数据源,作为查询数据源的也可以是已建立好的其他查询。选择记录的条件称为查询准则,也就是查询表达式,查询结果是一种临时表,又称为动态的记录集,通常不被保存,也就

3、是说,每次运行查询,系统都是按事先定义的查询准则从数据源中提取数据,这样既可以节约存储空间,又可以保持查询结果与数据源中数据的同步。,2实现计算,在建立查询时可以进行一系列的计算,例如统计每个班学生的人数、计算每个学生的平均分等,也可以定义新的字段来保存计算的结果。,3数据更新,在Access中,对数据表中的记录进行的更新操作也是查询的功能,主要包括添加记录、修改记录和删除记录。,4产生新的表,利用查询得到的结果可以建立一个新表。例如,将期末成绩在90分以上的记录找出来并存放在一个新表中。,5作为其他对象的数据源,查询的运行结果可以作为窗体、报表和数据访问页的数据源,也可以作为其他查询的数据源

4、。,Access的查询不仅仅是从数据源中提取数据,有的查询操作还包含了对原来数据表的编辑和维护。,5.1.2 查询的类型,选择查询 交叉表查询 参数查询 操作查询 SQL查询,生成表查询 删除查询 更新查询 追加查询,1选择查询,(1)按指定的条件,从数据源中提取数据 (2)产生新的字段保存计算的结果 (3)分组统计,2参数查询,参数查询也属于选择查询,与上面的选择查询不同的是,它的查询准则中的具体值(即参数值)是在查询运行时由用户输入的,而选择查询的查询准则中的参数值则是在查询的设计阶段事先指定的。,3交叉表查询,交叉表查询将来源于表或查询中的字段进行分组,一组列在数据表的左侧,一组列在数据

5、表的顶端,然后在数据表行与列的交叉处显示表中某个字段的统计值。可以说交叉表查询就是利用了表中的行和列来统计数据。,4操作查询,先按照条件查询结果,然后用查询的结果对数据表进行编辑操作。 (1)生成表查询 (2)删除查询 (3)更新查询 (4)追加查询,5SQL查询,SQL(Structured Query Laguage,结构化查询语言)查询就是使用SQL语句来创建的一种查询。 查询的实现 在数据库中建立查询对象 在VBA程序代码中使用结构化查询语言SQL,5.1.3 建立查询的方法,查询向导创建查询 使用设计视图创建查询 在SQL窗口中创建查询,1使用查询向导创建查询,利用查询向导创建的查询

6、只能从数据源中指定若干个字段进行输出,但不能通过设置条件来限制检索的记录。 例5.1 为学生表创建名为“入学成绩”的查询,查询结果中包括学号、姓名、性别、专业和入学成绩5个字段。,2使用设计视图建立查询,利用查询向导建立查询时,不能按指定条件选择记录,这时可以使用设计视图来建立。 例5.2 在学生表中查询入学成绩在550分(含550)以上的记录,查询结果中包括的字段与上例相同,查询名称为“入学成绩高于550”。,3在SQl_窗口中建立SQl_查询,在Access中,也可以在SQL窗口中直接输入SQL命令建立查询。对于上例,在“视图”按钮中选择“SQL视图”,可以在SQL视图中显示出下图的内容。

7、,1“查询”菜单 2视图方式 3工具栏按钮,5.1.4 创建查询使用的工具,5.1.5 运行查询,创建查询时 (1)单击工具栏上的“运行”按钮。 (2)单击工具栏上的视图按钮,将视图方式切换到“数据表视图”。 查询创建后 (1)在“数据库”窗口中,单击“查询”对象,然后双击要运行的查询。 (2)在“数据库”窗口中,单击“查询”对象,选择要运行的查询,然后单击“打开”按钮。,5.2 查询准则,查询建立的过程 (1) 选择数据源 (2) 指定查询类型 (3) 设置查询准则 (4) 为查询命名 查询准则是用运算符将常量、字段名(变量)、函数连接起来构成的表达式,即查询表达式,例如前面例子中的“=55

8、0”。,常量书写,数字常量,则直接书写,例如:3.1416。 文本型常量,要用半角的双引号“”将文本括起来,如“王中华”。 日期型常量,要用井号“#”将日期括起来,如#1988-10-01#。,字段名书写,通常要将字段名放在方括号中,如学号、姓名等,在输入时,如果不写方括号,系统会在条件中自动加上方括号,如果字段名中含有空格,则方括号是不能省的。 如果在一个查询中的数据源不止一个,还应该在字段名前标明字段所在的表或查询,表示格式是: 表名 ! 字段名 或 查询名 ! 字段名 例如,学生表中的姓名应该写成学生 ! 姓名,5.2.1 条件中使用的运算符,1算术运算符 包括加(+)、减(-)、乘(*

9、)、除()、整除()、乘方()、求余(mod)。 2关系运算符 等于(=)、不等于()、小于()、大于等于(=)。 3逻辑运算符 常用的逻辑运算符有3个:与(And)、或(Or)、非(Not)。 4其他的特殊运算符 (1) In (2) Between A and B (3) 与空值有关的运算符 :Is Null、Is NotNull (4) Like “?”、“*”、“#” 、“” (5) & 将两个字符串进行连接。,5.2.2 条件中使用的函数,数值函数 文本函数 日期时间函数,1数值函数,(1) 绝对值函数:Abs(数值表达式) 功能:返回数值表达式值的绝对值。 (2) 取整函数:Int

10、(数值表达式) 功能:返回数值表达式值的整数部分。 (3) 平方根函数:Sqr(数值表达式) 功能:返回数值表达式值的算术平方根。 (4) 符号函数:Sgn(数值表达式) 功能:返回数值表达式值的符号值,当表达式的值为正、负和零时,函数值分别为1、-1和0。,2文本函数,在本类函数中的参数n、n1、n2都是数字表达式,文本函数用于对字符串进行处理,在Access的字符串中,一个汉字也作为一个字符处理。 (1) 空格函数 格式:Space(n) 功能:返回由n个空格组成的字符串。 (2) 重复字符函数 格式:String(n,文本表达式) 功能:返回“文本表达式”的第1个字符组成的字符串,字符个

11、数是n个。,2文本函数,(3) 截取子串函数 格式:Left(文本表达式,n) Right(文本表达式,n) Mid(文本表达式,nl,n2 ) 功能:Left( )从文本表达式左边第1个字符开始截取n个字符。 Right( )从文本表达式右边第1个字符开始截取n个字符。 Mid( )从文本表达式左边第n1位置开始,截取连续n2个字符。说明: 文本表达式是Null时,返回Null值。 n为0时,返回一个空串。 n的值大于或等于文本表达式的字符个数时,返回文本表达式。 省略n2,则从n1位置开始截取以后的所有字符串。,Left(“计算机等级考试”,3) =“计算机” Right(“计算机等级考试

12、”,2) =“考试” Mid(“计算机等级考试”,4,2) =“等级”,2文本函数,(4) 字符串长度函数 格式:Len(文本表达式) 功能:返回文本表达式中字符的个数,即字符串的长度。 例如,函数Len(“计算机等级考试”)的结果是7。 表达式Len(姓名)=2表示查询姓名为两个字的记录。 (5) 删除前后空格函数 格式:Ltrim(文本表达式) Rtrim(文本表达式) Trim(文本表达式) 功能:Ltrim( )返回去掉文本表达式前导空格后的字符串;Rtrim( )返回去掉文本表达式尾部空格后的字符串;Trim( )返回去掉文本表达式前导和尾部空格后的字符串。,3日期时间函数,(1)

13、系统日期与时间函数 格式: Now( ) Date( ) Time( ) 功能: Now( )返回系统当前的日期时间,由操作系统控制。 Date( )返回系统当前的日期。 Time( )返回系统当前的时间。,3日期时间函数,(2) 求年份、月份、日和星期函数 格式: Year(日期表达式|日期时间表达式) Month(日期表达式|日期时间表达式) Day(日期表达式|日期时间表达式) Weekday(日期表达式|日期时间表达式) 功能: Year( )返回日期中的年份; Month( )返回日期中的月份; Day( )返回日期中的日; Weekday( )返回日期中的星期,从星期日到星期六的值

14、分别是17。,3日期时间函数,(3) 时、分和秒函数 格式: Hour(时间表达式|日期时间表达式) Minute(时间表达式|日期时间表达式) Second(时间表达式|日期时间表达式) 功能: Hour( )返回时间中的小时值; Minute( )返回时间中的分钟; Second( )返回时间中的秒。 使用日期函数可以构成比较复杂的表达式。,例如,为出生日期定义下面的条件: (1) Between #1988-01-01# and #1988-12-31# 表示查询1988年出生的记录。 (2) Year(出生日期)=1988 查询结果与上面是一样的。 (3) Year(出生日期)=198

15、8 and Month(出生日期)=10 表示查询1988年10月出生的记录。 (4) Date()-30 查询30天前出生的记录。,5.3 选择查询,自由地从一个或多个表或查询中抽取相关的字段和记录进行分析和处理。,5.3.1 组合条件查询,例5.3 在学生表中查询已通过四级的女生。,5.3.1 组合条件查询,例5.4 查询期中或期末成绩不及格的记录,要求显示学号、姓名、性别、期中和期末5个字段。本题的数据源是两个表,这两个表之间已经建立了一对多的关系,主表是学生表,从表是成绩表。,5.3.1 组合条件查询,例5.5 查询“计算机”课程期末考试不及格学生的学号和姓名。,例5.6 查询“专业”

16、是工商或者法学,选修了“体育”这门课程的学生。,5.3.1 组合条件查询,5.3.2 自定义计算查询,通常,查看学生成绩时,用户更关心学生每门课程的综合成绩。但由于综合成绩是由平时成绩、期中成绩和期末成绩折合而成的,根据数据库的设计原则,这类字段不宜作为原始数据保存,所以在数据表中没有存储学生的综合成绩。 为查看此类信息,需要在查询中重新定义字段。自定义计算就是在设计网格中创建新的计算字段。,5.3.2 自定义计算查询,例5.7 用成绩表创建查询,计算并显示每个人的综合成绩,综合成绩是平时成绩10%,期中成绩20%,期末成绩70%。,说明:“综合成绩”字段是虚拟字段,计算的结果并不保存在表中。

17、Access在每次运行查询时都将重新进行计算,以使计算结果永远都以数据库中最新的数据为准。,5.3.3 预定义计算查询,预定义计算用于对查询中的分组记录或全部记录进行“总计”计算,通过在设计视图窗口的“总计”行设置聚合函数来实现。Access中可以使用的聚合函数及其作用如下: 总计:计算某个字段的累加值。 平均值:计算某个字段的平均值。 计数:统计某个字段中非空值的个数。 最大值:计算某个字段中的最大值。 最小值:计算某个字段中的最小值。 标准差:计算某个字段的标准差。 方差:计算某个字段的方差。 分组:定义用来分组的字段。 第一条记录:求出在表或查询中第一条记录的字段值。 最后一条记录:求出

18、在表或查询中最后一条记录的字段值 表达式:创建表达式中包含统计函数的计算字段。 条件:指定分组满足的条件。,1对全部记录进行“总计”计算,例5.8 建立一查询,统计期中和期末考试的平均成绩。,2对分组记录进行“总计”计算,例5.9 建立一查询,统计每个专业的人数。,2对分组记录进行“总计”计算,例5.10 创建“计算机期末成绩统计”查询,实现对“计算机”课程期末成绩的最高分、最低分和平均分的统计。,2对分组记录进行“总计”计算,例5.11 建立一查询,统计每个学生所学课程的综合平均成绩。,5.3.4 排序查询结果,在前面的总成绩查询和综合平均成绩查询结果中,显示的默认顺序是学号。若用户需要查看

19、成绩排名,则需要在查询中设计排序规则。,5.3.4 排序查询结果,例5.12 修改“总成绩表”查询,实现按课程成绩排名。,5.3.4 排序查询结果,例5.13 从“总成绩表”查询中查找综合成绩最高的前3名。,5.4 参数查询,参数查询利用对话框,提示输入参数,并检索符合所输参数的记录。可以建立一个参数提示的单参数查询,也可以建立多个参数提示的多参数查询。,5.4.1 单参数查询,创建单参数查询,就是在字段中指定一个参数,在执行参数查询时,输入一个参数值。 例5.14 创建“期末成绩统计”查询,统计各门课程期末成绩的最高分、最低分和平均分。,5.4.2 多参数查询,例5.15 创建“学生成绩查询

20、”,每次运行时输入不同的学号和课程名称,可以查询该学号学生某门课程的综合成绩,查询结果中要求有学号、姓名、性别、课程名和综合成绩等字段。,5.5 交叉表查询,所谓交叉表查询,就是将来源于某个表中的字段进行分组,一组列在查询表的左则,一组列在查询表的上部,然后在查询表行与列的交叉处显示表中某个字段的各种计算值。,5.5.1 使用查询向导创建交叉表查询,例5.16 显示每个学生每门课程的期末成绩。,5.5.2 使用设计视图创建交叉表查询,例5.17 分别统计每个专业每门课程的平均综合成绩。,5.6 操作表查询,除了能从数据源中选择数据外,还可以改变表中的内容,例如增加数据、删除记录和更新数据等。

21、用户在进行操作查询之前,应该先对数据表进行备份。,5.6.1 生成表查询,生成表查询是将查询的结果保存到一个表中,这个表可以是一个新表,也可以是已存在的表,但如果将查询结果保存在已有的表中,则该表中原有的内容将被删除。,5.6.1 生成表查询,例5.18 创建生成表查询,将成绩表中平时、期中或期末成绩中有不及格的记录保存到新的表中,要求显示学号、姓名、平时、期中和期末5个字段。,5.6.2 删除查询,删除查询可以对一个或多个表中的一组记录做批量的删除。如果要从多个表中删除相关记录,必须同时满足以下条件: (1) 已经定义了表间的相互关系。 (2) 在“编辑关系”的对话框中已选中“实施参照完整性

22、”复选项。 (3) 在“编辑关系”的对话框中已选中“级联删除相关记录”复选项。,5.6.2 删除查询,例5.19 创建删除查询,删除“学生”表女生的记录。,5.6.3 更新查询,更新查询以对一个或多个表中的一组记录做批量的更改,它比通过键盘逐一修改表记录更加准确、快捷,但需要被修改的数据有规律。,例5.20 创建更新查询,将“计算机”课程期末成绩小于80分的增加5分。,5.6.3 更新查询,5.6.4 追加查询,追加查询是将一个或多个表中符合条件的记录添加到另一个表的末尾。可以使用追加查询从外部数据源中导入数据,然后将它们追加到现有表中,也可以从其他的Access数据库或同一数据库的其他表中导入数据。,5.6.4 追加查询,例5.21 将学生表中的党员记录追加到一个结构类似、内容为空的表中。,本章小结,本章介绍了查询的基本概念、查询的建立方法、查询准则的设置以及选择查询、参数查询、交叉表查询的创建和使用。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报