版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据查询与视图第1页,共71页,2023年,2月20日,星期六第五章数据查询与视图
对于数据表,我们虽然可以利用直接查询或索引查询的命令,查找给定条件的记录,但是每次查找都要临时设定查询条件。VFP提供了利用查询设计器创建查询文件保留查询结果,使查询更为方便。视图与查询类似,它不但具有查询功能,还可以修改查询的数据并返回数据源。第2页,共71页,2023年,2月20日,星期六利用查询设计器建立查询文件启动查询设计器可以采用下面几种方式:(1)在系统[文件]菜单中选择[新建]命令,在[新建]窗口中选择“查询”文件类型,并选择[新建文件]方式(另有[向导]方式)。(2)打开某项目文件启动[项目管理器],在[数据]选项页中选择“查询”,然后单击[新建]按钮弹出“新建查询”窗口,单击[新建查询]方式按钮(另有[查询向导]方式按钮)。(3)在命令窗口执行CREATEQUERY<查询文件名>命令。第3页,共71页,2023年,2月20日,星期六§5.1数据查询§5.1.1利用查询设计器建立查询文件利用查询设计器可以设置查询的条件,并将查询条件存储在查询文件.QPR中,而且还可以对查询结果加以排序、分类,还能够在查询文件中将查询存储为图形、报表等多种输出格式。1.建立查询文件利用查询设计器建立查询文件的过程如下:(1)选择查询数据源的数据库及数据库中的数据表或视图;(2)选择在查询结果中需要输出的字段;(3)设置查询记录的条件;(4)设置用排序及分组形式组织查询结果及排序、分组的条件;(5)选择查询结果输出的类别,可以是表文件、报表、浏览窗口等。第4页,共71页,2023年,2月20日,星期六利用查询设计器建立查询文件在启动[查询设计器]后,按如下步骤建立查询文件:(1)添加表或视图首先出现[添加表或视图]窗口,可以在相应的数据库中选择所需要的表或视图,作为查询数据源添加到查询设计器中。[查询设计器]被分成上下两部分,上部分主要用于增、删查询所需的表或视图;下部分主要用于对查询进行设置。(2)选择查询所需字段用来选定在查询文件中输出显示的字段。在[字段]选项页的[可用字段]列表框中选择字段,再按[添加]按钮添加到[选定字段]列表框中,还可以添加表达式进行显示。选定字段的顺序就是查询输出的顺序,可以通过左侧的“上下箭头”按钮调整显示顺序。第5页,共71页,2023年,2月20日,星期六利用查询设计器建立查询文件步骤(3)设置数据表之间的联接关系如果查询涉及到多个表或视图数据的联接关系,可以在[联接]选项页中设置。(4)确定查询条件查询的记录往往是满足一定条件的记录,这是通过设定查询的筛选条件来实现。在[筛选]选项页中,用关系表达式或逻辑表达式定义筛选条件。表达式的字段名从“字段名”下拉列表中选取;关系运算符从“条件”下拉列表中选取;查询比较的具体值从“实例”文本框中输入;逻辑运算符从“逻辑”下拉列表中选取;逻辑“否”可选择“否”选项。第6页,共71页,2023年,2月20日,星期六利用查询设计器建立查询文件步骤(5)确定查询结果排序方式对于查询结果可以将记录按一定顺序排列。在[排序数据]选项页中,在“选定字段”列表中选择字段,按“升序”或“降序”排序方式添加到“排序条件”列表中,可以确定依次按几个字段的值进行排序。如果不设置筛选条件,在此可完成对数据表所有记录的排序,并可将结果输出到另一表中。(6)对查询结果进行分组对于查询结果可以按指定字段依次对它们进行分组操作。分组操作就是将同类的记录合并、汇集到一个记录中(同类最后一条记录),进行如SUM(求和)、COUNT(统计记录数)、AVG(求平均值)等操作。第7页,共71页,2023年,2月20日,星期六利用查询设计器建立查询文件步骤(7)设置查询结果的输出方式查询结果可以输出到报表、标签、图形、表及临时表等文件。(8)运行查询当查询都设置好后,在右键快捷菜单或系统“查询”菜单中,选择[运行查询]项,将执行通过[查询设计器]而建立的SQL语句,并将结果按设置的输出方式输出。(9)保存查询文件可以在系统[文件]菜单中的[保存]或[另存为]选项中存储查询文件。当关闭[查询设计器]时也可以保存文件。查询文件的扩展名为.QPR。第8页,共71页,2023年,2月20日,星期六利用查询设计器建立查询文件2.设定查询结果的输出格式当建立完查询文件,再运行该查询文件时,查询结果以浏览格式显示在屏幕上,这是默认的输出格式。利用系统[查询]菜单的[查询去向]或快捷菜单的[查询去向]选项,可设定查询结果的输出格式。有七种输出格式可供选择。(1)浏览:结果显示在浏览窗口。(2)临时表:查询结果存储在暂时的只读表文件中。(3)表:查询结果存储在一个表文件中,还可以将表添加到数据库中成为数据表。(4)图形:将查询结果输出为图形文件显示。(5)屏幕:将查询结果输出在屏幕,并可输出到文本文件及打印机。(6)报表:将查询结果输出到报表文件中。(7)标签:将查询结果输出到标签文件中。第9页,共71页,2023年,2月20日,星期六利用查询设计器建立查询文件3.设定查询结果输出为图形4.多重条件查询查询条件是在[筛选]选项页中,针对某一字段用关系表达式来表示。若有几个查询条件,可以用逻辑运算符AND及OR把这几个条件连接为逻辑表达式表示出来。例:(男工资查询.QPR)字段名否条件实例大小写逻辑Rsda.基本工资>=800ANDRsda.性别=“男”第10页,共71页,2023年,2月20日,星期六利用查询设计器建立查询文件5.多数据表查询可以对多个数据表相关数据进行同时查询,并将各数据表查询的相关数据同时一起输出。首先把所有有关的表添加到查询中,再用公共字段联接这些表。以后再查询所有这些表中的记录时,就会输出查询所需要的信息。在查询中可以使用数据表、自由表、本地或远程视图的任意组合。第11页,共71页,2023年,2月20日,星期六创建多表查询视图1)向查询中添加表及视图
在查询中添加表及视图的步骤:(1)在[查询设计器]工具栏中单击[添加表]按钮;或者在右键快捷菜单中选择[添加表]命令;也可以在系统[查询]菜单中选择[添加表]命令。(2)进入[添加表或视图]对话框中,首先[选定]添加的是“表”或“视图”,然后从[数据库]下拉列表中选择数据库,当选定表时从[数据库中的表]下拉列表中选择数据。也可以从[其他]按钮弹出的[打开]对话框中选择其他表和视图。第12页,共71页,2023年,2月20日,星期六创建多表查询视图2)建立和修改表之间的联接当向查询中添加表或视图时,VFP会根据匹配的字段(一般是相同字段名)建议一个可能的表或视图之间的联接。如果使用的数据库中已具有表或视图之间的永久关系,VFP就利用这些已有关系作为默认的联接。但是,如果表或视图相关的字段名不匹配,或者另有要求,则必须自己创建或修改表间的联接。第13页,共71页,2023年,2月20日,星期六创建多表查询视图
创建表之间联接的方法:(1)在[查询设计器]中的上半部分,从一个表中拖动某一字段,到另一表中某一字段上,便建立了这两个表之间的联接,并显示连线表示该联接。建立联接时应把父表放左边,子表放在右边。(2)或从[查询设计器]工具栏上选择[添加联接]按钮,这时显示出[联接条件]对话框。在上部左、右两个字段下拉列表中,从两个表中各选择相关的字段名,建立这两个表的联接。第14页,共71页,2023年,2月20日,星期六创建表之间联接
左、右两个表所建的联接有下面四种联接类型可供选择:内部联接:(查询)两个表中仅满足联接条件的记录,为默认联接类型。左联接:(查询)联接条件左边表(父表)的所有记录和联接条件右边表(子表)满足联接条件的记录。右联接:(查询)联接条件右边表(子表)的所有记录和联接条件左边表(父表)满足联接条件的记录。完全联接:(查询)两个表的所有记录、不论是否满足联接条件。后三种联接类型是建立两个表联接字段的不精确匹配。第15页,共71页,2023年,2月20日,星期六创建和修改表之间联接(3)也可以在[查询设计器]的[联接]选项页,创建和修改联接。用任何一种方法建立的表间联接在[联接]选项页中都能看到,并可以对已建立的联接进行修改,也可以建立新联接。从“字段名”项中选择左表(父表)的联接表及字段或表达式;从“值”项中选择右表(子表)的联接表及字段或表达式;从“类型”项中选择联接类型:内部连接、左联接、右联接、完全联接;从“条件”中选择联接的关系条件;从“逻辑”中选择AND或OR对两个联接条件建立逻辑关系。第16页,共71页,2023年,2月20日,星期六创建和修改表之间联接此外,从左边的“上下箭头”按钮调整联接条件的先后次序,从左边的“左右箭头”按钮,调出[联接条件]对话框,对联接条件和联接类型进行修改。通过[插入]、[移去]按钮插入或移去联接。
注意:由于一个父表只能与一个子表建立联接,一个子表也只能与一个父表联接,在建立多个表之间的联接时,应采用串联的多级联接。另外,联接条件与筛选条件类似,两者都先比较值,然后选出满足条件的记录。不同之处在于筛选条件是将字段值与筛选值比较,而联接条件是两个表的联接字段值进行比较。第17页,共71页,2023年,2月20日,星期六创建和修改表之间联接3)修改和删除联接修改联接的步骤与创建联接类似。删除联接,可以在[查询设计器]中单击选定联接线(变粗),再从[查询]菜单中选择[移去联接条件];或者在选定联接线后,按DEL键;也可以在[联接]选项卡中选择联接“条件”,然后选择[移去]按钮。第18页,共71页,2023年,2月20日,星期六创建多数据表查询4)多数据表查询举例(见“学生多表查询.QPR”)对数据表XSDA.DBF(学生档案):学号、姓名、性别;GKCJ.DBF(各科成绩):学号、英语、计算机;XXCJ.DBF(选修成绩):学号、课程、成绩。查询每个学生的各科成绩及选修课成绩。输出字段选择:XSDA.学号;XSDA.姓名;XSDA.性别;GKCJ.英语;GKCJ.计算机;XXCJ.课程;XXCJ.成绩。联接条件:类型字段名条件值逻辑(左联接)LiftOutrJoinXSDA.学号=GKCJ.学号(左联接)LiftOutrJoinGKCJ.学号=XXCJ.学号第19页,共71页,2023年,2月20日,星期六6.分组查询举例分组是将同类记录合并、汇集到一条记录中,并对同类记录进行运算和操作。例:对RSDA.DBF人事档案数据表,分别查询男、女及结婚、未婚的基本工资合计。(见“男女工资查询.QRP”)输出字段:RSDA.编号,RSDA.性别,RSDA.婚否,RSDA.基本工资,SUM(RSDA.基本工资)。分组字段:RSDA.性别,RSDA.婚否。查询结果:(见查询输出)第20页,共71页,2023年,2月20日,星期六7.查询文件的维护1)执行查询(1)在[查询设计器]中,选择系统[查询]菜单的[运行查询]命令,或右键快捷菜单的[运行查询]命令。(2)打开某项目在[项目管理器]中,选择某数据库并将其展开,选择该数据库的某查询,再选择[运行]按钮。(3)在命令方式或程序方式用DO<查询文件>命令执行查询文件。2)修改查询文件在[项目管理器]中选择查询文件,再单击[修改]按钮,便可进入[查询设计器]进行修改。第21页,共71页,2023年,2月20日,星期六查询文件的维护3)查看查询文件用[查询设计器]创建的查询,最后转换为SQL查询命令存储在.QRP查询文件中。查询文件中并不包含查询结果,而是执行查询文件时,查询数据表或视图产生查询结果。在[查询设计器]中,选择系统[查询]菜单的[查看SQL]命令,或选择[查询设计器]工具栏的[SQL]按钮,可以查看查询文件中的SQL命令。(只读方式,但可以复制)第22页,共71页,2023年,2月20日,星期六查询文件的维护4)为查询文件加注释在[查询设计器]窗口,选择系统[查询]菜单的[备注]命令,出现[备注]对话框,即可加注释。所加注释以注释语句写到查询文件中。第23页,共71页,2023年,2月20日,星期六§5.1.2利用查询向导建立查询文件1.启动查询向导可以用三种方法启动查询向导:1)从项目管理器中启动查询向导在项目管理器[数据]选项中,选中“查询”再单击[新建]按钮,出现[新建查询]对话框,单击其中的[查询向导]按钮。在查询向导中有三种选择:(1)查询向导:创建一个标准查询。(2)交叉表格查询:创建的查询用电子数据表格形式显示。(3)图形向导:在MicrosoftGraph中创建VFP表中数据的图形。第24页,共71页,2023年,2月20日,星期六利用查询向导建立查询文件2)利用系统[工具]菜单启动查询向导在系统[工具]菜单中,选择[向导]下级菜单,选择“查询”后进入[向导选取]对话框。有五种向导可选择,这里除了前面的三种向导外又增加了两种向导:(1)本地视图向导:用本地数据创建视图。(2)远程视图向导:用远程数据创建视图。这实际是两个视图向导。3)利用新建命令启动查询向导在系统[文件]菜单中,选择[新建]命令;或在系统工具栏中选择[新建]按钮。出现[新建]对话框,在“文件类型”中选择[查询],再单击[向导]对话框。出现[向导选取]对话框,选择[查询向导]。第25页,共71页,2023年,2月20日,星期六利用查询向导建立查询文件2.利用查询向导设计查询文件1)选择数据源在向导[步骤1-字段选取]对话框中,选择数据库及库中的数据表和视图,以及自由表作为数据源。首先从一个表或视图中选择字段并移到“选定字段”框中,作为查询的输出字段。可以依次选择多个表或视图中的字段,进行多表查询。2)建立表间联接如果是多表查询就进入[步骤2-为表建立关系],分别从左边下拉列表中选择父表联接字段,从右边下拉列表选择子表联接字段,再通过[添加]按钮将联接添加到查询文件中。第26页,共71页,2023年,2月20日,星期六利用查询向导建立查询文件3)包含记录单击下一步进入[步骤2a—记录选取]对话框,在此选择联接类型,可以从四种联接类型中选择一种。仅包含匹配的行—-内部联接(父)表中所有行——左联接(显示父表名)(子)表中所有行——右联接(显示子表名)两张表中的所有行——完全联接第27页,共71页,2023年,2月20日,星期六利用查询向导建立查询文件4)筛选记录向导[步骤3—筛选记录],设置查询筛选条件。分别通过“字段”、“操作符”、“值”框及“与”、“或”单选按钮,建立关系表达式及逻辑表达式,作为筛选条件。5)确定排序次序
[步骤4—排序记录]确定输出的排序顺序,可以依次选定排序字段及升、降序。第28页,共71页,2023年,2月20日,星期六利用查询向导建立查询文件6)限制记录如果不希望查询显示整个表的所有记录。可在[步骤4a—限制记录]中,选择部分记录显示,只有选择了排序次序后,才能在排序的结果中显示部分记录。在“部分类型”中可选择,是按“所占记录百分比”选择“数量”,还是按“记录号”选择“数量”。在“数量”单选框中,有“所有记录”和“部分值”的选择,在选择“部分值”后可以给出数量。通过查询向导创建的查询文件,可以在[查询设计器]中,进行进一步的详细修改。第29页,共71页,2023年,2月20日,星期六利用查询向导建立查询文件3.交叉表格向导交叉表中每一个数据视为行、列交叉点上,该数据的含义取决于行、列含义及所属行、列位置,(例如课程表)。它类似Excel电子表格的形式。设计交叉表的数据源一般应具有两个字符字段,作为交叉表的行、列标题;另有一个数值字段。作为交叉表的数据或进行某种运算的数据源(也允许为其它类型的字段)。第30页,共71页,2023年,2月20日,星期六利用查询交叉表格向导建立查询文件(1)选择字段确定交叉表查询中所需的字段。从[步骤1—字段选取]对话框中,选择数据库或自由表,从中选择表和视图,然后选择所需字段。(2)设置交叉表布局从[步骤2—定义布局]对话框中,确定交叉表查询的布局。将“可用字段”中的字段分别拖至交叉表的[行]、[列]、[数据]框中。第31页,共71页,2023年,2月20日,星期六利用查询交叉表格向导建立查询文件(3)为交叉表添加分类汇总列从[步骤3—加入总结信息]对话框中,确定是否需要为交叉表添加分类汇总列,选择每行所需的总计类型。汇总结果在交叉表查询输出的最后一列显示。其中“总结”单选框中为统计类型,有求和、计数、平均值、最大值和最小值五种。“分类汇总”单选框中提供四种汇总选项:数据求和:对表中每行数据求和。包含数据的单元格数目:统计每行有多少单元格中有数据。占整个表总计的百分比:计算每行数据的总和,占整个表数据总和的百分比。无:不进行统计,不出现统计列。第32页,共71页,2023年,2月20日,星期六利用SQL查询语句建立查询文件§5.1.3利用SQL—SELECT查询语句建立查询文件SQL(StructuredQueryLanguage)是结构化查询语言,它可以嵌入到其它高级语言的程序中,已由美国国家标准局批准为关系型数据库的标准。SQL的主要功能就是对数据表和视图的查询,特别是对于多个数据表或视图之间的数据查询。这是通过一条SELECT查询语句来完成。一个查询文件中就是包含一条SELECT语句,它也可以放到程序中。在[查询设计器中]通过查询的设置,系统转化为一条SELECT语句写到查询文件中(.QPR)。第33页,共71页,2023年,2月20日,星期六利用SQL查询语句建立查询文件1.SELECT语句的基本格式在SELECT语句中要说明查询输出的字段和数据源。[格式]SELECT[<表别名.>]<字段名1>[AS<标题>][,[<表别名.><字段名2>[AS<标题>],…]FROM[<数据库名>!]<表名>
说明:(1)“字段名”为查询的数据表、自由表及视图所输出的字段名;“表别名”为打开表所定义的别名,默认为表文件名;“标题”是代替字段名作为栏目名输出。如果输出某表的所有字段可用*表示这些字段。(2)FROM短语表示出数据源,如果是数据表在表名前以
<数据库名>!的格式表示。例:SELECTRsda.编号,Rsda.姓名,Rsda.性别FROM人事管理!rsda第34页,共71页,2023年,2月20日,星期六利用SQL查询语句建立查询文件2.筛选记录用WHERE短语定义筛选条件。[格式]WHERE<条件表达式>说明:条件表达式一般用关系表达式或逻辑表达式表示。(见“男工资查询.QPR”)例:SELECT*
FROM人事管理!rsdaWHERERsda.基本工资>=800ANDRsda.性别=”男”第35页,共71页,2023年,2月20日,星期六利用SQL查询语句建立查询文件3.排序记录用ORDERBY短语定义排序字段。[格式]ORDERBY<字段1>[ASC|DESC][,<字段2>[ASC|DESC]…]说明:ASC为升序,DESC为降序,默认为升序。(见“男工资查询.QPR”)例:SELECT*
FROM人事管理!rsdaORDERBYRsda.基本工资第36页,共71页,2023年,2月20日,星期六利用SQL查询语句建立查询文件4.对查询分组用GROUPBY短语定义查询分组。[格式]GROUPBY<字段1>[,<字段2>,…][HAVING<条件表达式>]说明:按指定字段进行分组、汇总。在分组时如果包含条件,用HAVING后的关系表达式或逻辑表达式表示。(见“男女工资查询.QPR”)例:SELECTRsda.编号,Rsda.性别,Rsda.婚否,Rsda.基本工资,SUM(Rsda.基本工资)AS“工资合计”
FROM人事管理!rsdaGROUPBYRsda.性别,Rsda.婚否HAVINGRsda.基本工资>=500第37页,共71页,2023年,2月20日,星期六利用SQL查询语句建立查询文件5.多表联接查询多表查询要在FROM短语中,对数据源定义表之间的联接类型,在ON短语中定义联接条件。[格式]FROM[<数据库名>!]<主表名><联接类型><联接子表名>[<联接类型><联接子表名>…]ON<联接条件表达式><联接条件表达式>…]说明:(1)在多表联接时,一个父表只能联接一个子表,同样一个子也只能被一个父表所联接,形成串联联接。因此,在FROM<主表名>后,依次给出每一个联接的联接类型和联接子表名。(2)每一个联接要用一个ON短语的<联接条件表达式>指定联接条件。指定联接条件的顺序应与联接的顺序相反。第38页,共71页,2023年,2月20日,星期六多表联接查询举例例:*查询每个学生的各课程绩及选修课成绩(“学生多表查询.QPR”)SELECTXsda.*,Gkcj.英语,Gkcj.计算机,Xxcj.课程,Xxcj.成绩;FROM学生管理!xsdaLEFTOUTERJOIN学生管理!gkcj;LEFTOUTERJOIN学生管理!xxcj;ONGkcj.学号=Xxcj.学号;ONXsda.学号=Gkcj.学号;WHEREGkcj.英语>=60;ANDGkcj.计算机>=60;ORDERBYXsda.学号第39页,共71页,2023年,2月20日,星期六利用SQL查询语句建立多表联接查询(3)联接类型InnerJoin——
内部联接LeftOuterJoin——左联接RightOuterJoin——右联接FullJoin——完全联接第40页,共71页,2023年,2月20日,星期六利用SQL查询语句建立查询文件6.查询结果输出方式查询输出默认到浏览窗口。用INTO短语定义查询结果输出方式。(1)[格式]INTOCURSOR<临时表名>(输出到临时表)|TABLE<表名>(输出到自由表)(2)[格式]TOFILE<文本文件名>(输出到文本文件)|TOPRINTER(输出到打印机)|TOSCREEN(输出到主窗口)第41页,共71页,2023年,2月20日,星期六§5.2创建和使用视图查询的运行结果是只读的,只能显示不能修改。视图与查询类似,根据要求可以从表中提取符合条件的一组记录,但是视图可以改变这些记录的值,并把更新的结果送回到源表中。视图兼有查询和表的特点:与查询相类似的是,可以从一个或多个相关联的表中提取符合条件的数据;与表相类似的是,可以更新其中的数据,并将更新结果永久保存在磁盘上。视图属于数据库的一部分保含在数据库文件中,因此只有打开对应的数据库,才能使用视图。第42页,共71页,2023年,2月20日,星期六创建和使用视图视图可分为本地视图和远程视图。本地视图是从本地VFP表或其他视图中提取数据;远程视图是从远程ODBC服务器上提取数据。(ODBC即OpenDataConnectivity开放式数据互连)可以将远程视图添加到本地视图中,这样就可以在同一视图中同时访问VFP数据和远程ODBC数据源中的数据。由于视图与查询有很多类似之处,创建视图与创建查询的步骤也相似。可以用视图向导和视图设计器创建视图。第43页,共71页,2023年,2月20日,星期六使用[本地视图向导]创建视图§5.2.1用[视图向导]创建本地视图因为视图必须包含在数据库中,因此在创建视图前应打开数据库。我们可以在项目管理器中,打开数据库,创建视图。1.启动视图向导打开一个项目文件进入[项目管理器],从中选择一个数据库,在数据库项之下选择[本地视图]选项。选择项目管理器的[新建]按钮,在弹出的[新建]对话框中选择[视图向导]按钮,即进入[本地视图向导]。也可以用[文件]菜单的[新建]选项或选用[工具]菜单中的[向导]选项来启动[本地视图向导]。第44页,共71页,2023年,2月20日,星期六使用[本地视图向导]创建视图2.使用[本地视图向导]
可以从一个或多个表及视图中选取字段包含在视图中。(1)选择表或视图字段步骤1,在对话框中选择创建本地视图的源表或源视图文件,将要在视图中输出、编辑的字段,从[可用字段]列表框中移到[选定字段]列表框。(2)为多表建立关系在使用多表创建视图时,要建立表之间的关系,对于单表视图则不需要这一步。步骤2,在每两个表之间选择匹配字段建立表间关系,并将每一个关系通过[添加]按钮加入到关系列表中。第45页,共71页,2023年,2月20日,星期六使用[本地视图向导]创建视图(3)筛选记录如果在视图中仅显示表中的部分记录,在步骤3建立筛选记录的关系表达式及逻辑表达式。在这一步按[预览]按钮,可以预览视图的输出结果。(4)对记录排序步骤4可以在视图中对记录排序,[可用字段]列表框中为视图的输出字段,从中选择用于对视图排序的字段,选择升序或降序通过[添加]按钮添加到[选定字段]列表框中。最多可以选择三个字段用于排序。在下一步的步骤4a,可以通过[所占记录百分比]和[记录号]两种方式来限制视图输出的记录数目。通过[预览]按钮可以预览视图输出。第46页,共71页,2023年,2月20日,星期六使用[本地视图向导]创建视图(5)保存视图最后一步是完成,在此给出三种保存视图的方式:保存本地视图;保存本地视图并浏览;保存本地视图并在[视图设计器]中修改。保存视图后,新视图的名称将显示在[项目管理器]中。如果打开[数据库设计器],可以看到视图的字段列表。第47页,共71页,2023年,2月20日,星期六使用[视图设计器]创建视图§5.2.2视图设计器利用[视图设计器]可以创建视图,也可以修改视图。[视图设计器]与[查询设计器]非常相似,只是增加了[更新条件]选项页,其它[字段]、[联接]、[筛选]、[排序依据]、[分组依据]及[杂项]选项页都是一致的。1.启动视图设计器在[项目管理器]中指定一个数据库,选择[本地视图],单击[新建]按钮。在[新建本地视图]对话框选择[新建视图],则启动[视图设计器]。第48页,共71页,2023年,2月20日,星期六使用[视图设计器]创建视图2.添加表或视图进入[视图设计器]后,弹出[添加表或视图]对话框。选择添加[表]或[视图]单选按钮。在[数据库]及[数据库中的表(视图)]列表框可以选择数据库、表及视图。按[其它]按钮可添加自由表。此外,在任何时候都可以在[查询]菜单上选择[添加表]选项,或单击[视图设计器]工具栏上的[添加表]按钮,都可以进入[添加表或视图]对话框来添加表或视图。第49页,共71页,2023年,2月20日,星期六使用[视图设计器]创建视图3.选择字段指定视图中输出的字段或函数及表达式。在[字段]选项页中,从[可用字段]列表框中选择字段,或者在[函数和表达式]组合框中指定函数和表达式作为输出的一部分。单击[添加]按钮,把字段或表达式放在[选定输出]列表框中。4.建立表间的联接条件联接条件是多表或视图之间的联接关系,是根据表或视图匹配的字段,用关系表达式或逻辑表达式设置。可以在[联接条件]对话框或[联接]选项页中设置。联接类型分:内部联接、左联接、右联接和外部联接。第50页,共71页,2023年,2月20日,星期六使用[视图设计器]创建视图5.筛选记录在[筛选]选项页中指定筛选记录的条件,用关系表达式或逻辑表达式设置筛选记录的条件。6.设置排序依据在[排序依据]选项页,从[选定字段]列表框中选择排序字段,并按“升序”或“降序”加到[排序条件]列表框中。便可以建立视图输出的排序顺序。第51页,共71页,2023年,2月20日,星期六使用[视图设计器]创建视图7.设置分组依据分组就是将同类的记录合并汇总到一个记录中,这样就可以完成基于一组记录的计算,运算在设置输出字段时用函数或表达式设置。在[分组依据]选项页中,从[可用字段]列表框中依次选择字段加入到[分组字段]列表框中,视图将以选定字段进行分组。另外,通过[满足条件]按钮,可以为分组设置筛选条件,仅选择满足条件的组输出。第52页,共71页,2023年,2月20日,星期六使用[视图设计器]创建视图8.设置更新条件
[视图设计器]比[查询设计器]增加了[更新条件]选项页,因为视图可以修改源表的数据。利用[更新条件]选项页可以设置可更新的表、字段和更新方式。(1)“表”下拉列表框:选择允许修改的表。第53页,共71页,2023年,2月20日,星期六在[视图设计器]设置更新条件(2)“字段名”列表框:视图是通过关键字段,使在视图中所做的修改与数据源表中的记录相对应,以修改源表。关键字段必须能唯一标识在源表中所更新的记录。如果用一个字段不能唯一标识源数据表更新的记录,可以选择多个关键字段。
“字段名”列表框左侧,有一个“关键字段”(Key)复选按钮列,和一个“可更新”(写)复选按钮列。分别可以选择关键字段和可更新字段。在视图中只有设置为可更新字段后,修改的值才能返回到源表中,否则只在视图中显示。第54页,共71页,2023年,2月20日,星期六在[视图设计器]设置更新条件(3)“重置关键字”按钮:当在[视图设计器]中首次打开一个表时,[更新条件]选项页会显示出表中某些字段被定义为关键字段及可更新字段,如果已经改变了关键字段或可更新字段,而又想把它们恢复到源表的初始设置,可选择[重置关键字],则所有已被改变的所有标记都去除了。(4)“全部更新”按钮:将所有字段都设定为可更新字段,但是关键字段需要设置为可更新字段时,则要单独设置。第55页,共71页,2023年,2月20日,星期六在[视图设计器]设置更新条件(5)“发送更新”复选框:设置将修改结果传送回源表,否则视图中的修改对源表的数据没有影响。此外,为了使对视图的修改数据能回送到源表中,还必须对视图设置至少一个关键字段和一个可修改字段。如果为视图选择的表中有一个主关键字段,而且字段已设置为视图的输出字段,则[视图设计器]自动使用主关键字段作为视图的关键字段。第56页,共71页,2023年,2月20日,星期六在[视图设计器]设置更新条件*(6)“SQLWHERE字句”单选框:
VFP可以将远程视图添加到本地视图中,从而可以访问远程服务器上的ODBC数据。在多用户网络环境中,共享数据存放在服务器上,当我们想对远程服务器上的数据进行更新的同时,有可能别人也试图对表中数据进行修改,这就可能发生冲突。第57页,共71页,2023年,2月20日,星期六“SQLWHERE字句”单选框冲突可以通过检测服务器上表中的数据被发现,当视图中的数据与源表当前值相同,则认为源表数据未被修改,不存在冲突;如果它们不相同,则存在冲突,数据源返回一条错误信息。VFP允许用户进行设置决定哪些字段的更新在发生冲突时被认为更新失败,即数据被提取到视图中后,如果被别的用户修改,则不允许更新操作。第58页,共71页,2023年,2月20日,星期六“SQLWHERE字句”单选框
本地视图和查询类似,是利用SQL语句从表或其它视图中访问数据。在[本地视图设计器]的[更新条件]选项页中,可以对发生冲突时的更新进行设置,而这些设置使某些字段包含在UPDATAE(修改)和DELETE(删除)等语句的WHERE子句中。WHERE子句将控制哪些字段的更新在冲突时使更新失败。第59页,共71页,2023年,2月20日,星期六“SQLWHERE字句”单选框
[SQLWHER子句包括]中有四种选择:关键字段:比较视图与远程数据源中的关键字段,当源表中的关键字段被改变时,使更新失败。关键字和可更新字段:当远程表中关键字段或已设置为可更新字段的任一字段被改变时,使更新失败。关键字和已修改字段:当在本地视图改变的任一字段,在源表中已被改变时,便更新失败。关键字和时间戳:比较远程数据源的当前时间戳与数据提取到视图时的时间戳,当远程表上记录的时间戳在首次访问之后被改变时,使更新失败。只有当远程表有时间戳这一项时才有效。第60页,共71页,2023年,2月20日,星期六在[视图设计器]设置更新条件(7)“使用更新”单选框设置当视图中关键字段的数据修改后,采用何种方法在服务器上对此记录进行更新,即使用何种SQL语句进行更新。SQL
DELETE然后INSERT:当修改数据时,先删除服务器源表相应记录,再插入新的记录。SQL
UPDATAE
:直接使用UPDATAE语句修改服务器源表相应记录。9.[杂项]选项页用于确定是否包含重复记录、交叉数据表以及显示记录的数目等。第61页,共71页,2023年,2月20日,星期六§5.2.3利用代码创建视图1.创建本地视图用视图设计器创建的视图是转换成SQL语句存放在相应的数据库视图中我们也可以使用命令或程序创建本地视图。[命令格式]CREATESQLVIEW<视图名>AS<SQLSELETE语句>说明:命令中<SQLSELETE语句>对所创建的视图用SQLSELETE进行定义,SELETE语句的使用同查询中的SELETE语句。在创建本地视图之前应该打开相应的数据库,因为本地视图创建在数据库中。第62页,共71页,2023年,2月20日,星期六利用代码创建视图举例例:创建名为<学生成绩视图>的本地视图OPENDATABASE学生管理.DBCCREATESQLVIEW
学生成绩视图;ASSELECT*
;FROM学生管理!xsda;
INNERJOIN学生管理!gkcj;
ONXsda.学号=Gkcj.学号;WHEREGkcj.英语>=60;ANDGkcj.计算机>=60第63页,共71页,2023年,2月20日,星期六利用代码创建视图2.修改视图在数据库中创建的,视图的
SQLSELETE
语句代码,在视图设计器中在可以看到但无法修改。只能在[视图设计器]的各选项页中修改视图。我们可以用命令方式进入[视图设计器]修改视图,在此之前应打开相应的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年呼和浩特石化公司社会招聘考试真题
- C语言课程设计服装店
- 2023年阜阳市妇女儿童医院招聘紧缺专业技术人员考试真题
- 2023年北京体育职业学院招聘考试真题
- 幼师实习报告【15篇】
- vb程序设计课程设计
- stm32毕业课程设计
- b2微课程设计与制作微课程设计语文
- 果树苗木选购协议书
- 增补合同条款格式
- 二手车购买一批合同范本
- A10联盟2025届高三上学期11月段考 历史试卷 (含官方答案解析)
- 2024年巴西劳动市场变化与挑战
- 放射科专科护理模拟题含参考答案
- 家政培训讲师课件
- 定制酒签约合同模板
- 2024年大型科学仪器共享与服务合作协议
- 2024年湖北省武汉市中考英语真题(含解析)
- 《hadoop基础》课件-第二章 Hadoop介绍
- 警校生未来职业规划
- 护士核心能力的培养ppt课件.ppt
评论
0/150
提交评论