ACCESS查询的设计与应用.ppt
《ACCESS查询的设计与应用.ppt》由会员分享,可在线阅读,更多相关《ACCESS查询的设计与应用.ppt(154页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 五 章 查询的设计与应用,查询是进行数据检索并对数据进行分析、计算、更新及其它加工处理的数据库对象。 查询是通过一个或多个表中提取数据并进行加工处理而生成的。 查询结果可以作为窗体、报表或数据访问页等其它数据库对象的数据源。 利用查询可以选择一组满足指定条件的记录,还可以将不同表中的信息组合起来,提供一个相关数据项的统一视图。,第 一 节 查询的种类与应用,在设计数据库时,常常把数据分类,并分别存放在多个表中,但在使用时需要检索一个或多个表中符合条件的数据。查询实际上就是将这些分散的数据再集中起来。,学生表,成绩表,课程表,查询结果,查询在数据库中保存的时候,并非保存查询的结果,而是SQL
2、命令。执行查询时,是按要求从数据源中提取相应的数据记录,因此查询是一个“动态”的数据集。,一、查询的种类 在Access中,可以创建5种类型的查询: 1、选择查询 从一个或多个表中检索数据,在一定条件下,还可以更改相关表(数据源)中的数据。 选择查询可以对记录进行求和、计数能为求平均值等效我种类型的计算,也可以分组进行这些运算。 2、参数查询 是一种特殊的选择查询,即是将选择查询的条件设置成一个带有参数的“通用条件”,在运算查询时由用户指定参数的值。 参数查询便于作为窗体和报表的基础。,3、交叉表查询 用于计算并重新组织数据的结构,以便更好地观察和分析数据。 交叉表查询可以在类似于Excle的
3、数据透视表的格式中,显示数据源中指定字段的合计值、计算值、平均值等。,可以使用数据透视表向导来按交叉表形式显示数据,无须在数据库中创建单独的交叉表查询。 操作步骤: 在设计视图中打开表 菜单命令:【视图】/【数据透视表视图】 设计数据透视表视图的布局,4、操作查询 操作查询除了可以从数据源中抽取记录外,还可以更改记录,即:可以在操作查询中设置条件,对符合条件的记录进行删除记录、更新数据、追加记录及生成表等操作。 操作查询可以分为: 删除查询 从一个或多个表中删除一组符合条件的记录。 更新查询 对一个或多个表中的一组符合条件的记录进行批量修改某字段的值。,追加查询 将一个或多个表中的一组符合条件
4、的记录添加到另一个表(或多个表)的末尾。 生成表查询 将查询的结果转存为新表。,5、SQL查询 SQL(Structured Query Language)是一种结构化查询语言,是数据库操作的工业化标准语言,使用SQL语言可以对任何数据库管理系统进行操作。 所谓的SQL查询就是通过SQL语言来创建的查询。 在查询设计视图中创建任何一个查询时,系统都将在后台构建等效的SQL语句。大多数查询功能也都可以直接使用SQL语句来实现。 有一些无法在查询设计视图中创建的SQL查询称为“SQL特定查询”。,SQL特定查询包括: 联合查询 将来自多个表或查询中的相应字段组合为查询结果中的一个字段(使用UNIO
5、N运算符合并多个选择查询的结果)。 传递查询 使用服务器能够接受的命令直接将命令发送到ODBC数据库而不需要事先建立链接,如使用SQL服务器上的表。可以使用传递查询来检索记录或更改数据。,数据定义查询 包含数据定义语言语句的SQL特定查询。这些语句可以用来创建、删除、更改表及其它对象,或者创建数据库中的索引等。 子查询 包含在另一个选择查询或操作查询之内的SQL SELECT语句,即嵌套在查询中的查询。,创建传递查询、数据定义查询和联合查询必须直接在SQL视图中输入相应的SQL语句。 创建子查询可以在查询设计网格的“字段”或“条件”行输入SQL语句。,选择查询 参数查询 交叉表查询 操作查询
6、删除查询更新查询 追加查询生成表查询 SQL特定查询 联合查询传递查询 数据定义查询子表查询,查询类型,二、查询的应用 查询的应用主要有: 选择字段 在查询的结果中可以只含有表中的部分字段。,选择记录 在查询的结果中,只含有符合指定条件的记录。,编辑记录 即利用查询添加、修改和删除表中的记录。 实现计算 即在查询中进行各种统计计算,也可以建立一个计算字段来保存计算的结果。,利用查询的结果生成窗体或报表 即以查询的结果作为窗体或报表的数据源。 利用查询的结果创建表 利用查询的结果创建一个新表。,第 二 节 查询的建立方法,创建查询的方法主要有使用查询向导和查询设计视图两种。 一、使用查询向导 【
7、例】利用查询向导查询学生成绩,要求输出学号、姓名、平均分、最高分和最低分。 操作步骤: 启动查询向导 选择数据源(表) 选择字段 选择明细查询或汇总查询 明细查询:显示每条记录的每个字段 汇总查询:对数值字段进行汇总统计(求总和、平均值、最大/最小值、计数等) 为查询命名,说明: 不能对记录进行筛选和排序 不能改变查询中字段的顺序 允许对数值字段进行汇总统计 允许按指定日期范围分组汇总,汇总查询必须包含且只能包含汇总统计的数值型字段和用于汇总依据的分组字段。其它字段的添加将无法得到期望的汇总效果,二、使用查询设计器 Access的查询有3种视图: 设计视图 SQL命令的可视化设计界面 数据表视
8、图 用于显示查询的结果 SQL视图 用于直接输入SQL命令来设计查询,1、查询设计视图 使用查询设计视图不仅可以创建查询,还可以对已经存在的查询进行修改(包括利用向导创建的查询)。,查询设计视图的窗口包括两部分: 显示查询的数据源(包括它们之间的关系连线) 定义查询设计的表格 字段查询中所含表的字段 表字段所在的表 排序定义字段的排序方式 显示设置在数据表视图中是否显示该字段 条件设置查询的条件 或设置查询的条件,多条件查询时,在同一行上设置的各条件之间是“与”关系;“或”关系应在不同行上设置。,2、查询设计视图的工具栏 视图 在查询的3个视图之间切换 查询类型 在各种类型的查询之间切换 运行
9、 执行查询并以数据表视图形式显示 显示表 列出当前数据库中所有的表和查询 总计 显示“总计”行,用于进行各种统计 上限值 指定查询结果的显示范围(记录数) 属性 显示光标指向对象的属性 (对字段属性的修改不会反映到表中) 生成器 用于生成查询条件表达式,3、在设计视图中创建查询 【例】 查询全校教师的工号、姓名、院系名称和基本工资。 操作步骤: 打开查询设计视图 选择数据源(如果选择多个表,多个表之间 如果没有建立关联但存在公共字段,且该 公共字段是一张表的主键,则系统将自动 按其公共字段建立临时关联) (注意教材P80的叙述) 在设计表格中设置字段、表、排序、条件等,说明: 可以双击表的关系
10、连线来编辑表之间的关联,包括:联接的字段和联接的类型。 联接的类型包括: 只包括两个表中联接字段相等的行(默认选择) 包括左表中的所有记录和右表中联接字段相等的那些记录 包括右表中的所有记录和左表中联接字段相等的那些记录,多表中含同一字段时,可以选择字段的来源表,或用鼠标直接拖拉表中字段至表格。 查询条件的设置可以利用“生成器”工具按钮。 单击工具栏的“运行”按钮,可以查看查询的结果(利用工具栏“视图”按钮可返回设计视图)。,【例2】 查询全校教师的工号、姓名、院系名称和基本工资。查询结果按院系名称升序排序,同一个系的教师按基本工资的降序排序。 【例3】 查询全校教师中基本工资在1500元以上
11、(含1500元)的教师的工号、姓名、院系名称和基本工资。按院系名称升序排序,同一个系的教师按基本工资的降序排序。,第 三 节 查 询 条 件,带条件的查询需要设置查询的条件来实现。查询条件是运算符、常量、函数以及字段名和属性等的任意组合(关系表达式),其运算结果是一个逻辑值,True或者Flase。 一、表达式 表达式中含运算符、常量、函数以及字段名等。 1、常数 日期型常数要用界限符(#)括起来 字符型常数要用界限符( 或 )括起来 数值型常数直接引用值 如: 123.4 ABcd 江苏南京 #2011/10/01# #1949-10-1 15:00:00#,2、常量 常量代表固定不变的数值
12、或字符串值。如:True、False、Null等都是常量。 常量可以代表单个字符串、数值、任何包含数值或逻辑运算符的表达式,但不能含Is语句和乘幂运算符。在各种表达式中均可以使用常量。 常量的命名规则与变量相同。,Access中支持3种常量: 符号常量 是用Const 语句说明的常量 ,可以模块中使用。 如:Const Nc = 南京财经大学 Const Pi = 3.1415926 固有常量 是系统内部定义的作为操作参数和函数值的常量,提供了对VB、VBA、DAO库常量的访问。 系统常量 是由系统定义的常量。 如:True False Null,3、变量 变量是在程序的执行过程中值可以改变的
13、数据。对变量的命名,实质上是对其存储空间的命名。,4、表达式 用运算符将常数、常量、变量、函数以及字段名、控件和属性等连接起来的式子称为表达式,表达式经计算后将得出一个单个值。 表达式可以: 作为许多属性和操作参数的设置值 在查询中设置搜索条件或定义计算字段 在窗体、报表和数据访问页中定义计算控件,以及在宏中设置条件 定义检查约束条件,(1)算术运算表达式 算术运算表达式中的运算符为算术运算符,最为常用的算术运算符有:+、-、*、/ 、等。 算术运算符仅用于数值运算并且必须有两个数值型操作数,即为双目运算符。 【例】 125 + 100 / 5 2 6 * 2 / ( 2 + 1 ) 单价 *
14、 0.8,教材P82的例题描述存在错误。,(2)关系运算表达式 关系运算表达式中的运算符为关系运算符,包括:、 =、 等。 关系表达式运算的结果为一个逻辑值:True或False。 各关系运算符的运算级别相同。 【例】 3 8 5 + 2 = 5 * 2 工作日期 出生日期,(3)连接运算表达式 连接运算符包括两个:,【例】查询会计学院(院系代码020201)所有成绩的平均分在75分以上,且各门课程的成绩不得低于60分的学生的学号、姓名、总分、平均分和最低分,并按照平均分从高到低排列。,在查询的设计视图打开后,鼠标单击工具栏中的【总计】按钮,将添加一个【总计】行,以便输出含聚合函数的字段。 当
15、查询的输出字段含有聚合函数时,通常情况下应设置分组字段。所谓分组字段即为:进行数据统计时的分组依据。 当查询中含有汇总字段,而某一字段既不是汇总字段,也不是分组字段,其值是无意义的。,SELECT 学生表.xh , 学生表.xm , Sum( 成绩表.cj ) AS 总分, Avg( 成绩表.cj ) AS 平均分 , Min( 成绩表.cj ) AS 最低分 FROM (学生表 INNER JOIN 成绩表 ON 学生表.xh = 成绩表.xh ) INNER JOIN 院系代码 ON 学生表.yxzydm = 院系代码.yxzydm GROUP BY 学生表.xh , 学生表.xm, 院系
16、代码.yxzydm HAVING ( ( ( 院系代码.yxzydm ) = 020201 ) AND ( ( Avg( 成绩表.cj ) ) = 75 ) AND ( ( Min( 成绩表.cj ) ) = 60 ) ) ORDER BY Avg( 成绩表.cj ) DESC ;,二、交叉表查询 交叉表查询是以行和列的字段作为标题和条件选取数据,并在行与列的交叉处对数据进行汇总和统计计算。 设计交叉表查询需要字义3种字段: 处于数据表最左端的行标题字段 即把某一字段或相关数据放入指定的一行中。 处于数据表最上边的列标题字段 即对每一列指定的字段进行统计,并将统计结果放在该列。 处于行和列交叉
17、位置的字段 可以为该字段指定总计项(注意教材P88叙述),1、使用向导创建交叉表查询 操作步骤: 打开交叉表查询向导(创建新查询) 添加数据源 选择行字段和列字段 选择交叉点字段及总计函数(如果不作统计计算,则总计函数选择“第一项”并取消窗口中的【是,包括各行小计】复选框) 为查询命名并保存所设计的查询,交叉表查询向导的数据源只能来自于一个表或查询。若来自多个表,可先建立一个查询,而后以此查询作为数据源使用向导创建,或者直接在设计视图下创建。,2、在设计视图下创建交叉表查询 使用设计视图可以创建基于多表的交叉表查询。 操作步骤: 打开查询的设计视图 添加数据源 设置显示字段 设置查询类型为:交
18、叉表查询 在【交叉表】行上设置:行字段、列字段 在【交叉表】行上设置:值字段(将【总计】行改为:第一条记录) 添加汇总字段并设置汇总函数(【交叉表】行设置为:行标题) 为查询命名并保存所设计的查询,三、参数查询 所谓参数查询是在运行查询的过程中,系统将根据所输入的参数的值来自动设定查询的规则。 参数查询是建立在选择查询或交叉查询的基础之上的,如果希望根据某个或某些字段的值来查询记录,即可使用参数查询。 操作步骤: 打开查询的设计视图 添加数据源 设置显示字段 在作为参数字段的【条件】行上输入提示文本(注:提示文本需要用方括号括起来),【例】设计一个能够查询指定课程代码的学生成绩查询,要求输出:
19、学号、姓名、课程代码、课程名称、成绩。 (运行时课程代码分别取:60001、60011) 在参数查询中,可以建立单参数或者多参数的查询。 【例】设计一个能够查询指定课程代码、指定班级编号的学生成绩查询,要求输出:学号、姓名、班级编号、课程名称、成绩。 (运行时课程代码同上例,班级编号取:04020),【例】查询指定省份学生的信息。输出字段为:省份、jg、xm、xb和yxdm,查询结果先按jg升序排列,jg相同时按xm降序排列。 SELECT Left( jg , 2 ) AS 省份 , xs.jg , xs.xm , xs.xb , xs.yxzydm FROM xs WHERE ( ( (
20、Left( jg , 2 ) ) = 省份: ) ) ORDER BY xs.jg , xs.xm DESC,【例】查询指定城市(jg字段中的第3、4个字符)男女学生的人数,要求输出字段为:城市名、性别和人数。 SELECT Mid( jg , 3 , 2 ) AS 城市名 , xs.xb , Count( xs.xb ) AS 人数 FROM xs GROUP BY Mid( jg , 3 , 2 ) , xs.xb HAVING ( ( ( Mid( jg , 3 , 2 ) ) = 城市名: ) ),四、操作查询 操作查询用于创建新表或修改现有的表中的数据。 1、创建追加查询 追加查询是
21、把查询的结果添加到另一个表的末尾。 操作步骤: 打开查询的设计视图 添加数据源 选择查询类型及设置目标表 选择追加字段及追加条件,数据源表和目标表的对应字段的字段名必须相同。 数据源表和目标表的对应字段的数据类型如果不相同,系统将先进行类型转换;如果不能进行类型转换,则将出错。,【例】 将学生表中“班级编号”为04020的记录追加到vfpxs表中。,2、创建更新查询 更新查询是把查询结果的记录来修改现有记录的相应字段的值。 操作步骤: 打开查询的设计视图 添加数据源 选择查询类型 设置更新的字段、字段的值及更新的条件,【例】 计算教师工资表中的住房补贴(应是基本工资和综合补贴之和的5%。 将教
22、授和副教授的工资增加10%。,3、创建生成表查询 生成表查询是用查询的结果创建新表。 操作步骤: 打开查询的设计视图 添加数据源 选择查询类型及创建新表的表名 选择新表中的字段及条件,4、创建删除查询 删除查询是从表中删除与查询结果中相对应的记录。 操作步骤: 打开查询的设计视图 添加数据源 选择查询类型 选择删除记录的表 设置删除的条件,查询运行后将从原表中永久删除查询到的记录!因此为避免误删除,可以先预览查询的结果。,五、重复项、不匹配项查询 1、创建查找重复项查询 数据表中除设置为主键的字段不能有重复的值外,其它的各个字段均允许有重复的值。查找重复项查询即从表中查找具有相同字段值的记录。
23、 操作步骤: 打开查找重复项查询向导(创建新查询) 选择数据源 选取设为重复值的字段 可以选择另外查询的字段,【例】查找学生表中班级编号和民族代码均相同的记录数。,查询运行后将显示所选取的重复值的字段及重复的记录数。,2、创建不匹配项查询 不匹配项查询就是在一个表中搜索另一个表中没有的相关记录。 操作步骤: 打开查找不匹配项查询向导(创建新查询) 选择参考表 选择不匹配表 选择两表的联接字段,【例】 在xs1表中搜索在xs2表中没有相关记录的行。,第 五 节 SQL查询,SQL是一种数据库语言,它包括4个部分即: 数据定义 数据查询 数据操纵 数据控制 SQL有两种使用方法: 与用户交互的方式
24、联机使用 作为子语言嵌入到其它程序设计语言中使用,一、SQL的数据定义 SQL的数据定义功能是指定义数据库的结构,包括定义基本表、定义视图和定义索引3个部分(见教材P95)。,视图是基于基本表的虚表,索引是依附于基本表的,所以SQL不提供修改视图和索引的操作。如果需要修改视图或索引的定义,只能先将它们删除,然后再重建。,1、定义基本表 定义基本表的命令为CREATE TABLE。 格式: CREATE TABLE ( , , CONSTRAINT ) 功能:创建表的结构 说明: 部分数据类型有其固定的长度,不需要设置。,注意教材P95CREATE TABLE的语法格式。,CONSTRAINT子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- access 查询 设计 应用 利用 运用
限制150内