《Visual FoxPro数据库程序设计教程》课件第5章_第1页
《Visual FoxPro数据库程序设计教程》课件第5章_第2页
《Visual FoxPro数据库程序设计教程》课件第5章_第3页
《Visual FoxPro数据库程序设计教程》课件第5章_第4页
《Visual FoxPro数据库程序设计教程》课件第5章_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

第5章查询与视图设计5.1应用查询向导创建查询

5.2应用查询设计器设计查询

5.3查询文件设计举例

5.4视图设计

5.1应用查询向导创建查询

如果要快速创建查询,可使用VisualFoxPro的查询向导。查询向导可以建立一般用途的查询文件和特殊用途的查询文件。在创建时,向导按交互方式询问用户希望在哪些表或视图中搜索信息,并根据用户对一系列问题的交互式回答来设置查询文件的功能。用查询向导生成查询文件的步骤如下:

(1)选择“文件”菜单,下拉菜单的“新建”命令项,弹出“新建”对话框,如图5.1所示。在新建对话框中选中“查询(Q)”选项,并单击“向导(W)”按钮。图5.1“新建”对话框

(2)在如图5.2所示的“向导选取”对话框中,选择所需生成的查询文件类型。然后选择“查询向导”类型,并单击“确定”按钮,将弹出“查询向导”步骤1对话框——字段选取对话框,如图5.3所示。图5.2“向导选取”对话框图5.3“查询向导”步骤1

(4)在图5.4所示的对话框中,选择筛选条件,也可以不设置筛选条件,单击“下一步”按钮。图5.4“查询向导”步骤3

(5)在图5.5所示的对话框中,选取“编号”作为排序字段,然后单击“添加”按钮,使之添加到右侧的选定字段列表框中,继续单击“下一步”按钮。图5.5“查询向导”步骤4

(6)在图5.6所示的对话框中,设置限制记录的数量和百分比,也可以不设置,取默认值,单击“下一步”按钮。图5.6“查询向导”步骤4a

(7)在图5.7所示的对话框中,选择“保存并运行查询”选项,然后单击“完成”按钮,这时查询文件立即运行,如图5.8所示。图5.7“查询向导”步骤5图5.8查询文件运行结果

5.2应用查询设计器设计查询

5.2.1查询设计器

1.启动查询设计器的方法

启动查询设计器,建立查询文件的方法很多:

(1)选择“文件”菜单下的“新建”选项,或单击常用“工具栏”上的“新建”按钮,打开“新建”对话框,然后选择“查询”并单击“新建文件”按钮,这样就可以打开查询设计器。

(2)用CREATEQUERY命令打开查询设计器并建立查询文件。

(3)利用SQLSELECT命令直接编辑 .qpr文件建立查询文件。

2.查询设计器的窗口

选择“文件”|“新建”菜单项,弹出的新建文件对话框如图5.9所示,选择“查询”单选按钮,然后单击“新建文件”按钮。接着启动查询设计器,并显示“添加表或视图”对话框,如图5.10所示。从中选择用于建立查询的表或视图,单击要选择的表或视图,然后单击“添加”按钮。如果单击“其他”按钮还可以选择自由表。当选择完表或视图后,单击“关闭”按钮正式进入如图5.11所示的“查询设计器”窗口。注意,当一个查询是基于多个表时,这些表之间必须是有联系的。“查询设计器”会自动根据联系提取联接条件,否则在打开图5.11所示的“查询设计器”之前还会打开一个指定联接条件的对话框,由用户来设计联接条件。图5.9“新建”文件对话框图5.10“添加表或视图”对话框图5.11“查询设计器”窗口查询设计器窗口中有六个选项卡,其功能和SQLSELECT命令的各子句是相对应的。

字段单击“字段”选项卡,用来设置查询结果中要包含的字段,对应于SELECT语句中的输出字段。双击“可用字段”列表框中的字段,相应的字段就自动移到右边的“选定字段”列表框中。如果要选择全部字段,则单击“全部添加”按钮。在“函数和表达式”编辑框中,输入或由“表达式生成器”生成一个计算表达式,如AVG(入学成绩)。

联接如果要查询多个表,可以在“联接”选项卡中设置表之间的关联条件,对应于JOINON子句的功能。

筛选在“筛选”选项卡中设置查询条件,对应于WHERE子句的功能。排序依据在“排序依据”选项卡中指定排序的字段和排序方式,对应于ORDERBY子句的功能。

分组依据在“分组依据”选项卡中设置分组条件,对应于GROUPBY子句和HAVING子句的功能。

杂项在“杂项”选项卡中设置有无重复记录以及查询结果中显示的记录数等。

由此可见,查询设计器实际上是SQLSELECT语句的图形化界面。5.2.2建立查询文件

例5.1

建立一个查询文件,要求显示员工的部门、编号、姓名、出生日期及基本工资等信息,并按“基本工资”字段的数据升序排列记录。具体的操作如下:

(1)启动查询设计器。启动查询设计器,并将员工表(jbqk.dbf)添加到查询设计器中。

(2)选取查询所需的字段。在查询设计器中单击“字段”选项卡,从“可用字段”列表框中选择“编号”字段,再单击“添加”按钮,将其添加到“选定字段”列表框中,使用上述方法将“姓名”、“出生日期”、“部门”和“基本工资”字段添加到“选定字段”列表框中,这5个字段即为查询结果中要显示的字段,如图5.12所示。“选定字段”列表框中显示字段的顺序是可以改变的,用鼠标拖动选定的字段左边的小方块上下移动,即可调整字段的显示顺序。图5.12选定字段

(3)设置排序字段。如果在“排序依据”选项卡中不设置排序条件,则显示结果按表中记录的原顺序显示。现要求记录按“基本工资”的升序显示记录,因此在“选定字段”列表框中选择“基本工资”字段,再单击“添加”按钮,将其添加到“排序条件”列表框中,再选择“排序选项”的“升序”单选按钮,如图5.13所示。

(4)保存查询文件。查询文件设计完成后,选择系统菜单中“文件”下拉菜单的“另存为”选项,或单击常用工具栏上的“保存”按钮,打开“另存为”对话框。选定查询文件将要保存的位置,输入查询文件名,并单击“保存”按钮。图5.13设置排序字段

(5)查看对应的SQLSELECT语句。完成查询设计的交互式操作之后,单击“查询设计器”工具栏中的“SQL”按钮,或从“查询”菜单选项中选择“查看SQL”命令,就可以看到查询文件的SQLSELECT语句内容。例如,上面所建立查询文件的SQLSELECT语句如下:

SELECTjbqk.部门,jbqk.编号,jbqk.姓名,jbqk.出生年月,jbqk.基本工资;

FROM示范数据库!jbqk;

ORDERBYjbqk.基本工资

(6)运行查询文件。单击常用工具栏上的“!”按钮,就能运行查询文件,运行结果如图5.14所示。图5.14查询文件运行结果5.2.3查询文件的运行方法

查询文件设计完成之后,通过运行查询文件,显示查询文件的输出结果,查询结果不满意或不符合要求时,可重新修改查询文件。同时在设计查询过程中可以设置查询结果的去向(输出结果),以满足用户的不同要求。

使用查询设计器设计查询时,每设计一步,都可以运行查询文件,查看运行结果,这样可以边设计、边运行,对查询结果不满意可以再设计、再运行,直至达到满意的效果。交互式设计查询工作完成并保存之后,即可利用菜单选项或命令运行查询文件。

(1)在查询设计器中直接运行。在查询设计器窗口,选择“查询”菜单中的“运行查询”选项,或单击常用工具栏的“!”按钮,即可运行查询。上面建立的查询文件就是用此方法运行的。

(2)利用菜单选项运行。在设计查询过程中或保存查询文件后,单击“程序”菜单中的“运行”选项,打开“运行”对话框。然后选择要运行的查询文件,再单击“运行”按钮,即可运行。

(3)命令方式运行。在命令窗口中输入运行查询文件的命令,也可以运行查询文件。命令格式为

DO查询文件名.qpr5.2.4修改查询文件

用户可以在任何时候使用查询设计器来修改以前建立的查询文件。下面针对上面建立的查询文件,对其进行修改,使其只查询部门是“软件中心”的相关记录,并以“基本工资”字段降序排列记录,这就需要设置“筛选”条件。具体步骤如下:

(1)打开查询设计器。选择“文件”菜单中的“打开”选项,指定文件类型为“查询”,选择相应的查询文件,单击“确定”按钮,即可打开该查询文件对应的查询设计器窗口。另外,也可以使用命令修改查询文件,命令格式为

MODIFYQUERY查询文件名.qpr

(2)修改查询条件。根据查询结果的需要,可在6个查询选项卡中对不同的选项进行重新设置查询条件。下面根据要求,对查询文件进行修改。

设置查询条件,单击“筛选”选项卡,从“字段名”下拉列表框中选取“部门”字段,在“条件”下拉列表框中选择“=”,在“实例”文本框中输入“软件中心”,如图5.15所示。图5.15设置筛选条件修改排序顺序,将排序顺序改为按“基本工资”降序排列,单击“排序依据”选项卡,从“排序选项”中选取“降序”选项,并单击其按钮。

(3)运行查询文件。单击常用工具栏上的“!”按钮,运行查询文件,运行结果如图5.16所示。

(4)保存修改结果。选择“文件”菜单中的“保存”选项,或单击常用工具栏上的“保存”按钮,保存对文件的修改。然后单击“关闭”按钮,关闭查询设计器。图5.16查询文件运行结果5.2.5定向输出查询文件

通常,如果不选择查询结果的去向,系统将默认查询的结果显示在“浏览”窗口中。也可以选择其他输出目的地,将查询结果送往指定的地点,例如输出到临时表、表、图形、屏幕、报表和标签。查询去向及含义如下:

浏览查询结果以浏览形式输出到屏幕窗口上。

临时表查询结果保存到一个临时的只读表中。

表查询结果保存到一个指定的表中。

图形查询结果输出到图形文件中。

屏幕查询结果输出到当前活动窗口中。

报表查询结果输出到一个报表文件中。

标签查询结果输出到一个标签文件中。下面将查询文件的输出修改到临时表,具体操作方法如下:

(1)打开查询设计器。

(2)选择“查询”菜单中“查询去向”选项,系统将显示“查询去向”对话框,如图5.17所示。

(3)单击“临时表”按钮,此时屏幕画面出现对话框。在“临时表名”文本框中输入临时表名,并单击“确定”按钮,关闭“查询去向”对话框。

(4)保存对查询文件的修改。单击查询设计器窗口的“关闭”按钮,关闭查询设计器。

(5)运行该查询文件,由于将查询结果输出到了一个临时表中,因此查询结果将不在 “浏览”窗口中显示。图5.17查询去向对话框选择“显示”菜单中的“浏览”选项,将显示该临时表的内容。单击浏览窗口的“关闭”按钮,关闭浏览窗口。如果用户只需浏览查询结果,可输出到浏览窗口。浏览窗口中的表是一个临时表,关闭浏览窗口后,该临时表将自动删除。用户可根据需要选择查询去向,如果选择输出为图形,在运行该查询文件时,系统将启动图形向导,用户根据图形向导的提示进行操作,将查询结果送到MicrosoftGraph中制作图表。把查询结果用图形的方式显示出来虽然是一种比较直观的显示方式,但它要求在查询结果中必须包含有用于分类的字段和数值型字段。另外,表越大图形向导处理图表的时间就越长,因此用户还必须考虑表的大小。

5.3查询文件设计举例

例5.2

设计一个关联表查询文件。

①打开查询设计器窗口。

②添加两个数据库表:dgd.dbf和gys.dbf。

③设置查询文件的输出字段:dgd.职工号,dgd.供应商号,dgd.订购单号,dgd.订购日期,dgd.总金额,gys.供应商名和gys.地址。

④设置多表的关联条件:dgd.供应商号=gys.供应商号,如图5.18所示。图5.18多表查询文件⑤运行查询文件的结果,如图5.19所示。图5.19多表查询运行结果

例5.3

设计一个运用“函数和表达式”计算职工实发工资的查询文件。

①打开查询设计器窗口。

②设置查询文件的输出字段jbqk.部门,jbqk.编号,jbqk.姓名,jbqk.职称,jbqk.基本工资,jbqk.奖金和实发工资。

③单击“函数和表达式”文本框后边的“...”按钮,弹出如图5.20所示的“表达式生成器”对话框,双击“字段”列表框中的“基本工资”,使得它出现在“表达式”文本框中。再双击“数学”列表框中的“+”,然后双击“字段”列表框中的“奖金”,之后输入“AS实发工资”,并单击“确定”按钮。或者单击“添加”按钮,将表达式“jbqk.基本工资+jbqk.奖金AS实发工资”添加到“选定字段”列表框中。图5.20表达式生成器④运行查询文件的结果,如图5.21所示。这种查询文件不仅具有计算功能,而且具有增加表头字段的功能。图5.21复杂查询的运行结果 5.4视图设计

视图从应用的角度来讲类似于表,它具有表的属性。对视图的所有操作,如打开与关闭、设置属性(如字段的显示格式、有效性规则等)、修改结构以及删除等,都与对表的操作相同。视图作为数据库的一种对象,有其专门的设计工具和命令。同时,视图还具有查询的特点,可以用来从一个或多个相关联的表中检索有用信息。而且视图还可以更新数据源表中的数据,这也是视图与查询的根本区别。

视图有两种类型:一种是本地视图,另一种是远程视图。本地视图是从当前数据库的表或者其他视图中选取信息,而远程视图则是从远程服务器的数据源中(如SQLServer数据库)提取数据。5.4.1视图设计器

1.启动视图设计器

(1)打开一个需要使用的数据库文件。

(2)在系统菜单中,选择“文件”/“新建”选项,打开“新建”对话框。选择“视图”单选按钮,再单击“新建文件”按钮,在打开视图设计器的同时,还将打开“添加表或视图”对话框,将所需的表添加到视图设计器中。

(3)使用命令也可以启动视图设计器,在命令窗口键入命令:CREATEVIEW文件名。需要注意的是,视图不能单独存在,它只能是数据库的对象,所以在打开数据库时,视图文件不能操作。

2.视图设计器窗口

视图设计器的窗口和查询设计器基本相同,不同之处是视图设计器下半部分的选项卡有7个,其中6个的功能和用法与查询设计器完全相同。这里介绍一下它不同于查询设计器的“更新条件”选项卡的功能和使用方法。单击“更新条件”选项卡,如图5.22所示。图5.22更新条件选项卡5.4.2建立视图

1.单表视图的设计

职工表(jbqk.dbf)是由多个字段组成的,如果只检索和修改其中的编号、姓名、性别、部门、基本工资和奖金字段,可以创建一个视图来进行操作。

例5.4

对职工表建立视图,输出字段为编号、姓名、性别、部门、基本工资和奖金,并且检索部门为“软件中心”,性别为“男”的记录。其操作步骤如下:

(1)先打开示范数据库,再打开视图设计器,将jbqk.dbf表添加到视图设计器窗口。

(2)单击视图设计器的“字段”选项卡,将可用字段jbqk.编号、jbqk.姓名、jbqk.性别、jbqk.部门、jbqk.职称和jbqk.基本工资、jbqk.奖金添加到“选定字段”列表框中。

(3)单击“筛选”选项卡,设置筛选的条件:部门="软件中心"AND性别="男",如图5.23所示。图5.23筛选条件

(4)查看SQL语言。视图实际上是一条SQLSELECT语句,单击视图工具栏上的“SQL”按钮,立即显示出SQL语言。通过查看SQL语言,增强读者对SQL语言的理解。SQL语言的内容如下:

SELECTjbqk.部门,jbqk.编号,jbqk.姓名,jbqk.性别,jbqk.职称,jbqk.基本工资;

jbqk.奖金;

FROM示范数据库!jbqk;

WHEREjbqk.部门="软件中心"ANDjbqk.性别="男"

(5)运行视图。视图的运行和查询文件的运行完全一样,单击工具栏上的“!”按钮,运行结果如图5.24所示。图5.24视图运行结果

(6)存储视图。选择“文件”菜单中的“另保存”选项,出现“保存”对话框,在对话框中输入视图名后,单击“确定”按钮。

2.表视图的设计

学生管理数据库中的选课表,对于一般用户来讲是无法使用的,因为学号和课程号都采用的是代码方式,所以有必要使用视图方式进行透明性操作。这样,在操作过程中看到学号时,就知道其学生姓名;看到课程号时,就知道其课程名称。

例5.5

对学生管理数据库建立视图,显示学生姓名、课程名及成绩。这里的姓名、课程名及成绩等信息分布于学生、课程和选课3个表中,因此要建立一个以这3个数据表为数据源的视图。具体操作步骤如下:

(1)新建视图,并依次将学生表、选课表和课程表添加到视图设计器窗口。

(2)选择与设置输出字段。在“字段”选项卡上,设定输出字段为学生.学号、学生.姓名、选课.课程号、选课.课程名、选课.成绩,如图5.25所示。图5.25视图设计器

(3)设置联接条件。这3个表之间有一定的关联关系,由于它们之间的关联关系已经存在于数据库中,所以关系表达式将自动被带进来,如图5.26所示。如果数据中没有设置联接,则需要在此进行手工设置联接关系表达式。操作方法是单击“视图设计器”工具栏中的“添加联接”按钮,进入“联接条件”对话框进行设置。图5.26设置联接条件

(4)更新设计。本例中有3个表,不需要更新学生表和课程表(使用这两个表的目的是帮助显示学生成绩),需要更新的只有选课表。在此选择“更新条件”选项卡,在“表”下拉组合框中选择“选课”,设置“关键字段”和“更新字段”,在“SQLWHERE子句包括”框中选择“关键字和可更新字段”项,在“使用更新”框中选择“SQLUPDATE”项。

(5)保存该视图,然后运行该视图。可见,在显示学号和课程号的同时,显示了相应的学生姓名和课程名,如图5.27所示。图5.27视图运行结果

3.视图参数的应用

在利用视图进行信息查询时可以设置参数,让用户在使用时输入参数值。

例5.6

对学生管理数据库建立视图,输入任何一个学生的学号后,提取该学生所选的课程名和成绩。

本例将建立一个在运行时根据输入学生学号而任意查询的视图,操作步骤如下:

(1)新建视图,依次将学生表、选课表和课程表添加到视图设计器窗口。

(2)选择输出字段。在“字段”选项卡上设定输出字段为学生.姓名、课程.课程名和选课.成绩。

(3)在“筛选”选项卡上设置字段名为学生.学号=?学号,如图5.28所示。图5.28设置带参数的筛选条件

(4)保存视图,然后运行该视图,此时系统显示“视图参数”对话框,要求给出参数值,如"2003001",就能显示该学号的学生选课情况,如图5.29所示。图5.29“视图参数”对话框5.4.3使用视图更新数据

更新数据是视图的重要特点,也是与查询最大的区别。使用“更新条件”选项卡可以把用户对表中数据所做的修改,包括更新、删除及插入等结果返回到数据源中。

例5.7

对学生表建立一个视图文件,使其显示学号为“2003001”的学生信息,并将学号修改为“2006001”,将姓名修改为"王大力"。具体操作方法如下:

(1)启动视图设计图。将“学生表”加入视图设计器。

(2)选择字段。在“字段”选项卡中,将“可用字段”列表框中的全部字段添加到“选定字段”列表框中,作为视图中要显示的字段。

(3)设置筛选条件。单击“筛选”选项卡,在“字段名”输入框中单击,从显示的下拉列表中选取学号字段,从“条件”下拉列表中选择“=”运算符,在“实例”输入框中单击,显示输入提示符后输入“?学号”。

(4)设置更新条件。

①选择“更新条件”选项卡,设定学号和姓名为关键字段。方法是在“字段名”列表框下,分别在学号字段前“钥匙”符号下单击,将其设置为选中状态。

②设定可修改的字段。由于只修改学号和姓名字段的值,因此,在这两个字段前“铅笔”符号下单击,将其设置为可修改字段。③单击“发送SQL更新”复选框,把视图的修改结果返回到源数据表中。单击“使用更新”设置为“

温馨提示

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

评论

0/150

提交评论