3-1查询和视图ppt课件
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
查询设置区
北京科技大学天津学院
10
2020/5/31
计算机教研组
查询设计器图示
选定包含在查询结 果中的字段
所谓分组就是将一组类似 的记录压缩成一个结果记
确定各数据表或视 录;这样就可以完成基于 图之间的关联关系 一个组的统计计算
设置其他内容
决定查询结果输出中记录或行的排列顺序
设置条件查找一个特定的数据子集
• 4) 视图的数据源可以是自由表、数据库
表或另一个视图。
北京科技大学天津学院
25
计算机教研组
视图与表
• 视图兼有数据表和查询的特点
• 与表相类似的地方是,可以用来更新其 中的信息,并将更新结果反映到源数据 表中
• 视图中的源数据表也称为“基表”( Base Table)
北京科技大学天津学院
26
2020/5/31
北京科技大学天津学院
11
2020/5/31
计算机教研组
定义查询的输出内容
• 单击字段选项卡 → 从可用字段列表框 中单击所需字段
– (当输出的列不是直接来源于表中的字段 时,单击函数和表达式框边的… 按钮,打 开表达式生成器,构造出所需的表达式)
• 单击添加按钮 → 所需字段自动出现在 选定字段框中。
北京科技大学天津学院
4
2020/5/31
计算机教研组
查询的意义
2020/5/31
• 查询是一种由VFP提供的实现多表多 数据记录检索的技术手段和工具
• 查询可以根据用户向一个数据库发出 的数据检索的请求,将满足检索条件 的一组数据记录按指定的方式提取到 指定的用户窗口界面
北京科技大学天津学院
5
计算机教研组
6
2020/5/31
计算机教研组
查询的相关概念
• 查询结果
– 通过运行查询文件得到的一个基于表和视 图的动态的数据集合。查询结果可以用不 同的形式来保存。查询中的数据是只读的 。
• 查询的数据源
– 可以是一张或多张相关的自由表、数据库 表、视图。
北京科技大学天津学院
7
2020/5/31
计算机教研组
建立查询的一般过程
2020/5/31
• 启动“查询设计器”;并在其中创建查 询
– 添加数据表(又称为数据源),并在多个数 据表之间建立关联(永久关系是默认的关联
)
– 选择查询结果中的字段
– 设置条件,筛选在查询中出现的记录
– 设置排序北京或科技分大组学天,津学组院 织查询的结果
8
计算机教研组
查询的建立与修改
37
计算机教研组
■【全部更新】:选择对除了关键字字段以外的所有字段,
都可以进行更新;并在“字段名”列表的铅笔符号下打一个
对钩。
■发送SQL更新:指定是否将视图记录中的修改传送给原始
表。要更新数据表中的数据,必须选择该复选框
■“字段名”列表框:显示了从“表”列表框中所选的表中
的字段、并用来输出这些字段。这些字段都是可以更新的。
• 区别在于所使用的数据源不同
– 本地视图:本地的VFP数据表、已建立的本 地视图或远程视图
– 远程视图:通过ODBC方式使用的数据源
• ODBC (Open DataBase Connectivity 开放数据库 互连),有两个功能“
– 将本地的非VFP数据表转换成VFP数据表
– 支持将远程的各种数据源连接到本地
<
左侧字段值小于右侧字段的值
<= 左侧字段值小于或等于与右侧字段的值
IS NULL 左侧字段值是NULL(空值)
Between 左侧字段值包含在右侧用逗号分隔的两个值之间
In 左侧字段值必须与右侧用逗号分隔的几个值中的一个相匹配
北京科技大学天津学院
16
2020/5/31
计算机教研组
设置查询结果的排序依据
• 系统提供可视化建立和修改查询的工具 – 查询向导(自学) – 查询设计器
• 激活“查询设计器”的方法 – VFP提供的系统菜单(新建/查询) – “项目管理器” – 使用专门的命令:CREAT QUERY
北京科技大学天津学院
9
2020/5/31
计算机教研组
查询设计器图示
查询设计工具
数据源显示区
36
2020/5/31
计算机教研组
视图关键字的意义
2020/5/31
• 在视图中修改过的数据,在返回原表 后,将对相匹配的记录进行修改
• 该将被修改的记录必须是确定和无歧 义的
• 为保证,在被更新表中应设置一个主 关键字,并根据该主关键字,确定被 修改的记录
• 设置不合理,将会发生更新错误
北京科技大学天津学院
计算机教研组
“更新条件”选项卡选项的意义:
■表:指定视图所使用的哪些表可以更新。选择可更新表以后即
可进一步选择确定需更新的字段。
■【重置关键字】:在每个将要更新的表中选择若干字段作为视
图的关键字。这个关键字同时也是原表的一个主关键字。将被
用来匹配视图中的修改与原表中的原始记录更新的一致性。
北京科技大学天津学院
相同;两者的用户界面
相似
北京科技大学天津学院
34
2020/5/31
计算机教研组
数据更新设置
2020/5/31
• 使用“更新条件选项卡”设置有关数 据更新的问题
– 哪些表允许更新
– 表中的哪些字段允许更新
– 根据哪个关键字段进行更新
– 更新的方式
– 多用户时,如何避免更新冲突
北京科技大学天津学院
35
联接类型
意义
Inner Join 内部联接 Right Join 右联接
Left Join 左联接 Full Join 完全联接
返回满足联接条件的记录(默认方式)
返回右侧表中所有记录以及左侧表 中相匹配的记录
返回左侧表中所有记录以及右侧表 中相匹配的记录
返回两个表中所有记录
北京科技大学天津学院
14
2020/5/31
北京科技大学天津学院
32
2020/5/31
计算机教研组
激活视图设计器的方法
❖ 可通过三种方法 – 项目管理器 – 菜单方式 – 命令方式 CREAT VIEW
北京科技大学天津学院
33
2020/5/31
计算机教研组
利用视图设计器创建本地视图
进入“视图设计器”和
使用“视图设计器”的
方法与“查询设计器”
• 对于建立索引后的数据表,可使用命令 – SEEK FIND
• 对子表索引并建立关联后,可实现多表 之间的数据随动及涉及多表的数据检索
北京科技大学天津学院
3
2020/5/31
计算机教研组
问题的讨论
• 对于一般的数据检索方式: –基本上是基于一张数据表进行 –基本上是查找一条满足条件的数据记录
• 需要更复杂的数据查询: –涉及多表 –涉及多数据记录 –即从多张表中筛选出一个满足条件的数据组
• 或从程序菜单中选择执行命令
• 或从命令窗口中输入:
DO 查询文件名
北京科技大学天津学院
22
2020/5/31
计多数据源中筛选出数据 • 但查询本身不能作为数据源使用 • 在查询中不能更新数据,更不能用查
询更新数据源中数据
北京科技大学天津学院
23
2020/5/31
3.1查询
北京科技大学天津学院 计算机教研组
检索与查询是最终目的
• 数据的检索与查询是数据库管理的最 终目的
• 创建与数据维护都只能是“服务” • 我们已经学习和掌握了许多的数据检
索与查询方法
北京科技大学天津学院
2
2020/5/31
计算机教研组
检索与查询的方法小结
• 对于一般的数据表,可以使用命令 – LOCATE
查询的相关概念
• 查询:
– 就是向一个数据库发出检索信息的请求, 从中提取符合特定条件的记录。
• 查询文件:
– 即保存实现查询的SELECT-SQL命令的文 件。查询文件保存时,系统自动给出扩展 名 .qpr;查询被运行后,系统还会生成一 个编译后的查询文件,扩展名为 .qpx。
北京科技大学天津学院
北京科技大学天津学院
12
2020/5/31
计算机教研组
“联接”的意义
联接是指查询所使用的数据源之间的关联 关系
永久关系是默认的关联关系
数据表根据关联关系,被逻辑地“联接” 成为一张新的“表”
根据联接条件,VFP支持四种不同的联接 方式(类型)
北京科技大学天津学院
13
2020/5/31
计算机教研组
“联接”类型的意义
– 报表
– 标签
– 图形
– 屏幕
• 默认情况下,查询结果将输出在浏览
窗口中,且其中的数据是只读的。
北京科技大学天津学院
21
2020/5/31
计算机教研组
运行查询
• 在查询设计器打开的状态下,单击常 用工具栏上的 !按钮或从查询菜单中 选择运行查询。
• 其他情况下,可从项目管理器中选中 查询文件并单击“运行”按钮
北京科技大学天津学院
38
2020/5/31
计算机教研组
■SQL WHERE 子句包括:在多用户环境中,应进行
适当的设置和管理以避免更新冲突;手段是检查被更新的字 段在提取到视图后是否被他用户改变;如有改变则按如下原 则处理:
选项
意义
关键字段
北京科技大学天津学院
29
2020/5/31
计算机教研组
ODBC支持使用的数据源
2020/5/31
FoxPro 2.x 版数据库文件
Visual FoxPro 数据库和自由表
Microsoft Access 数据库文件
Paradox 3.x 版和 4.x 版表文件
dBASE III 和 dBASE IV 文件
计算机教研组
设置查询的筛选条件
• 筛选条件决定将哪些记录显示出来。
• 在筛选框中构造筛选条件表达式时, 要注意在实例框中输入不同数据类型 时的格式:
• 1) 字符串可以不带引号(当与源表中 的字段名相同时才用引号);
• 2) 日期型数值要用{ }括起来; • 3) 逻辑型数据两侧要带 .号,如 .T.,.F.
北京科技大学天津学院
15
2020/5/31
计算机教研组
条件运算符的意义
运算符
意义(联接和筛选的运算形式更丰富)
=
左侧字段值与右侧字段的值相等
Like 左侧字段的值包含于右侧的值相匹配的字段
== 左侧字段值与右侧字段的值必须逐个字符完全匹配
>
左侧字段值大于右侧字段的值
>= 左侧字段值大于或等于与右侧字段的值
• 可分别使用函数COUNT()、SUM()、
AVG()对每一组记录进行计数、求和及
求平均计算北京科技大学天津学院
18
2020/5/31
计算机教研组
“分组”的意义
• 用于分组的字段不一定是选定输 出的字段,但分组字段不能是一 个计算字段。
• 可以用 “满足条件…” 来对分组 结果进行进一步筛选。
北京科技大学天津学院
比较项目
查询
视图
文件属性
独立存储 归属特定的数据库
数据来源
表或视图 本地表、其他视图、远程数据源
结果的存储方式 7种去向 临时的数据表
数据引用
不能被引用 可作为数据源引用
更新数据
只读
可更新并返回到数据源表中
北京科技大学天津学院
28
2020/5/31
计算机教研组
本地视图与远程视图
• 建立和使用的方式相似
SQL Server 数据库文件
Microsoft Excel 电子表格
固定宽度的以及符号分隔的文本文件
Oracle 数据库文件
北京科技大学天津学院
30
计算机教研组
ODBC的作用图示
北京科技大学天津学院
31
2020/5/31
计算机教研组
两种创建视图的工具平台
• 使用系统提供的“视图向导” • 使用系统提供的“视图设计器”
• 排序决定查询输出结果中记录显示的 顺序。
• 设置方法: • 单击排序依据 → 从选定字段框选中字
段 → 选择升序或降序 → 单击添加。
北京科技大学天津学院
17
2020/5/31
计算机教研组
“分组”的意义
• 分组就是将具有相同属性的一组数据记 录压缩成一个记录。
• 分组的目的是完成基于该组记录的数值 型数据的统计与计算
计算机教研组
视图与查询
2020/5/31
• 查询和视图是操作数据库的两个基本 操作手段
• 都可用于从一张或多张相关联的表中 提取一组有用数据信息;建立的方法 相似
• 使用视图可以更新相关数据表中的数据
• 可以对视图的所选字段进行类似于“数据
字典”的属北京性科技设大置学天津学院
27
计算机教研组
视图与查询的比较
计算机教研组
3.2 视图
北京科技大学天津学院 计算机教研组
视图的特点
2020/5/31
• 1) 视图是存在于数据库中的一个虚表, 不以独立的文件形式保存;
• 2) 视图中的数据是可以更改的,它不仅 具有查询的功能,且可以把更新结果反 映到源数据表中;
• 3) 视图打开时,其基表(视图中的源数 据表)自动打开,但视图关闭时,其基 表并不随之自动关闭;
19
2020/5/31
计算机教研组
对查询结果的其他设置
• 可以排除查询结果中所有重复的行 • 并设置结果的记录范围
北京科技大学天津学院
20
2020/5/31
计算机教研组
查询获得的数据的使用
• 查询获得的数据即为查询结果
• 查询结果可以有以下7种去向
– 浏览(系统的默认去向)
– 临时表
– 新的数据表