VFP查询与视图

上传人:gu****n 文档编号:243095582 上传时间:2024-09-15 格式:PPT 页数:107 大小:1.69MB
返回 下载 相关 举报
VFP查询与视图_第1页
第1页 / 共107页
VFP查询与视图_第2页
第2页 / 共107页
VFP查询与视图_第3页
第3页 / 共107页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,主讲:杜春敏,第3章 数据库、查询与视图,第3章 数据库、查询与视图,学习要点,1、查询向导和查询设计器的使用方法;,2、单表查询和交叉表查询;,3、查询设计器中各选项卡的功能和使用方法;,4、本地视图和远程视图;,5、视图向导和视图设计器的使用方法;,6、使用视图。,查询与视图,第,3,章,查询与视图,3.2 用查询向导设计查询,3.3 用查询设计器设计查询,3.4 创建视图,3.5数据库视图的操作,小 结,返回,退出,3.6利用视图更新数据,3.7利用视图处理自由数据,3.2 用查询向导设计查询,3.2.1 设计单表查询,3.2.2 建立交叉表,返 回,退 出,3.2.1 设计单表查询,查询向导可以引导用户快速设计一个查询。下面将示例使用查询向导设计一个简单的单表查询:从,XGGL,数据库的,Student,表中查询系部代号为“04”且是99级的所有学生的信息。,操作过程如下:首先从“文件,”,开始,选择【新建】 -“查询”,然后单击【向导】按钮,则出现设计查询的方式选择对话框。,单击,选择,XGGL,数据库中的,Student,表,并将该表中的所有字段添加到“选定字段”列表框中。,单击,查询向导字段选取,从中选择,Student.,系部代号,0,在此输入值,4,取,默认值,从中选择“包含”,在此输入值,9,8,单击,单击【预览】按钮可以显示查询结果。根据要求,设置条件如上图。其中,虽然表中没有年级字段,但可通过“学号”得到年级(学号的前二位为年级)。,查询向导筛选记录,选择排序字段,单击【添加】,选择排序方式,调整排序顺序,移动按钮,单击,查询向导记录排序,查询向导限制记录,限制查询结果中所包含的记录数,说明:查询结果中所包含的记录数限制共有四种方式:,1、“部分类型”中选择“所占记录百分比”,“数量”中选择“所有记录”,查询结果集中包含全部记录。,2、“部分类型”中选择“所占记录百分比”,“数量”中选择“部分值”,再在“微调框”中设置数值,查询结果集中包含指定数值百分数的记录。,3、,“部分类型”中选择“记录号”,“数量”中选择“所有记录”,查询结果集中包含全部记录。,4、 “部分类型”中选择“记录号”,“数量”中选择“部分值”,再在“微调框”中设置数值,查询结果集中包含指定数值的记录数。,单击,取,默认值,查询结果集中包含全部记录,查询向导完成,将查询以文件的形式(.,QPR),保存到一个指定的目录中。,将查询保存到一个指定的目录中并运行该文件。,利用查询向导设计的查询功能有限,可以使用查询设计器修改它。,单击,可以查看查询结果集中的全部数据,打开,帮助文件,取消所建立的查询,返回到向导的上一步,结束向导,完成查询设计。,单击,保存设计的查询,目录选择下拉列表框,文件名输入文本框,文件类型选择下位列表框,在“文件名输入文本框”中输入“,Stud_query”,后,单击【保存】按钮,结束查询设计过程。,在,项目管理器中的“数据”选项中的查询项下产生了一个查询文件,返回,3.2.2 建立交叉表,如果在上文所述的建立查询的第一步选择“交叉表向导”,则可以建立交叉表。下面通过示例来介绍如何建立交叉表。用,Grade,表中的数据建立一个交叉表,以显示每个学生所有课程的总成绩。,Grade,表中的部分数据如:,前面的设计过程同以上内容,但是在第二步需要确定交叉表的行和列 。,交叉表设计向导字段选取,选择数据库和表,选定字段,单击,单个字段选定按钮,全部字段选定按钮,单个字段撤消按钮,说明:在这一步先在“数据库和表”一选择一个数据库,再选择用以建立交叉表的数据表,然后再从可用字段列表框中选择要用的字段,交叉表只用三个字段,这一步可多选 字段。,全部字段撤消按钮,单击,交叉表向导定义布局,说明:,(1)行,将要加入到交叉表中的第一个字段名,本示例中选择字段“学号”;,(2)列,将要加入到交叉表中的从第二个字段开始的若干个字段的字段名,注意这些从源表中选择的数据不能超过254个。本示例中选择字段“课程代号”;,(3)数据,对应行和列的运算结果,本示例中选择“课程成绩”。,按提示操作:从可用字段列表框中将“学号”字段拖入“行”框,将“课程代号”拖入“列”框,将“课程成绩”拖入“数据”框。,单击,交叉表查询向导加入总结信息,说明:,这一步的操作,决定在生成的交叉表中要加入的一个字段的内容。,(1)求和:求出对应行和列的数据字段的和;,(2)计数:求出对应行和列的数据字段的数目;,(3)平均值:求出对应行和列的数据字段的平均值;,(4)最大值:求出对应行和列的数据字段的最大值;,(5)最小值:求出对应行和列的数据字段的最小值。,本示例中选择“求和”运算。如果不想加入总结信息,可以在“分类汇总”中选择“无”。,单击,交叉表向导完成,将交叉表查询以文件的形式(.,QPR),保存到一个指定的目录中。,将交叉表查询保存到一个指定的目录中并运行该文件。,将交叉表查询保存到一个指定的目录中并打开“查询设计器”修改它。,对于值为空的记录是否以.,NULL.,填充,说明,:,系统默认值是“保存交叉表查询”和“显示,NULL,值”。,选择“保存并运行交叉表查询”后单击,交叉表保存及运行结果,按上,一步,的操作完成后,进行到“另存为”对话框中,将该查询取名为,Grad_Query,,然后保存在默认的目录中。,保存后,系统进入到数据查询过程,稍候系统将查询结果显示出来。如:,从中可以看到,凡是没有数据的栏,就被,.,NULL.,值填充,且有许多数据丢失,。,交叉表可以用数据过滤处理,在下一节中介绍。,返回,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、在“项目管理器”中选择“数据”选项卡,从“查询”项中选择一个已存在的查询文件,再单击【修改】,也,启动“查询设计器”,。,从【文件】菜单启动查询设计器,选择系统菜单中的【文件】|【新建】命令,在“新建”对话框中选中“文件类型”下的“查询”单选项,再单击右边的【新建文件】按钮,也可启动“查询设计器”;,使用,CREATE,QUERY,命令,也可启动“查询设计器”,查询设计器下部分的窗口中有几个选项卡,其含义简介如下:,(1)“字段”:用来选定包含在查询结果中的字段;,(2)“排序依据”:用来决定查询结果输出中记录或行的排列顺序;,(3)“联接”:用来确定各数据表或视图之间的联接关系;,(4)“筛选”:相当于命令,SET FILTER TO,,利用过滤的方法查找一个特定的数据子集;,(5)“分组依据”:所谓分组就是将一组类似的记录压缩成一个结果记录,这样就可以完成基于一组的计算。,返回,查询设计器窗口,查询文件设计与创建步骤,要设计一个查询文件,首先必须明确查询的目的是什么,即想要得到哪些数据,并以什么方式存在;或者想要得到满足某些条件的特定记录,或者想要知道某些记录的字段值组合成的表达式按某一方式输出。明确了输出的数据后,就可以开始设计查询了,一般要通过以下几个步骤进行:,(1)启动查询设计器;,(2)选择出现在查询结果中的字段;,(3)设置选择条件来查找可给出所需结果的记录;,(4)设置排序或分组选项来组织查询结果;,(5)选择查询结果的输出类型:表、报表、浏览等;,(6)运行查询。,3.3.1 确定各表间的联接关系,示例,:创建一个含有多个表中信息的查询。在,XGGL,数据库中有三个表:,Student,、,Grade,、,Courses,,,现在想知道学号前四位是,9904,和,9804,的所有学生考试的成绩。,当在多个表或视图间进行查询时,需要指出这些表或视图间的联接关系。,操作方法如下:,启动查询设计器,在“添加表和视图”对话框中从“数据库”中选择,GXGLXT,库,在“数据库中的表”中选择,Student,表,单击【添加】按钮,再选择,Grade,表,再单击【添加】,,此时系统自动弹出一个“联接条件”,询问是否根据两表中都有的“学号”字段建立内部联接,单击“确定”,两表间就有了一条连线,代表它们之间的联接。然后再添加,Courses,表,最后关闭对话框。,在“查询设计器”中选择“联接”选项卡,如图:,(1),Inner Join:,内部联接,指定只有满足联接条件的记录包含在结果中,此类型是默认的,也是最常用的;,(2),Right Outer Join:,右联接,指定满足联接条件的记录,以及满足联接条件右侧的表中记录(即使不匹配联接条件)都包含在结果中;,(3),Left Outer Join:,左联接,指定满足联接条件的记录,以及满足联接条件左侧的表中记录(即使不匹配联接条件)都包含在结果中;,(4),Full Join:,完全联接,指定所有满足和不满足联接条件的记录都包含在结果中。,如果想修改各表间的联接,双击查询设计器上部窗口表之间的连线,系统将弹出“连接条件”对话框;或者通过打开查询设计器下部的“联接”选项卡进行。一般不应随便更改连接条件,不然会与实际数据间的关系不符。,在,VFP6,中表间的联接有四种类型,分别是:,“条件”列表中包含如下几项:,(1)=:指字段值与实例相等;,(2),LIKE:,表示“字段名”栏中给出的字段值与“实例”栏中给出的文本值之间执行不完全匹配,它主要针对字符类型。例如,如设置查询条件为“,Student.,学号,LIKE 9904”,,那么诸如“学号”字段前四位为9904的记录都满足该条件;,(3)=:表示在“字段名”栏中给出的字段值与“实例”栏中给出的文本值之间执行完全匹配检查,它主要是针对字符型。,(4):即为“字段名”栏中给出的字段的值应大于“实例”栏中给出的值;,(5)=:即为“字段名”栏中给出的字段的值应大于或等于“实例”栏中给出的值;,(6):即为“字段名”栏中给出的字段的值应小于“实例”栏中给出的值;,(7)、=、=,FilterCondition,:,指定包含在查询结果中的记录必须满足条件。筛选条件的数目没有限制,只要将它们用.,AND.,或.,OR.,操作符连接起来即可。也可以使用操作符.,NOT.,对逻辑表达式取反,或使用,EMPTY(),函数检查字段是否为空等。,GROUP BY,GroupColumn,:,按列的值对查询结果进行分组。,GroupColumn,可以是常规的表字段名,也可以是一个包含,SQL,字段函数的字段名,还可以是一个数值表达式指定查询结果表中的列位置。,HAVING,FilterCondition,:,指定包含在查询结果中的组必须满足的条件。它应和,GROUP BY,GroupColumn,一起使用。,UNION ALL,SELECTCommand,:,把一个,SELECT,语句的最后查询结果同另一个,SELECT,语句最后的查询结果组合起来。,ALL,防止,UNION,删除组合结果中的重复行。,ORDER BY Order_Item :,根据列的数据对查询结果进行排序。每个,Order_Item,都必须对应查询结果中的一列。,用,SELECTSQL,命令完成上节的设计任务:,SELECT,Department.,系部名称,Classzc,.,班级名称,Student.,学号, ;,Student.,姓名,Course.,课程名,Grade.,课程成绩;,FROM,gxglxt,!department INNER JOIN,gxglxt,!,classzc,;,INNER JOIN,gxglxt,!student;,INNER JOIN,gxglxt,!grade;,INNER JOIN,gxglxt,!course ;,ON Grade.,课程代号 =,Course.,课程代号 ;,ON Student.,学号 =,Grade.,学号 ;,ON,Classzc,.,班级代号 =,Student.,班级代号 ;,ON Department.,系部代号 =,Classzc,.,系部代号;,WHERE,Classzc,.,系部代号 = 04;,.,AND. Grade.,开课学期 = 第1学期;,ORDER BY,Student.,学号;,INTO CURSOR,视图1,运行该,SELECT,语句后,选择【显示】|【浏览“视图1”】屏幕显示如图:,返回,3.4.3 创建远程视图,1、 用视图向导创建远程视图,创建使用远程数据(,ODBC),的视图,必须存在一个数据库来保存视图,同时还需要存在数据源或命名连接。如果没有打开数据库,系统将提示打开数据库或创建数据库。,在运行“远程视图向导”之前,可以在“选项”对话框的“远程数据”选项卡上设置远程视图和连接的默认选项。也可以在“连接设计器”中创建连接。,如果要利用远程视图向导创建远程视图,则选择【文件】|【新建】命令,在弹出的新建对话框中选中远程视图,然后单击【向导】按钮。就会进入远程视图向导对话框中。或者在数据库设计器工具栏中单击【新建远程视图】按钮,选择使用向导。,创建远程视图主要有以下步骤:,1、,数据源选取,2、,字段选取,3、,为表建立关系,4、,包含记录,5、,排序记录,6、,筛选记录,7、,完成,在第一步数据源选取中,可以在可用的数据源列表框中选择一种,ODBC,数据源或者一个已经建立的连接。如果选择的是一种未连接任何数据源的,ODBC,数据源,系统将显示一个“确认连接”对话框,从中选择一个数据源。当选择的,VFP Tables,或,VFP,Databases,时,会打开建立数据源对话框。在此对话框中为数据库选择一种类型,同时在,Path,中输入远程数据源的文件名或者使用【,Browse】,按钮选择一个文件作为远程数据源。,选择数据源以后,向导就会进入下一步,以后的步骤与本地视图及创建查询没有太大的差别,在此不再赘述。,2、利用视图设计器创建远程视图,创建新的远程视图首先必须要有同数据源的连接。,在数据库设计器中单击鼠标右键选择【新建远程视图】或者在【文件】下的【新建】命令,在新建对话框中选择远程视图,并单击【新建文件】按钮。此时会显示选择连接或数据源对话框,在此对话框中选择连接或者可用的数据源。如图。,如果已经存在定义的连接,该对话框中就显示所定义的连接。如果要定义新的连接,可单击【新建】按钮,出现图示的“连接设计器”。,在数据源下面的下拉选项框中选择,Visual FoxPro Database,项,其它项均采用系统默认设置,然后选择【验证连接】按钮。如果为这个连接指定了一个数据库,则会出现“连接成功”的提示信息,否则,将出现如图所示的连接配置(,Configure Connection),对话框。,在该对话框中选择【,Browse】,后将出现图示的“选择数据库”(,Select Database),对话框。,在此对话框中可以选择本地存在的数据库或网上邻居中设置为共享的数据库。然后选择【打开】,就会在“连接配置,Configure Connection”,对话框中“,Path”,后的文本框中加入所添加的数据库文件名及其所在的路径,如“092,FOXPRO,上机操作,Visualfp,.,dbc,”。,然后按【,OK】,,系统会告诉“连接成功”。,然后再在“连接设计器”中单击【确定】,接着弹出“保存对话框”,默认的连接名为“连接1”,可以采用默认的连接名,也可以重命名连接名,再单击【确定】。,在保存连接后,“远程视图设计器”进入“打开”对话框。,在视图设计器中对加入的表创建远程视图的操作与建立本地视图的操作一样,此处不再赘述。,3,、,控制如何检查更新冲突,如果在一个多用户环境中工作,服务器上的数据也可以被别的用户访问,也许别的用户也在试图更新远程服务器上的记录,为了让,VFP,检查用视图操作的数据在更新之前是否被别的用户修改过,可使用更新条件选项卡上的选项。,在更新条件选项卡中,,SQL WHERE,子句包括框中的选项可以帮助管理遇到多用户访问同一数据时应如何更新记录。 在允许更新之前,,VFP,先检查远程数据源表中的指定字段,看看它们在记录被提取到视图中后有没有改变,如果数据源中的这些记录被修改,就不允许更新操作。,在“更新条件”选项卡中可以设置,SQL WHERE,子句。,这些选项决定哪些字段包含在,UPDATE,或,DELETE,语句的,WHERE,子句中,,VFP,正是利用这些语句将在视图中修改或删除的记录发送到远程数据源或源表中,,WHERE,子句就是用来检查自从提取记录用于视图中后,服务器上的数据是否已改变。,关键字段:当源表中的关键字段被改变时,使更新失败。,关键字和可更新字段:当远程表中任何标记为可更新的字段被改变时,使更新失败。,关键字和已修改字段:当在本地改变的任一字段在源表中已被改变时,使更新失败。,关键字和时间戳:当远程表上记录的时间戳在首次检索之后被改变时,使更新失败(仅当远程表有时间戳列时有效)。,4、定制视图,同本地视图一样,可以在远程视图中包含表达式,设置提示输入值,也可以设置高级选项来协调与服务器交换数据的方式,(1)控制更新方法,若要控制关键字段的信息实际上在服务器上更新的方式,可使用视图设计器中更新条件选项卡中“使用更新”中的选项。如图,当记录中的关键字更新时,这些选项决定发送到服务器或源表中的更新语句使用什么,SQL,命令。,可指定先删除记录,然后使用在视图中输入的新值取代原值(,SQL DELETE,然后,INSERT),,也可指定使用服务器支持的,SQL UPDATE,函数来改变服务器的记录。,(2)在远程视图中添加表达式,若要在视图中添加表达式,可在“筛选”选项卡中,从“字段名”框中选择“表达式”。,当视图基于远程数据源时,在“表达式设计器”中显示的函数反映了服务器所支持的函数。可以查看服务器文档中列出的该服务器所支持的函数列表,,VFP,不对构造的表达式作语法分析,而是将它们发送到远程服务器上。,5,、,建立连接,使用远程视图,无需将所有记录下载到本地计算机上即可提取远程,ODBC,服务器上的数据子集。可以在本地机上操作这些选定的记录,然后把更改或添加的值返回到远程数据源中。,有两种连接远程数据源的方法,可以直接访问在机器上注册的,ODBC,数据源,也可以用连接设计器设计自定义连接。,在安装,VFP,时,选择,VFP,的“完全”或“自定义”安装选项,就可以把,ODBC,安装在系统中。,如果想为服务器创建定制的连接,可以使用连接设计器,创建的连接将作为数据库的一部分保存起来,并含有如何访问特定数
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!