VisualFoxPro6第6章.ppt_第1页
VisualFoxPro6第6章.ppt_第2页
VisualFoxPro6第6章.ppt_第3页
VisualFoxPro6第6章.ppt_第4页
VisualFoxPro6第6章.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

返 回退 出 第6章 查询和视图操作 6.1 创建和设计查询 6.2 创建本地视图 6.3 创建远程视图 6.4 小结 6.1.1利用查询向导设计查询 查询向导可以引导用户快速设计一个查询。下面将示例使用查 询向导设计一个简单的单表查询:从”教师档案管理系统”数据库 的“教师基本情况表”中查询职称为“教授”且是“管理系”的所有教 师的信息。 步骤如下:1、从“项目管理器”开始,选择【数据】卡片中的“查 询”,2、单击【新建】按钮,则出现设计查询的方式选择对话框 如下图所示。 单击 查询向导字段选取 1、选择“教师档案管理系统”数据库中的“教师基本情况表”。 2、并将该表中的“编号”、“姓名”、“职称”、“系别”字段添加到“选 定字段”列表框中,如图所示。 单击【预览】按钮可以显示查询结果。根据要求,设置条 件如下图。 查询向导筛选记录 查询向导记录排序 1、选择要排序的字段,字段可升序或降序排列。 2、最多可选择3个排序字段,如果第一个排序字段的值相同,则按 第2个字段的升序或降序排序,依次类推。例对记录按“编号”降序排 序,如下图所示。 查询向导限制记录 限制查询结 果中所包含 的记录数 说明:查询结果 中所包含的记录 个数限制共有2 种方式: 1、 如果显示符 合条件的全部记 录,可选择“数 量”选项组中“所 有记录”,。 2、如果显示符合 条件的部分记录 ,可以使用百分 比或记录数来确 定要显示的部分 记录。 单击 取默认值 ,查询结 果集中包 含全部记 录 查询向导完成 将查询以文 件的形式( .QPR)保存 到一个指定 的目录中。 将查询保存到一 个指定的目录中 并运行该文件。 利用查询向导设计的查询功能有限,可以使用查询设计器修改它。 单击,可以查看查询结果集中的全部数据 打开帮助文件 取消所建立的查询 返回到向导的上一步 结束向导, 完成查询设 计。 单击 保存设计的查询 在“文件名输入文本框”中输 入“老师查询”后,单击【保 存】按钮,结束查询设计过 程。 在项目管理器中 的“数据”选项中 的查询项下产生 了一个查询文件 返回 6.1.2 用查询设计器设计查询 前面学习了如何使用VFP6中文版提供的查询向导快速的设计 一个查询。但是在实际应用中,查询向导设计的查询往往不能满 足需求。这时还可以采用查询设计器方便灵活的设计各种查询。 启动查询设计器 1、在“项目管理器”中选择“数据”选项卡中的“查询”选 项,再单击【新建】按钮,打开【新建查询】对话框,则启动“ 查询设计器”。 2、选择“文件”菜单下的“新建”命令,再打开的新建对话 框中选择“文件类型”选项组中的“查询”按钮,再单击“新建 查询”按钮,则启动查询设计器。 查询设计器下部分的窗口中有几个选项卡,其含义简介如下: (1)“字段”:用来选定包含在查询结果中的字段; (2)“排序依据”:用来决定查询结果输出中记录或行的排列顺序; (3)“联接”:用来确定各数据表或视图之间的联接关系; (4)“筛选”:相当于命令SET FILTER TO,利用过滤的方法查找一个特定 的数据子集; (5)“分组依据”:所谓分组就是将一组类似的记录压缩成一个结果记录, 这样就可以完成基于一组的计算。 要设计一个查询文件,首先必须明确查询的目的是什么,即想要得到哪些数 据,并以什么方式存在;或者想要得到满足某些条件的特定记录,或者想要 知道某些记录的字段值组合成的表达式按某一方式输出。明确了输出的数据 后,就可以开始设计查询了,一般要通过以下几个步骤进行: (1)启动查询设计器; (2)选择出现在查询结果中的字段; (3)设置选择条件来查找可给出所需结果的记录; (4)设置排序或分组选项来组织查询结果; (5)选择查询结果的输出类型:表、报表、浏览等; (6)运行查询。 返回 ”字段“选项卡用与选择查询结果中的输出字段。 向导里已经详细介绍过,在这不再详细讲解。 当在多个表间进行查询时,需要指出这些表间的联接关系。如前 面所述,启动查询设计器,在“添加表和视图”对话框中从“数 据库”中选择GXGLXT库,在“数据库中的表”中选择Student表 ,单击【添加】按钮,再选择Grade表,再单击【添 加】,此时系统自动弹出 一个“联接条件”,询问 是否根据两表中都有的“ 学号”字段建立内部联接 ,单击“确定”,两表间 就有了一条连线,代表它 们之间的联接。然后再添 加Courses表,最后关闭对 话框。 选择输出字段 关联表 在“查询设计器”中选择“联接”选项卡,如图: 在VFP6中表间的联接有四种类型,分别是: (1)Inner Join:内部联接,指在查询结果中,只列出左字段列表与右字段 列表相匹配的记录,此类型是默认的,也是最常用的; (2)Right Outer Join:右联接,列出右字段列表中的所有字段与左字段中 相匹配的记录; (3)Left Outer Join:左联接,列出左字段列表中的所有记录与右字段列表 中相匹配的记录; (4)Full Join:完全联接,列出两个字段列表中的所有记录; 筛选记录 通过设置筛选条件,将筛选出表中满足条件的记录并显示在查询结果中。 选择筛选字段设置筛选条件 输入筛选实例 设置条件逻辑是否区分大小写 排序查询 排序查询是指按一个或多个字段的值进行升序或降序显示 排序决定了查询输出结果中记录或行的先后顺序 我们可以通过“排序依据”选项卡设置查询的排序次序,方法同在用查 询向导设计查询介绍的一样,首先从“选定字段”框中选定要使用的字 段,并把它们移到“排序条件”框中,然后利用“排序选项”(从中选 择升序或降序)来设置排序条件。本例中设置Student.学号,升序为排 序依据。 分组查询 分组是指将数据表中某关键字段相同的记录分组生成一条记录。 所谓分组就是将一组类似的记录压缩成一个结果记录,这样就可 完成基于一组记录的计算。分组在与某些累计功能联合使用时效 果最好,例如SUM(),COUNT(),AVG()等。 表达式中可用的函数: COUNT():求某字段值的指定个数 SUM():求某数值字段的和 AVG():求某数值字段的平均值 MIN():求某字段中的最小值 MAX():求某字段中的最大值 操作步骤如下: (1)在查询设计器的“字段”选项卡中,单击“函数和表达式”右 边的按钮,出现“表达式”生成器; (2)在“数学”下拉式列表框中双击AVG(expN),在“来源于表 ”下拉框中选择Grade表,在“字段”列表框中双击“课程成绩”, 单击【确定】。即在“函数和表达式”框中自动生成了 “AVG(Grade.课程成绩)”这个表达式,用以计算Grade表中课程成 绩的平均值。 (3)单击“添加”按钮,该表达式被添加到“选定字段”列表框中 。将来查询结果中就会有一列数据求平均值; (4)单击“分组依据”选项卡,进入“分组依据”窗口,在“可用 字段”中选择Grade.课程名称,再单击【添加】按钮,该字段即成 为分组字段。 运行查询后的结果 6.1.3运行查询 方法: 1.在”项目管理器“窗口中,选择”数据“选项卡,单击” 查询“选项前面的”+“按钮,选择要查询的文件名,单击 ”运行“即可。 2.选择”程序“菜单中的”运行“命令, 3.在查询设计器区域内单击右键,在弹出菜单中选择“运行 查询”; 4.在命令窗口中键入DO 查询名.qpr 5.在“查询”菜单中选择“运行查询”: 6.1.4查询菜单 1.查看SQL SQL是结构化查询语言(STRUCTURED QUERY LANGUANGE)的缩写。 一条SQL语句可以代替许多条VFT命令。 2.为查询添加注释 方法:选择”查询“菜单下的”备注“命令,在其对话框中可以为查询输入注释。 3.查询去向 方法:选择”查询“下拉菜单下的”查询去向“命令,打开其对话 框,在此可以查询结果不同的7种输出类型 6.1.5 建立交叉表 操作过程如下 下面通过示例来介绍如何建立交叉表。用Grade表中的数据建立一个交叉 表,以显示每个学生所有课程的总成绩。 Grade表中的部分数据如: 前面的设计过程同以上内容,但是在第二步需要确定交叉表的行和列 。 交叉表设计向导字段选取 说明:在这 一步先在“ 数据库和表 ”一选择一 个数据库, 再选择用以 建立交叉表 的数据表, 然后再从可 用字段列表 框中选择要 用的字段, 交叉表只用 三个字段, 这一步可多 选 字段。 交叉表向导定义布局 说明: (1)行,将要加入到 交叉表中的第一个字 段名,本示例中选择 字段“学号”; (2)列,将要加入到 交叉表中的从第二个 字段开始的若干个字 段的字段名,注意这 些从源表中选择的数 据不能超过254个。本 示例中选择字段“课程 代号”; (3)数据,对应行和 列的运算结果,本示 例中选择“课程成绩”。 按提示操作:从可用字段列表框 中将“学号”字段拖入“行”框,将“课 程代号”拖入“列”框,将“课程成绩” 拖入“数据”框。 交叉表查询向导加入总结信息 说明:这一步的操作, 决定在生成的交叉表中 要加入的一个字段的内 容。 (1)求和:求出对应行 和列的数据字段的和; (2)计数:求出对应行 和列的数据字段的数目 ; (3)平均值:求出对应 行和列的数据字段的平 均值; (4)最大值:求出对应 行和列的数据字段的最 大值; (5)最小值:求出对应 行和列的数据字段的最 小值。 本示例中选择“求和”运 算。如果不想加入总 结信息,可以在“分类 汇总”中选择“无”。 交叉表向导完成 将交叉表查询以文件的 形式(.QPR)保存到一 个指定的目录中。 将交叉表查询保存到一 个指定的目录中并运行 该文件。 说明:系统默认值 是“保存交叉表查 询”和“显示NULL 值”。 选择“保存并运行交 叉表查询”后单击 将交叉表查询保存到一个指定的目录中并打开“查询设计器”修改它。 对于值为空的记录是否以.NULL.填充 交叉表保存及运行结果 保存后,系统进入到数据查询过程,稍候系统将查询结 果显示出来。如: 从中可以看到,凡是没有数据的栏,就被.NULL.值填充,且有许 多数据丢失。 返回 6.2 创建本地视图 6.2.1 利用向导创建本地视图 6.2.3 创建参数视图 返回退出 6.2.2 利用视图设计器创建本地视图 6.2 创建本地视图 视图可以通过向导和设计器两种方法来创建。 1、 利用向导创建本地视图 用本地视图向导创建本地视图,可采取以下方式: 方式一: (1)在主窗口下打开【工具】菜单,选择【向导】菜单命令。 (2)再选择【全部】菜单,出现【向导选取】对话框,如图 单击滑动按钮 选择“本地视图向导” 单击【确定 】 进入到“本地视图向导 步骤1字段选取” 。 方式二: (1)在项目管理器中选定数据库。 (2)选定本地视图,单击【新建】按钮。 (3)单击【视图向导】按钮 (4)然后按照向导屏幕上的指示操作。 方式三: (1)打开数据库设计器,打开【数据库】菜单。 (2)选择【新建本地视图】,再单击【视图向导】按钮。 (3)然后按照向导屏幕上的指示操作。 本地视图向导:步骤1字段选取 说明:按照上述几种 方式,可以快速建立 本地视图,但要强调 的是,在项目管理器 中创建或使用视图时 ,项目管理器会自动 打开数据库。如果要 使用项目以外的表或 视图,则必须先打开 数据库或事先确认数 据库在作用范围内。 本地视图向导对话框如图,可以看到,创建视图大体要经过以 下步骤: (1)字段选取。选择数据库,数据库中的表和表中的字段。如 果当前已经打开了一个数据库,则第一步的对话框中显示的 是创建当前数据库的视图,也可以选择其它的数据库。 (2)关联表。建立数据库中表与表之间的关系。 (3)筛选记录。选定符合条件的记录。 (4)排序记录。为选定的记录按照某一字段进行排序。 (6)限定记录。定制显示一定数量的记录。 (7)完成视图。选择保存视图后浏览还是修改。 例:创建包含Grade表和Courses表的本地视图“视图1”。 选择表Grade 单击全部 添加按钮 选择Courses表 单击单个添加按 钮,添加课程名 、学时数、学分 数 字段选择完成后,单击【下一步】,步骤2为表建立关系。 本地视图向导:步骤2为表建立关系 父表字段选择 下拉选择框 子表字段选择 下拉选择框 说明:在这一步要 建立用来建立本地 视图的表间的关系 。 1、先在父表字段选 择下拉选择框中选 择要用来建立关系 的主关键字; 2、再在子表字段选 择下拉选择框中选 择用来建立关系的 子表关键字; 3、单击【添加】, 将设定关系添加到 关系列表框中。 上面的字段符合要求,单击【添加】 关系设置完成后单击【下一步】进入到步骤2a字段选取对话框。 本地视图向导:步骤2字段选取 生成的本地视图中只包 含表中关系相匹配的记 录,对应于关系中的内 联接的设置结果。 生成的本地视图中包含 Grade表中的全部记录和 子表中关键字段相匹配 的记录,对应于关系中 的左联接的设置结果。 生成的本地视图中包含 Courses表中全部记录和 父表中关键字段相匹配 的记录,对应于关系中 的右联接的设置结果。 生成的本地视图中包含表中所有的记录,对应于关 系中的完全联接的设置结果。 本例中选用默认值:仅包含匹配的行。然后单击【下一步】,进入步骤3 筛选记录。 本地视图向导:步骤3筛选记录 说明:本地 视图向导的筛 选记录与查询 向导的筛选记 录的方式类似 。 在本例中不 筛选记录。 单击【下一步】,进入到本地视图向导的步骤4排序记录。 本地视图向导:步骤4排序记录 说明:在这一步 中设置在本地视图 的记录顺序。 本例中可先按“学 号”排序,学号相同 的再按“课程代号” 排序。 操作方法与建立 查询的记录排序方 法相同。先在“可用 字段”列表框中选择 “学号”,然后单击【添加】,再选择“课程代号”,再单击【添加 】如上图。 排序字段及顺序设置后单击【下一步】,进入本地视图向导: 步骤4a限制记录。 本地视图向导:步骤4a限制记录 限制记录的方法与建立查询的限制记录的方法完全相同。在 本例中仍保持在本地视图中包含所有的记录,因而取默认值, 直接单击【下一步】,进入本地视图向导:步骤5完成。 在第5步中的操作方法也与建立查询的方法相同,现选择“保 存本地视图并浏览”,然后单击【完成】。弹出“视图名”对话框 。 在“视图名”文本框中输入“视图1”。 输入视图名后单击【确 认】按钮,系统显示所建 立的本地视图的结果。本 地视图向导结束。 2.利用视图设计器创建本地视图 通过本地视图向导建立数据库视图虽然方便,快捷,但这仅对入门者如此, 何况用视图向导建立数据库视图最终还要依赖视图设计器。因此,倾向独立 进行开发的程序员来说,仅仅学会使用向导是远远不够的,还应学会使用视 图设计器的强大 功能来创建视图 。 (1) 进入视 图设计器 进入视图设计器 的方法与进入查 询设计器的方法 基本相同,如图 所示。 启动视图设计器方法 新建一个视图可按以下步骤进入视图设计器: 在项目管理器中,单击“数据”选项卡,在列表框中选定“本地视 图”,再单击【新建】按钮,单击【新建视图】按钮。 修改一个视图可按以下步骤进入视图设计器: 在数据库设计器窗口中,单击选定需要修改的视图,选择【数 据库】|【修改】命令。 在数据库设计器窗口中,右击需要修改的视图,在出现的快捷 菜单中选择【修改】命令。 在项目管理器中,单击【数据】选项卡,在列表框中选定需要 修改的视图,单击【修改】按钮。 “视图设计器”工具栏说明 添加表 移去表添加联接 显示SQL窗口最大化上部窗格 添加表:显示“添加表或视图”对话框,从而可以向设计器窗口添 加一个表或视图 移去表:从设计器窗口的上窗格中移去选定的表。 添加联接:在视图中的两个表之间创建联接条件 显示/隐藏SQL窗口:显示或隐藏建立当前视图的SQL语句 最大化/最小化上部窗口:放大或缩小视图设计器的上窗格 (2)从表中选择所需字段 在进行本地视图设计器之前,先建立Classzc表和Department表 ,表结构和数据如下: 通过上述方式之一打开视图设计 器,在进入设计器之前,需要选定 数据库和表,现选定GXGLXT数据 库 ,如右图: 从中选定表Classzc并单击【添加 】按钮,然后单击【关闭】按钮, 启动视图设计器。 视图设计器 进入视图设计器后,第一步先需要选定字段,选定字段可直 接通过字段选项卡进行。其操作方法与查询设计器中选择字段 的方法相同。 “字段”选项卡还有一个【属性】按钮和一个“函数和表达式”文 本框。只要“选定字段”列表框中有一个值,【属性】命令按钮就 成为可选的了。选择【属性】后,出现图: 属性设置可分为五种类型:字段有效性、显示、匹配字段到类 、数据匹配和注释。其中字段有效性、显示、匹配字段到类和 注释在第3章中介绍数据表设计时已经作过说明,视图设计和数 据表设计在字段属性上基本类似。 “函数和表达式”文本框及其按钮: “函数和表达式” 文本框用于输入一个函数和表达式,具体操作 只需单击“函数和表达式”文本框后的对话按钮,在随后出现的 表达式生成器中书写函数或表达式。此选项的功能是为了生成 一个虚拟的字段。 后面的创建步骤与本章前述的用查询设计器设计查询相似, 在此不一一阐述。 (3)建立多表关联 前面主要是针对单一的本地表建立视图,虽然很容易,但它 的实际功能不大。因为在实际开发中,系统的数据库很复杂, 表的关联性很强,用户关心的往往是一些复杂的数据,因此需 要建立多表视图。 从定义上讲,多表视图指的是:视图中的字段来源于两个或两个 以上的表。但是,在视图中表间的关系既不像数据库中的关系是 永久的,也不像表中的关系是暂时的,它不靠索引字段进行联接 ,而是通过定义一个联接表达式来进行联接,表间的关系是松散 的。 可以按如下办法建立表间的联接: 在视图设计器中单击“联接”选项卡即可设置多表间的关联。 在“添加表或视图”对话框中,选定表后,单击【添加】按钮, 当视图设计器中的表在两个及以上时,视图设计器就会为选定的 表建立关联。 说明:用以上的方法建立多表关联,必须有多个表添加到了视图 设计器中。后续的操作方法与设计多表查询相似,除不同点外, 相同的部分这里不再讲述。 下面我们来建立表Department、Classzc、Student、Courses和 Grade五表之间的关联的视图,起名为视图3。 (4)与设计多表查询不相同的部分更新条件 视图的最大特点在于能用视图更新数据,这也是建立视图与建立 查询的主要区别,也是视图的重点所在。视图设计器中的“更新条 件”选项卡可以用来设置允许视图更新表字段的条件。 “更新条件”选项卡选项包括如下内容: “表”:指定视图所使用的哪些表可以修改。选择这个下拉列表 框中的选项,可以确定哪些表中的字段可以在“字段名”列表框 中,以便设置更新条件。此列表中所显示的表都包含了“字段” 选项卡“选定字段”列表中的字段。 【重置关键字】:这个按钮作用是从每个表中选择主关键字字 段作为视图的关键字字段。每个主关键字字段是在“字段名”列 表中的、在钥匙符号下面打一个对钩的字段,关键字字段可 可用来使视图中的修改与表中的原始记录相匹配。 【全部更新】:可以从字段名文本框中看到一些字段前的铅 笔符号下打了一个对钩,这表明这些字段可以更新。在这个按 钮中可以选择除了关键字字段以外的所有字段来进行更新,并 在“字段名”列表的铅笔符号下打一个对钩。 “发送SQL更新”:指定是否将视图记录中的修改传送给原始 表。如果选择了这个复选框,将把在视图中对记录字段的修改 返回到源表中。 “字段名”列表框:显示了从“表”列表框中所选的表中的字段 、并用来输出这些字段,不过这些字段都是可以更新的。在字 段文本框中共有下列3种方式字段: 关键字段(使用钥匙符号作标记),指定该字段是否为关键 字段。 可更新字段(使用铅笔符号作标记),指定该字段是否为可 更新字段。 字段名,显示可标志为关键字字段或可更新字段的输出字段 名。 “SQL WHERE 子句包括”: “关键字段”:如果在原始表中有一个关键字字段被改变,设置WHERE子句 来检测冲突,对于由另一用户对表中原始记录的其他字段所做修改不进行比 较。 “关键字和可更新字段”:设置WHERE子句来检测由某一用户修改了任何可 更新的字段的冲突。 “关键字和已修改字段”:如果从视图首次检索(默认)以后,关键字字段或 原始表记录的已修改字段中,某个字段做过修改,设置WHERE子句来检测冲 突。 “关键字段和时间戳”:如果自原始表记录的时间戳首次检索以后,它被修改 过,设置WHERE子句来检测冲突。只有当远程表有时间戳列时,此选项才有 效。 “使用更新”:此单选按钮组用于指定字段如何在后端服务器上进行更新。 “SQL DELETE然后INSERT”:指定先删除原始表记录后,再创建一个新的 在视图中被修改的记录。 “SQL UPDATE”:指定用视图字段中的内容来修改原始表中的字段。 具体说明如何设置更新条件详见课堂讲解中的更新数据操作。 返回 (5)更新记录 更新条件设置完后,就可再浏览窗口修改更 新的字段,并将更新后的结果回存到表中 (6)保存视图 (7)运行视图 单击“查询”菜单中的“运行查询”命令或单 击工具栏上的“!”按钮,即可运行该视图 文件。 (8)查看SQL语句 单击“查询”菜单中的“查看SQL”命令 3.创建参数化视图 功能:每次运行视图时根据输入值的不同产生不同的查询结果。 这样的视图具有更大的灵活性和更强的适应性。可避免每取一部分 记录值就要建立视图的情况。 创建参数化视图步骤方法: (1)打开视图设计器,从【查询】菜单中选择【视图参数】 命令,此时系统弹出视图参数对话框,如图 (2)在视图参数对话框中输入参数名及其数据类型。 例.建立一个名为“系部代号”的视图参数,此视图参数可以任意取,但 数据类型要和所要查询的记录类型一致。参数名可以是字母字符、数字 和单引号的任意组合。 (3)按下确定按钮,就为此视图建立了一个视图参数了。 下面设计一个带参数的视图: (1)打开“视图设计器”,选定表Classzc、Student、Course和Grade 四个表,并选取. Classzc.系部代号、Classzc.班级名称、Student.学号 、Student.姓名、Course.课程名、Grade.开课学期、Grade.课程成绩 这7个字段名作为输出字段。 (2)在“筛选”选项卡中的“字段名”下拉列表框中选择Classzc.系部代 号,在“条件”列表框中选定“=”,在“实例”文本框中输入“?系部代号”。 这个问号表示引用一个表达式所需要的参数。问号后的文字

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论