VFP查询与视图
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
查询向导——记录排序
调整排 序顺序 移动按钮
选择排序字段 单击【添加】 选择排序方式 单击
查询向导——限制记录
说明:查询结果中所包含 的记录数限制共有四种方 式: 1、“部分类型”中选择 “所占记录百分比”, “数量”中选择“所有记 限制查询结 录”,查询结果集中包含 取默认值, 果中所包含 全部记录。 查询结果 的记录数 2、“部分类型”中选择 集中包含 “所占记录百分比”, 单击 全部记录 “数量”中选择“部分 值”,再在“微调框”中 设置数值,查询结果集中 包含指定数值百分数的记 3、“部分类型”中选择“记录号”,“数量”中选择“所有记录”,查询 录。 结果集中包含全部记录。 4、 “部分类型”中选择“记录号”,“数量”中选择“部分值”,再在 “微调框”中设置数值,查询结果集中包含指定数值的记录数。
主讲:杜春敏
查询与视图
学习要点
1、查询向导和查询设计器的使用方法; 2、单表查询和交叉表查询; 3、查询设计器中各选项卡的功能和使用方法; 4、本地视图和远程视图; 5、视图向导和视图设计器的使用方法; 6、使用视图。
第3章 查询与视图
3.2 用查询向导设计查询
3.3 用查询设计器设计查询
3.4 创建视图
单击
查询向导——字段选取
选择 XGGL数 据库中的 Student表, 并将该表 中的所有 字段添加 到“选定 字段”列 表框中。
单击
查询向导——筛选记录
从中选择 Student.系部 代号 在此输入值 取默认值 04 从中选择 “包含” 98 在此输入值 单击 单击【预览】按钮可以显示查询结果。根据要求,设置条件如上图。其中, 虽然表中没有年级字段,但可通过“学号”得到年级(学号的前二位为年 级)。
此时系统自动弹出一个“联接条件”,询问 是否根据两表中都有的“学号”字段建立内部联 接,单击“确定”,两表间就有了一条连线,代 表它们之间的联接。然后再添加Courses表,最后 关闭对话框。
在“查询设计器”中选择“联接”选项卡,如图:
在VFP6中表间的联接有四种类型,分别是: (1)Inner Join:内部联接,指定只有满足联接条件的记录包含在 结果中,此类型是默认的,也是最常用的; (2)Right Outer Join:右联接,指定满足联接条件的记录,以及 满足联接条件右侧的表中记录(即使不匹配联接条件)都包含在 结果中; (3)Left Outer Join:左联接,指定满足联接条件的记录,以及满 足联接条件左侧的表中记录(即使不匹配联接条件)都包含在结 果中; (4)Full Join:完全联接,指定所有满足和不满足联接条件的记 录都包含在结果中。 如果想修改各表间的联接,双击查询设计器上部窗口表之间 的连线,系统将弹出“连接条件”对话框;或者通过打开查询设 计器下部的“联接”选项卡进行。一般不应随便更改连接条件, 不然会与实际数据间的关系不符。
交叉表设计向导——字段选取
说明:在这 一步先在“ 数据库和表 ”一选择一 个数据库, 再选择用以 建立交叉表 的数据表, 然后再从可 用字段列表 框中选择要 用的字段, 交叉表只用 三个字段, 这一步可多 选 字段。
单个字段选定按钮
单击 选择数据库和表 选定字段
全部字段选定按钮 单个字段撤消按钮 全部字段撤消按钮
返回
在设置筛选条件时,我们应注意如下几点: (1)备注字段和通用字段不能用于设置查询条件; (2)逻辑值的前后必须使用句点号,如.T.; (3)只有当字符串与查询的表中字段名相同时,要用引 号将字符串括起来,否则不需要用引号将字符串括起 来; (4)日期不必用花括号括起来。
3.3.2 选定查询字段
根据建立查询的目的,选择查询结果中应包含的字段。操作方 法与用向导设计查询的方法相同。在本示例中先在“查询设计器” 中选择“字段”选项卡,然后从可用字段列表框中选择:Student. 学号、Student.姓名、Courses.课程名称、Grade.课程成绩,如图。
保存设计的查询
目录选择下拉列表框 文件名输入文本框 在“文件名输入文本框”中 输入“Stud_query”后,单击 【保存】按钮,结束查询设 计过程。
文件类型选择下位列表框
在项目管理器中 的“数据”选项 中的查询项下产 生了一个查询文 件
返回
3.2.2 建立交叉表
如果在上文所述的建 立查询的第一步选择 “交叉表向导”,则可 以建立交叉表。下面通 过示例来介绍如何建立 交叉表。用Grade表中 的数据建立一个交叉表, 以显示每个学生所有课 程的总成绩。 Grade表 中的部分数据如: 前面的设计过程同以 上内容,但是在第二步 需要确定交叉表的行和 列。
返回
3.3 用查询设计器设计查询
3.3.1 确定各表间的联接关系 3.3.2 选定查询字段 3.3.3 筛选记录 3.3.4查询结果排序 3.3.5 建立分组查询 3.3.6 杂项的设置 3.3.7 定向输出查询结果 3.3.8 运行查询 返 回
退
出
3.3 用查询设计器设计查询
在实际应用中,查询向导设计的查询往往不能满足需求。 这时还可以采用查询设计器方便灵活的设计各种查询,也可以 先用查询向导设计一个简单的查询,再打开并修改它。 将上一节建立的Grad_Query交叉表查询,用“查询设计器” 进行修改,使用之包含尽可能少的空栏。 可以通过以下所提供的多种方法之一来打开查询设计器: ■从“项目管理器”启动查询设计器 1、在“项目管理器”中选择“数据”选项卡,再选取“查询” 项,再单击【新建】,进入查询设计方式选择对话框后单击 【新建查询】,则启动“查询设计器”。 2、在“项目管理器”中选择“数据”选项卡,从“查询”项 中选择一个已存在的查询文件,再单击【修改】,也启动“查 询设计器”。
查询向导——完成
将查询以文 件的形式 (.QPR)保 存到一个指 定的目录中。 将查询保存到一 个指定的目录中 并运行该文件。 利用查询向导设计的查询功能有限,可以使用查询设计器修改它。 单击,可以查看查询结果集中的全部数据 结束向导, 完成查询设 计。 打开帮助文件 取消所建立的查询 返回到向导的上一步 单击
(7)<=:即为“字段名”栏中给出的字段的值应小于或等于 “实例”栏中给出的值; (8)Is Null:指定字段必须包含Null值; (9)Between:即为输出字段的值应大于或等于“实例”栏中的 最小值,而小于或等于“实例”栏中的最大值; (10)IN(在…之中):即为输出字段的值必须是“实例”栏 中所给出值中的一个,在“实例”栏中给出的各值之间以逗号分 隔。 此外,“联接”选项卡中的“否”列用于指定.NOT.条件, “逻辑”列用于设置各联接条件和筛选条件之间的逻辑关系 (无、.AND.和.OR.),“大小写”列用于指定是否区分大小写。 下方的“插入”和“移去”按钮分别用于增加或移去查询条件。
3.3.1 确定各表间的联接关系
示例:创建一个含有多个表中信息的查询。在XGGL数据库 中有三个表:Student、Gradeபைடு நூலகம்Courses,现在想知道学号 前四位是9904和9804的所有学生考试的成绩。 当在多个表或视图间进行查询时,需要指出这些表或视 图间的联接关系。 操作方法如下: 启动查询设计器,在“添加表和视图”对话框中从“数据 库”中选择GXGLXT库,在“数据库中的表”中选择Student 表,单击【添加】按钮,再选择Grade表,再单击【添加】,
返回
查询文件设计与创建步骤
要设计一个查询文件,首先必须明确查询的目的 是什么,即想要得到哪些数据,并以什么方式存在; 或者想要得到满足某些条件的特定记录,或者想要知 道某些记录的字段值组合成的表达式按某一方式输出。 明确了输出的数据后,就可以开始设计查询了,一般 要通过以下几个步骤进行: (1)启动查询设计器; (2)选择出现在查询结果中的字段; (3)设置选择条件来查找可给出所需结果的记录; (4)设置排序或分组选项来组织查询结果; (5)选择查询结果的输出类型:表、报表、浏览等; (6)运行查询。
3.5数据库视图的操作
3.6利用视图更新数据
3.7利用视图处理自由数据
小
返回
结
退出
3.2 用查询向导设计查询
3.2.1 设计单表查询
3.2.2 建立交叉表
返
回
退
出
3.2.1 设计单表查询
查询向导可以引导用户快速设计一个查询。下面将示例使用 查询向导设计一个简单的单表查询:从XGGL数据库的Student 表中查询系部代号为“04”且是99级的所有学生的信息。 操作过程如下:首先从“文件”开始,选择【新建】 -“查 询”,然后单击【向导】按钮,则出现设计查询的方式选择对 话框。
选择“保存并运行 交叉表查询”后单 击
交叉表保存及运行结果
按上一步的操作完成后,进行到“另存为…”对话框中,将 该查询取名为Grad_Query,然后保存在默认的目录中。 保存后,系统进入到数据查询过程,稍候系统将查询结果显示 出来。如:
从中可以看到,凡是没有数据的栏,就被.NULL.值填充,且有 许多数据丢失。 交叉表可以用数据过滤处理,在下一节中介绍。
■从【文件】菜单启动查询设计器 选择系统菜单中的【文件】|【新建】命令,在“新建”对话框 中选中“文件类型”下的“查询”单选项,再单击右边的【新建 文件】按钮,也可启动“查询设计器”; ■使用CREATE QUERY命令也可启动“查询设计器”
查询设计器窗口
查询设计器下部分的窗口中有几个选项卡,其含义简介如下: (1)“字段”:用来选定包含在查询结果中的字段; (2)“排序依据”:用来决定查询结果输出中记录或行的 排列顺序; (3)“联接”:用来确定各数据表或视图之间的联接关系; (4)“筛选”:相当于命令SET FILTER TO,利用过滤的方 法查找一个特定的数据子集; (5)“分组依据”:所谓分组就是将一组类似的记录压缩 成一个结果记录,这样就可以完成基于一组的计算。
“条件”列表中包含如下几项: (1)=:指字段值与实例相等; (2)LIKE:表示“字段名”栏中给出的字段值与“实例”栏 中给出的文本值之间执行不完全匹配,它主要针对字符类型。 例如,如设置查询条件为“Student.学号 LIKE 9904”,那么诸 如“学号”字段前四位为9904的记录都满足该条件; (3)==:表示在“字段名”栏中给出的字段值与“实例”栏 中给出的文本值之间执行完全匹配检查,它主要是针对字符型。 (4)>:即为“字段名”栏中给出的字段的值应大于“实例” 栏中给出的值; (5)>=:即为“字段名”栏中给出的字段的值应大于或等于 “实例”栏中给出的值; (6)<:即为“字段名”栏中给出的字段的值应小于“实例” 栏中给出的值;
单击
交叉表向导——定义布局
说明:
(1)行,将要加入到 交叉表中的第一个字 段名,本示例中选择 字段“学号”; (2)列,将要加入到 交叉表中的从第二个 字段开始的若干个字 段的字段名,注意这 些从源表中选择的数 据不能超过254个。本 示例中选择字段“课 程代号”; (3)数据,对应行和 列的运算结果,本示 例中选择“课程成 绩”。
单击
按提示操作:从可用字段列表框中将“学号”字 段拖入“行”框,将“课程代号”拖入“列”框, 将“课程成绩”拖入“数据”框。
交叉表查询向导——加入总结信息
说明:这一步的操作,
决定在生成的交叉表中 要加入的一个字段的内 容。 (1)求和:求出对应行 和列的数据字段的和; (2)计数:求出对应行 和列的数据字段的数目; (3)平均值:求出对应 行和列的数据字段的平 均值; (4)最大值:求出对应 行和列的数据字段的最 大值; (5)最小值:求出对应 行和列的数据字段的最 小值。
本示例中选择“求和”运算。 如果不想加入总结信息,可 以在“分类汇总”中选择 “无”。
单击
交叉表向导——完成
将交叉表查询以文件的 形式(.QPR)保存到一 个指定的目录中。 将交叉表查询保存到一 个指定的目录中并运行 该文件。
将交叉表查询保存到一个指定的目录中并打开“查询设计器”修改 它。 对于值为空的记录是否以.NULL.填充 说明:系统默认值是 “保存交叉表查询”和 “显示NULL值”。