收藏 分销(赏)

VFP查询与视图.ppt

上传人:可**** 文档编号:764581 上传时间:2024-03-07 格式:PPT 页数:107 大小:2.52MB
下载 相关 举报
VFP查询与视图.ppt_第1页
第1页 / 共107页
VFP查询与视图.ppt_第2页
第2页 / 共107页
VFP查询与视图.ppt_第3页
第3页 / 共107页
VFP查询与视图.ppt_第4页
第4页 / 共107页
VFP查询与视图.ppt_第5页
第5页 / 共107页
点击查看更多>>
资源描述

1、主讲:杜春敏主讲:杜春敏学习要点学习要点1、查询向导和查询设计器的使用方法;2、单表查询和交叉表查询;3、查询设计器中各选项卡的功能和使用方法;4、本地视图和远程视图;5、视图向导和视图设计器的使用方法;6、使用视图。查询与视图查询与视图 第第3章章 查询与视图查询与视图 3.2 用查询向导设计查询用查询向导设计查询 3.3 用查询设计器设计查询用查询设计器设计查询 3.4 创建视图创建视图 3.5数据库视图的操作数据库视图的操作 小小 结结 返回返回退出退出3.6利用视图更新数据利用视图更新数据 3.7利用视图处理自由数据利用视图处理自由数据 3.2 用查询向导设计查询用查询向导设计查询3.

2、2.1 设计单表查询设计单表查询 3.2.2 建立交叉表建立交叉表 返返 回回退退 出出3.2.1设计单表查询 查询向导可以引导用户快速设计一个查询。下面将示例使用查询向导设计一个简单查询向导可以引导用户快速设计一个查询。下面将示例使用查询向导设计一个简单的单表查询:从的单表查询:从XGGL数据库的数据库的Student表中查询系部代号为表中查询系部代号为“04”且是且是99级的所有级的所有学生的信息。学生的信息。操作过程如下:首先从操作过程如下:首先从“文件文件”开始,选择开始,选择【新建新建】-“查询查询”,然后单击,然后单击【向导向导】按钮,则出现设计查询的方式选择对话框。按钮,则出现设

3、计查询的方式选择对话框。单击 选择选择XGGL数据库中的数据库中的Student表,表,并将该表中的并将该表中的所有字段添加所有字段添加到到“选定字段选定字段”列表框中。列表框中。单击查询向导查询向导字段选取字段选取从中选择Student.系部代号0在此输入值4取默认值从中选择“包含”在此输入值98单击单击单击【预览预览】按钮可以显示查询结果。根据要求,设置条件如上图。其中,按钮可以显示查询结果。根据要求,设置条件如上图。其中,虽然表中没有年级字段,但可通过虽然表中没有年级字段,但可通过“学号学号”得到年级(学号的前二位为年级)得到年级(学号的前二位为年级)。查询向导查询向导筛选记录筛选记录选

4、择排序字段单击【添加】选择排序方式调整排序顺序移动按钮单击查询向导查询向导记录排序记录排序查询向导查询向导限制记录限制记录限制查询结果中所包含的记录数说明:查询结果中所包含说明:查询结果中所包含的记录数限制共有四种方的记录数限制共有四种方式:式:1、“部分类型部分类型”中选择中选择“所占记录百分比所占记录百分比”,“数量数量”中选择中选择“所有记录所有记录”,查询结果集中包含全,查询结果集中包含全部记录。部记录。2、“部分类型部分类型”中选择中选择“所占记录百分比所占记录百分比”,“数量数量”中选择中选择“部分值部分值”,再在,再在“微调框微调框”中设置中设置数值,查询结果集中包含数值,查询结

5、果集中包含指定数值百分数的记录。指定数值百分数的记录。3、“部分类型部分类型”中选择中选择“记录号记录号”,“数量数量”中选择中选择“所有记录所有记录”,查询,查询结果集中包含全部记录。结果集中包含全部记录。4、“部分类型部分类型”中选择中选择“记录号记录号”,“数量数量”中选择中选择“部分值部分值”,再在,再在“微调框微调框”中设置数值,查询结果集中包含指定数值的记录数。中设置数值,查询结果集中包含指定数值的记录数。单击取默认值,查询结果集中包含全部记录查询向导查询向导完成完成将查询以文将查询以文件的形式件的形式(.QPR)保)保存到一个指存到一个指定的目录中。定的目录中。将查询保存到一将查

6、询保存到一个指定的目录中个指定的目录中并运行该文件。并运行该文件。利用查询向导设计的查询功能有限,可以使用查询设计器修改它。利用查询向导设计的查询功能有限,可以使用查询设计器修改它。单击,可以查看查询结果集中的全部数据单击,可以查看查询结果集中的全部数据打开帮助文件帮助文件 取消所建立的查询取消所建立的查询 返回到向导的上一步返回到向导的上一步结束向导,结束向导,完成查询设完成查询设计。计。单击保存设计的查询保存设计的查询目录选择下拉列表框文件名输入文本框文件类型选择下位列表框在在“文件名输入文本框文件名输入文本框”中中输入输入“Stud_query”后,单后,单击击【保存保存】按钮,结束查询

7、按钮,结束查询设计过程。设计过程。在项目管理器中的“数据”选项中的查询项下产生了一个查询文件返回3.2.2 建立交叉表建立交叉表 如果在上文所述的建立查询如果在上文所述的建立查询的第一步选择的第一步选择“交叉表向导交叉表向导”,则可以建立交叉表。下面通过示则可以建立交叉表。下面通过示例来介绍如何建立交叉表。用例来介绍如何建立交叉表。用Grade表中的数据建立一个交叉表中的数据建立一个交叉表,以显示每个学生所有课程的表,以显示每个学生所有课程的总成绩。总成绩。Grade表中的部分数表中的部分数据如:据如:前面的设计过程同以上内容,前面的设计过程同以上内容,但是在第二步需要确定交叉表的但是在第二步

8、需要确定交叉表的行和列行和列。交叉表设计向导交叉表设计向导字段选取字段选取选择数据库和表选定字段单击单个字段选定按钮全部字段选定按钮 单个字段撤消按钮说明:在这说明:在这一步先在一步先在“数据库和表数据库和表”一选择一一选择一个数据库,个数据库,再选择用以再选择用以建立交叉表建立交叉表的数据表,的数据表,然后再从可然后再从可用字段列表用字段列表框中选择要框中选择要用的字段,用的字段,交叉表只用交叉表只用三个字段,三个字段,这一步可多这一步可多选选 字段。字段。全部字段撤消按钮单击交叉表向导交叉表向导定义布局定义布局说明:说明:(1)行行,将将要要加加入入到到交交叉叉表表中中的的第第一一个个字字

9、段段名名,本本示示例例中中选选择择字段字段“学号学号”;(2)列列,将将要要加加入入到到交交叉叉表表中中的的从从第第二二个个字字段段开开始始的的若若干干个个字字段段的的字字段段名名,注注意意这这些些从从源源表表中中选选择择的的数数据据不不能能超超过过254个个。本本示示例例中中选选择择字字段段“课课程代号程代号”;(3)数据,对应行和)数据,对应行和列的运算结果,本示列的运算结果,本示例中选择例中选择“课程成绩课程成绩”。按提示操作:从可用字段列表框中将“学号”字段拖入“行”框,将“课程代号”拖入“列”框,将“课程成绩”拖入“数据”框。单击交叉表查询向导交叉表查询向导加入总结信息加入总结信息说

10、明:说明:这一步的操作,决这一步的操作,决定在生成的交叉表中要定在生成的交叉表中要加入的一个字段的内容。加入的一个字段的内容。(1)求和:求出对应行和列的数据字段的和;(2)计数:求出对应行和列的数据字段的数目;(3)平均值:求出对应行和列的数据字段的平均值;(4)最大值:求出对应行和列的数据字段的最大值;(5)最小值:求出对应行和列的数据字段的最小值。本示例中选择“求和”运算。如果不想加入总结信息,可以在“分类汇总”中选择“无”。单击交叉表向导交叉表向导完成完成将交叉表查询以文件的形式(.QPR)保存到一个指定的目录中。将交叉表查询保存到一个指定的目录中并运行该文件。将交叉表查询保存到一个指

11、定的目录中并打开“查询设计器”修改它。对于值为空的记录是否以.NULL.填充说明:系统默认值是“保存交叉表查询”和“显示NULL值”。选择“保存并运行交叉表查询”后单击交叉表保存及运行结果交叉表保存及运行结果 按上一步的操作完成后,进行到按上一步的操作完成后,进行到“另存为另存为”对话框中,将该查询取名为对话框中,将该查询取名为Grad_Query,然后保存在默认的目录中。,然后保存在默认的目录中。保存后,系统进入到数据查询过程,稍候系统将查询结果显示出来。如:保存后,系统进入到数据查询过程,稍候系统将查询结果显示出来。如:从中可以看到,凡是没有数据的栏,就被从中可以看到,凡是没有数据的栏,就

12、被.NULL.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 用查询设计器设计查询用查询设计器设计查询 在实际应用中

13、,查询向导设计的查询往往不能满足需求。这时还可以采用查询设在实际应用中,查询向导设计的查询往往不能满足需求。这时还可以采用查询设计器方便灵活的设计各种查询,也可以先用查询向导设计一个简单的查询,再打开并计器方便灵活的设计各种查询,也可以先用查询向导设计一个简单的查询,再打开并修改它。修改它。将上一节建立的将上一节建立的Grad_QueryGrad_Query交叉表查询,用交叉表查询,用“查询设计器查询设计器”进行修改,使用之包含进行修改,使用之包含尽可能少的空栏。尽可能少的空栏。可以通过以下所提供的多种方法之一来打开查询设计器:可以通过以下所提供的多种方法之一来打开查询设计器:从从“项目管理器

14、项目管理器”启动查询设计器启动查询设计器 1 1、在、在“项目管理器项目管理器”中选择中选择“数据数据”选项卡,再选取选项卡,再选取“查询查询”项,再单击项,再单击【新建新建】,进入查询设计方式选择对话框后单击,进入查询设计方式选择对话框后单击【新建查询新建查询】,则启动则启动“查询设计器查询设计器”。2 2、在、在“项目管理器项目管理器”中选择中选择“数据数据”选项卡,从选项卡,从“查询查询”项中选择一个已存在的项中选择一个已存在的查询文件,再单击查询文件,再单击【修改修改】,也,也启动启动“查询设计器查询设计器”。从从【文件文件】菜单启动查询设计器菜单启动查询设计器选择系统菜单中的选择系统

15、菜单中的【文件文件】|【新建新建】命令,在命令,在“新建新建”对话框中选中对话框中选中“文件类型文件类型”下下的的“查询查询”单选项,再单击右边的单选项,再单击右边的【新建文件新建文件】按钮,也可启动按钮,也可启动“查询设计器查询设计器”;使用使用CREATE QUERY命令命令也可启动也可启动“查询设计器查询设计器”查询设计器下部分的窗口中有几个选项卡,其含义简介如下:查询设计器下部分的窗口中有几个选项卡,其含义简介如下:(1 1)“字段字段”:用来选定包含在查询结果中的字段;:用来选定包含在查询结果中的字段;(2 2)“排序依据排序依据”:用来决定查询结果输出中记录或行的排列顺序;:用来决

16、定查询结果输出中记录或行的排列顺序;(3 3)“联接联接”:用来确定各数据表或视图之间的联接关系;:用来确定各数据表或视图之间的联接关系;(4 4)“筛选筛选”:相当于命令:相当于命令SET FILTER TOSET FILTER TO,利用过滤的方法查找一个特定的数,利用过滤的方法查找一个特定的数据子集;据子集;(5 5)“分组依据分组依据”:所谓分组就是将一组类似的记录压缩成一个结果记录,这:所谓分组就是将一组类似的记录压缩成一个结果记录,这样就可以完成基于一组的计算。样就可以完成基于一组的计算。返回查询设计器窗口查询设计器窗口查询文件设计与创建步骤查询文件设计与创建步骤 要设计一个查询文

17、件,首先必须明确查询的目的是要设计一个查询文件,首先必须明确查询的目的是什么,即想要得到哪些数据,并以什么方式存在;或者想什么,即想要得到哪些数据,并以什么方式存在;或者想要得到满足某些条件的特定记录,或者想要知道某些记录要得到满足某些条件的特定记录,或者想要知道某些记录的字段值组合成的表达式按某一方式输出。明确了输出的的字段值组合成的表达式按某一方式输出。明确了输出的数据后,就可以开始设计查询了,一般要通过以下几个步数据后,就可以开始设计查询了,一般要通过以下几个步骤进行:骤进行:(1 1)启动查询设计器;)启动查询设计器;(2 2)选择出现在查询结果中的字段;)选择出现在查询结果中的字段;

18、(3 3)设置选择条件来查找可给出所需结果的记录;)设置选择条件来查找可给出所需结果的记录;(4 4)设置排序或分组选项来组织查询结果;)设置排序或分组选项来组织查询结果;(5 5)选择查询结果的输出类型:表、报表、浏览等;)选择查询结果的输出类型:表、报表、浏览等;(6 6)运行查询。)运行查询。3.3.1 确定各表间的联接关系确定各表间的联接关系 示例示例:创建一个含有多个表中信息的查询。在:创建一个含有多个表中信息的查询。在XGGLXGGL数据库中有三个表:数据库中有三个表:StudentStudent、GradeGrade、CoursesCourses,现在想知道学号前四位是,现在想知

19、道学号前四位是99049904和和98049804的所有学生考试的成绩。的所有学生考试的成绩。当在多个表或视图间进行查询时,需要指出这些表或视图间的联接关系。当在多个表或视图间进行查询时,需要指出这些表或视图间的联接关系。操作方法如下:操作方法如下:启动查询设计器,在启动查询设计器,在“添加表和视图添加表和视图”对话框中从对话框中从“数据库数据库”中选择中选择GXGLXTGXGLXT库,库,在在“数据库中的表数据库中的表”中选择中选择StudentStudent表,单击表,单击【添加添加】按钮,再选择按钮,再选择GradeGrade表,表,再单击再单击【添加添加】,此时系统自动弹出一个此时系统

20、自动弹出一个“联接条件联接条件”,询问,询问是否根据两表中都有的是否根据两表中都有的“学号学号”字段建立内部联字段建立内部联接,单击接,单击“确定确定”,两表间就有了一条连线,代,两表间就有了一条连线,代表它们之间的联接。然后再添加表它们之间的联接。然后再添加CoursesCourses表,最后表,最后关闭对话框。关闭对话框。在“查询设计器”中选择“联接”选项卡,如图:(1)InnerJoin:内部联接,指定只有满足联接条件的记录包含在结果中,此类型是默认的,也是最常用的;(2)RightOuterJoin:右联接,指定满足联接条件的记录,以及满足联接条件右侧的表中记录(即使不匹配联接条件)都

21、包含在结果中;(3)LeftOuterJoin:左联接,指定满足联接条件的记录,以及满足联接条件左侧的表中记录(即使不匹配联接条件)都包含在结果中;(4)FullJoin:完全联接,指定所有满足和不满足联接条件的记录都包含在结果中。如果想修改各表间的联接,双击查询设计器上部窗口表之间的连线,系统将弹出“连接条件”对话框;或者通过打开查询设计器下部的“联接”选项卡进行。一般不应随便更改连接条件,不然会与实际数据间的关系不符。在VFP6中表间的联接有四种类型,分别是:“条件”列表中包含如下几项:(1)=:指字段值与实例相等;(2)LIKE:表示“字段名”栏中给出的字段值与“实例”栏中给出的文本值之

22、间执行不完全匹配,它主要针对字符类型。例如,如设置查询条件为“Student.学号LIKE9904”,那么诸如“学号”字段前四位为9904的记录都满足该条件;(3)=:表示在“字段名”栏中给出的字段值与“实例”栏中给出的文本值之间执行完全匹配检查,它主要是针对字符型。(4):即为“字段名”栏中给出的字段的值应大于“实例”栏中给出的值;(5)=:即为“字段名”栏中给出的字段的值应大于或等于“实例”栏中给出的值;(6):即为“字段名”栏中给出的字段的值应小于“实例”栏中给出的值;(7)=:即为“字段名”栏中给出的字段的值应小于或等于“实例”栏中给出的值;(8)IsNull:指定字段必须包含Null

23、值;(9)Between:即为输出字段的值应大于或等于“实例”栏中的最小值,而小于或等于“实例”栏中的最大值;(10)IN(在之中):即为输出字段的值必须是“实例”栏中所给出值中的一个,在“实例”栏中给出的各值之间以逗号分隔。此外,“联接”选项卡中的“否”列用于指定.NOT.条件,“逻辑”列用于设置各联接条件和筛选条件之间的逻辑关系(无、.AND.和.OR.),“大小写”列用于指定是否区分大小写。下方的“插入”和“移去”按钮分别用于增加或移去查询条件。返回在设置筛选条件时,我们应注意如下几点:(1)备注字段和通用字段不能用于设置查询条件;(2)逻辑值的前后必须使用句点号,如.T.;(3)只有当

24、字符串与查询的表中字段名相同时,要用引号将字符串括起来,否则不需要用引号将字符串括起来;(4)日期不必用花括号括起来。3.3.2 选定查询字段选定查询字段根据建立查询的目的,选择查询结果中应包含的字段。操作方法与用向导设计查询的方法相同。在本示例中先在“查询设计器”中选择“字段”选项卡,然后从可用字段列表框中选择:Student.学号、Student.姓名、Courses.课程名称、Grade.课程成绩,如图。选择一个字段单击【添加】选定的字段列表重复操作添加Student.姓名、Courses.课程名称、Grade.课程成绩返回3.3.3 筛选记录筛选记录选择表中符合条件的一部分记录而不是全

25、部记录是查询的重要任务。此例要求从所有学生的成绩信息中选出“学号”前四位为“9904”和“9804”的所有学生的成绩,可以利用查询设计器中的“筛选”选项卡。“筛选”选项卡可确定用于选择记录的字段和比较准则,以及输入与该字段进行比较的示例值。选择筛选字段设置筛选条件 输入筛选实例设置条件逻辑是否区分大小写返回在字段名下的下拉选择框中选择“Grade.开课学期”,在“条件”下的下拉选择框中选择“=”,在“实例”下的文本框中输入“第1学期”,在“逻辑”下的下拉选择框中选择“AND”,然后再在字段名下的下拉选择框中选择“Student.学号”,在“条件”下的下拉选择框中选择“In”,在“实例”下的文本

26、框中输入“9904,9804”(请注意中间的“,”是En状态下输入的)。返回我们可以通过“排序依据”选项卡设置查询的排序次序,方法同在用查询向导设计查询介绍的一样,首先从“选定字段”框中选定要使用的字段,并把它们移到“排序条件”框中,然后利用“排序选项”(从中选择升序或降序)来设置排序条件。本例中设置Student.学号,升序为排序依据。选择一个字段单击【添加】选定的字段列表如果还需要添加用于排序的字段,可以重复以上的操作步骤。返回3.3.4查询结果排序查询结果排序3.3.5 建立分组查询建立分组查询所谓分组就是将一组类似的记录压缩成一个结果记录,这样就可完成基于一组记录的计算。分组在与某些累

27、计功能联合使用时效果最好,例如SUM(),COUNT(),AVG()等。如果不想压缩结果记录,则不必设置它。在此例中不设分组查询。如果想求各门课程的平均成绩,可以用“课程名称”进行分类查询。选择一个字段单击【添加】选定的字段列表操作步骤如下:(1)在查询设计器的“字段”选项卡中,单击“函数和表达式”右边的按钮,出现“表达式”生成器;(2)在“数学”下拉式列表框中双击AVG(expN),在“来源于表”下拉框中选择Grade表,在“字段”列表框中双击“课程成绩”,单击【确定】。即在“函数和表达式”框中自动生成了“AVG(Grade.课程成绩)”这个表达式,用以计算Grade表中课程成绩的平均值。(

28、3)单击“添加”按钮,该表达式被添加到“选定字段”列表框中。将来查询结果中就会有一列数据求平均值;(4)单击“分组依据”选项卡,进入“分组依据”窗口,在“可用字段”中选择Grade.课程名称,再单击【添加】按钮,该字段即成为分组字段。运行查询后的结果返回3.3.6 杂项的设置杂项的设置经过以上五个步骤,基本上已生成了一个比较全面的查询。接下来还可以通过查询设计器中的“杂项”选项卡做最后处理。单击“杂项”选项卡,可以看到其间包括“无重复记录”、“交叉数据表”、“全部”、“百分比”这四个复选框和一个微调按钮。选中“无重复记录”复选框表示对于查询结果如果存在重复记录,则只取相同记录中的一个。选中此项

29、,在查询生成器的SQL语句中会自动加上限定词Distinct,表示去掉重复记录。当输出的字段只有三项时,“交叉数据表”复选框为可选状态,否则为不可选状态。选中“交叉数据表”复选框表示将查询的结果以交叉表的形式传递给其它报表或表。三项查询字段分别表示X轴、Y轴和图形的单元值。如,在本示例中,将前面已加入到“选定字段”中的Student.学号字段移去,并按Student.姓名、Courses.课程名称和Grade.课程成绩的顺序调整字段在“选定字段”列表框中的顺序,然后在“杂项”选项卡中选中“交叉数据表”,同时将“分组依据”中的“Grade.课程代号”取消,其它设置不变。从图中可以看到“交叉数据表

30、”成为了可选。现选中“交叉数据表”项,如图:设置返回3.3.7 定向输出查询结果定向输出查询结果查询检索的信息,可以输出到不同的目的地,以用作不同的用途。如果没有选定输出的目的地,查询结果将显示在浏览窗口中。查询输出目的可以是浏览窗口、临时表、表、图形、屏幕、报表、标签等。选择结果的去向方法如下:单击“查询设计器工具”中的【查询去向】按钮,或者从【查询】菜单中选择【查询去向】,可看到如图所示的“查询去向”对话框。对话框中的按钮含义如下:【浏览】:在浏览窗口中显示查询结果,这是查询缺省设置;【临时表】:将查询结果存储在一个临时只读表中。多次查询的结果可放在不同的表内。该表可用于浏览数据,制作报表

31、等,直到用户关闭它们;【表】:将查询的结果保存在一个命名的表(.DBF)中,此时查询的结果是真正的存放到磁盘上的,多次查询的结果可放在不同的表内;【图形】:使查询结果可用于MicrosoftGraph(包含在VFP6中的一个独立的应用程序)中制作图表;【屏幕】:在VFP6主窗口或当前活动输出窗口中显示查询结果;【报表】:将输出送到一个报表文件(.FRX)中;【标签】:将输出送到一个标签文件(.LBX)中。选定一个去向,按一定的步骤设置一些属性,然后单击【确定】按钮,系统就将按意图放置查询结果。假设本例将查询结果保存到临时表中,取临时表名为“查询1”。返回3.3.8 运行查询运行查询在完成了查询

32、的设计工作并指定了结果输出去向后,可通过以下五种方式之一运行查询:在查询设计器区域内单击右键,在弹出菜单中选择“运行查询”;在“项目管理器”中选定查询的名称,然后选定“运行”按钮;在“查询”菜单中选择“运行查询”:在命令窗口中键入DO查询名.qpr。单击系统常用菜单上的“运行”按钮。本例中按前述步骤设置后,单击系统菜单上的“运行”按钮运行交叉表查询,并将查询结果保存到临时表“查询1”中,然后再在浏览窗口中单击【显示】|【浏览“查询1”】,结果如右表。返回3.4 创建视图创建视图 3.4.1 创建本地视图创建本地视图 3.4.2 用已有的用已有的SQL SELECT语句创建视图语句创建视图 3.

33、4.3 创建远程视图创建远程视图 返回返回退出退出3.4.1 创建本地视图创建本地视图视图可以通过向导和设计器两种方法来创建。1 1、利用向导创建本地视图利用向导创建本地视图用本地视图向导创建本地视图,可采取以下方式:方式一:(1)在主窗口下打开【工具】菜单,选择【向导】菜单命令。(2)再选择【全部】菜单,出现【向导选取】对话框,如图单击滑动按钮选择“本地视图向导”单击【确定】进入到“本地视图向导步骤1字段选取”方式二:(1)在主窗口下打开【文件】菜单,选择【新建】菜单命令。(2)选择“视图”,再单击【向导】,将弹出【本地视图向导】对话框。(3)然后按照向导屏幕上的指示操作。方式三:(1)在项

34、目管理器中选定数据库。(2)选定本地视图,单击【新建】按钮。(3)单击【视图向导】按钮(4)然后按照向导屏幕上的指示操作。方式四:(1)打开数据库设计器,打开【数据库】菜单。(2)选择【新建本地视图】,再单击【视图向导】按钮。(3)然后按照向导屏幕上的指示操作。说明:按照上述几种方式,可以快速建立本地视图,但要强调的是,在项目管理器中创建或使用视图时,项目管理器会自动打开数据库。如果要使用项目以外的表或视图,则必须先打开数据库或事先确认数据库在作用范围内。本地视图向导:步骤本地视图向导:步骤1字段选取字段选取本地视图向导对话框如图,创建视图大体要经过以下步骤:(1)字段选取。)字段选取。选择数

35、据库,数据库中的表和表中的字段。如果当前已经打开了一个数据库,则第一步的对话框中显示的是创建当前数据库的视图,也可以选择其它的数据库。(2)关联表。)关联表。建立数据库中表与表之间的关系。(3)包含记录。)包含记录。指定包含表中的全部记录还是仅匹配的记录。(4)筛选记录。)筛选记录。选定符合条件的记录。(5)排序记录。)排序记录。为选定的记录按照某一字段进行排序。(6)限定记录。)限定记录。定制显示一定数量的记录。(7)完成视图。)完成视图。选择保存视图后浏览还是修改。例:创建包含Grade表和Courses表的本地视图“视图1”。选择表Grade单击全部添加按钮选择Courses表单击单个添

36、加按钮,添加课程名、学时数、学分数选择字段完成后,单击【下一步】,步骤2为表建立关系。本地视图向导:步骤本地视图向导:步骤2为表建立关系为表建立关系父表字段选择下拉选择框子表字段选择下拉选择框说明:在这一步要建立用来建立本地视图的表间的关系。1、先在父表字段选择下拉选择框中选择要用来建立关系的主关键字;2、再在子表字段选择下拉选择框中选择用来建立关系的子表关键字;3、单击【添加】,将设定关系添加到关系列表框中。上面的字段符合要求,单击【添加】关系设置完成后单击【下一步】进入到步骤2a字段选取对话框。本地视图向导:步骤2a字段选取生成的本地视图中只包含表中关系相匹配的记录,对应于关系中的内联接的

37、设置结果。生成的本地视图中包含Grade表中的全部记录和子表中关键字段相匹配的记录,对应于关系中的左联接的设置结果。生成的本地视图中包含Courses表中全部记录和父表中关键字段相匹配的记录,对应于关系中的右联接的设置结果。生成的本地视图中包含表中所有的记录,对应于关系中的完全联接的设置结果。本例中选用默认值:仅包含匹配的行。然后单击【下一步】,进入步骤3筛选记录。本地视图向导:步骤3筛选记录说明:本地视图向导的筛选记录与查询向导的筛选记录的方式类似。在本例中不筛选记录。单击【下一步】,进入到本地视图向导的步骤4排序记录。本地视图向导:步骤4排序记录说明:在这一步中设置在本地视图的记录顺序。本

38、例中可先按“学号”排序,学号相同的再按“课程代号”排序。操作方法与建立查询的记录排序方法相同。先在“可用字段”列表框中选择“学号”,然后单击【添加】,再选择“课程代号”,再单击【添加】如上图。排序字段及顺序设置后单击【下一步】,进入本地视图向导:步骤4a限制记录。本地视图向导:步骤4a限制记录限制记录的方法与建立查询的限制记录的方法完全相同。在本例中仍保持在本地视图中包含所有的记录,因而取默认值,直接单击【下一步】,进入本地视图向导:步骤5完成。在第5步中的操作方法也与建立查询的方法相同,现选择“保存本地视图并浏览”,然后单击【完成】。弹出“视图名”对话框。在“视图名”文本框中输入“视图1”。

39、输入视图名后单击【确认】按钮,系统显示所建立的本地视图的结果。本地视图向导结束。2 2、利用视图设计器创建本地视图、利用视图设计器创建本地视图(1 1)进入视图设计器进入视图设计器进入视图设计器的方法与进入查询设计器的方法基本相同,下面以新建视图的方式进入视图设计器。启动视图设计器方法启动视图设计器方法新建一个视图可按以下步骤进入视图设计器:选择【文件】|【新建】命令,单击“视图”单选框,再单击【新建文件】按钮。在数据库设计器中,选择【数据库】|【新建本地视图】或单击数据库设计器的快捷菜单中的【新建本地视图】|【新视图】按钮。在项目管理器中,单击“数据”选项卡,在列表框中选定“本地视图”,再单

40、击【新建】按钮,单击【新建视图】按钮。修改一个视图可按以下步骤进入视图设计器:在数据库设计器窗口中,单击选定需要修改的视图,选择【数据库】|【修改】命令。在数据库设计器窗口中,右击需要修改的视图,在出现的快捷菜单中选择【修改】命令。在项目管理器中,单击【数据】选项卡,在列表框中选定需要修改的视图,单击【修改】按钮。“视图设计器视图设计器”工具栏说明工具栏说明添加表 移去表添加联接 显示SQL窗口最大化上部窗格添加表:显示“添加表或视图”对话框,从而可以向设计器窗口添加一个表或视图移去表:从设计器窗口的上窗格中移去选定的表。添加联接:在视图中的两个表之间创建联接条件显示/隐藏SQL窗口:显示或隐

41、藏建立当前视图的SQL语句最大化/最小化上部窗口:放大或缩小视图设计器的上窗格(2)从表中选择所需字段在进行本地视图设计器之前,先建立Classzc表和Department表,表结构和数据如下:通过上述方式之一打开视图设计器,在进入设计器之前,需要选定数据库和表,现选定XGGL数据库,如右图:从中选定表Classzc并单击【添加】按钮,然后单击【关闭】按钮,启动视图设计器。视图设计器进入视图设计器后,第一步先需要选定字段,选定字段可直接通过字段选项卡进行。其操作方法与查询设计器中选择字段的方法相同。从“可用字段”列表框里选定Classzc.班级简称字段,单击【添加】按钮或双击该字段,则Clas

42、szc.班级简称字段将会出现在右边的“选定字段”列表框中。本次建立的视图里,还需要选定Classzc.学习性质、Classzc.学制二个字段。它们选定的方法与选定Classzc.班级简称字段一样。如果需选定字段是“可用字段”列表框中的所有字段,可以单击【全部添加】按钮,这样就把所有字段添加到了“选定字段”列表框中去了,可以通过【移去】按钮将其移出来。如果需要全部移出,可以利用【全部移去】按钮快速移出。要将表中的字段添加到“选定字段”列表框中,除了上述方法外,还可以将鼠标指向视图设计器上部窗口中的表窗口中的字段上,按住鼠标左键或右键拖动一个字段到“选定字段”列表框,该字段就被加入到了“选定字段”

43、列表框中。还可以通过双击字段名将其加入到“选定字段”列表框。表窗口中的代表表中的全部字段,它也是可以拖动或双击的。若要从“选定字段”列表框中移去字段,也可以使用鼠标拖动或双击。“字段”选项卡还有一个【属性】按钮和一个“函数和表达式”文本框。只要“选定字段”列表框中有一个值,【属性】命令按钮就成为可选的了。选择【属性】后,出现图:属性设置可分为五种类型:字段有效性、显示、匹配字段到类、数据匹配和注释。其中字段有效性、显示、匹配字段到类和注释在第3章中介绍数据表设计时已经作过说明,视图设计和数据表设计在字段属性上基本类似。“函数和表达式”文本框及其按钮:“函数和表达式”文本框用于输入一个函数和表达

44、式,具体操作只需单击“函数和表达式”文本框后的对话按钮,在随后出现的表达式生成器中书写函数或表达式。此选项的功能是为了生成一个虚拟的字段。后面的创建步骤与本章前述的用查询设计器设计查询相似,在此不一一阐述。(3)建立多表关联前面主要是针对单一的本地表建立视图,虽然很容易,但它的实际功能不大。因为在实际开发中,系统的数据库很复杂,表的关联性很强,用户关心的往往是一些复杂的数据,因此需要建立多表视图。从定义上讲,多表视图指的是:视图中的字段来源于两个或两个以上的表。但是,在视图中表间的关系既不像数据库中的关系是永久的,也不像表中的关系是暂时的,它不靠索引字段进行联接,而是通过定义一个联接表达式来进

45、行联接,表间的关系是松散的。可以按如下办法建立表间的联接:在视图设计器中单击“联接”选项卡即可设置多表间的关联。在“添加表或视图”对话框中,选定表后,单击【添加】按钮,当视图设计器中的表在两个及以上时,视图设计器就会为选定的表建立关联。说明:用以上的方法建立多表关联,必须有多个表添加到了视图设计器中。后续的操作方法与设计多表查询相似,除不同点外,相同的部分这里不再讲述。例:建立表Department、Classzc、Student、Courses和Grade五表之间的关联的视图,名称为:视图3。(4)与设计多表查询不相同的部分更新条件视图的最大特点在于能用视图更新数据,这也是建立视图与建立查询

46、的主要区别,也是视图的重点所在。视图设计器中的“更新条件”选项卡可以用来设置允许视图更新表字段的条件。“更新条件”选项卡选项包括如下内容:“表”:指定视图所使用的哪些表可以修改。选择这个下拉列表框中的选项,可以确定哪些表中的字段可以在“字段名”列表框中,以便设置更新条件。此列表中所显示的表都包含了“字段”选项卡“选定字段”列表中的字段。【重置关键字】:这个按钮作用是从每个表中选择主关键字字段作为视图的关键字字段。每个主关键字字段是在“字段名”列表中的、在钥匙符号下面打一个对钩的字段,关键字字段可可用来使视图中的修改与表中的原始记录相匹配。【全部更新】:可以从字段名文本框中看到一些字段前的铅笔符

47、号下打了一个对钩,这表明这些字段可以更新。在这个按钮中可以选择除了关键字字段以外的所有字段来进行更新,并在“字段名”列表的铅笔符号下打一个对钩。“发送SQL更新”:指定是否将视图记录中的修改传送给原始表。如果选择了这个复选框,将把在视图中对记录字段的修改返回到源表中。“字段名”列表框:显示了从“表”列表框中所选的表中的字段、并用来输出这些字段,不过这些字段都是可以更新的。在字段文本框中共有下列3种方式字段:关键字段(使用钥匙符号作标记),指定该字段是否为关键字段。可更新字段(使用铅笔符号作标记),指定该字段是否为可更新字段。字段名,显示可标志为关键字字段或可更新字段的输出字段名。“SQLWHE

48、RE子句包括”:“关键字段”:如果在原始表中有一个关键字字段被改变,设置WHERE子句来检测冲突,对于由另一用户对表中原始记录的其他字段所做修改不进行比较。“关键字和可更新字段”:设置WHERE子句来检测由某一用户修改了任何可更新的字段的冲突。“关键字和已修改字段”:如果从视图首次检索(默认)以后,关键字字段或原始表记录的已修改字段中,某个字段做过修改,设置WHERE子句来检测冲突。“关键字段和时间戳”:如果自原始表记录的时间戳首次检索以后,它被修改过,设置WHERE子句来检测冲突。只有当远程表有时间戳列时,此选项才有效。“使用更新”:此单选按钮组用于指定字段如何在后端服务器上进行更新。“SQ

49、LDELETE然后INSERT”:指定先删除原始表记录后,再创建一个新的在视图中被修改的记录。“SQLUPDATE”:指定用视图字段中的内容来修改原始表中的字段。具体说明如何设置更新条件详见6.5在视图中更新数据。返回3.4.2 用已有的用已有的SQL SELECT语句创建视图语句创建视图同查询一样,可用SELECTSQL语言创建视图。SELECTSQL语句:格式:SELECT ALL|DISTINCT TOP nExpr PERCENT Alias.Select_Item AS Column_ Name,Alias.Select_Item AS Column_Name.FROM FORCE

50、DatabaseName!Table AS Local_Alias INNER|LEFT OUTER|RIGHT OUTER|FULL OUTER JOINDatabaseName!Table AS Local_Alias ON JoinCondition INTO Destination|TO FILE FileName ADDITIVE|TO PRINTER PROMPT|TO SCREEN PREFERENCE PreferenceName NOCONSOLE PLAIN NOWAIT WHERE JoinCondition.AND.JoinCondition.AND.|.OR.Filt

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服