第5章VFP视图与查询书稿.docx

上传人:b****5 文档编号:8005517 上传时间:2023-01-27 格式:DOCX 页数:24 大小:757.99KB
下载 相关 举报
第5章VFP视图与查询书稿.docx_第1页
第1页 / 共24页
第5章VFP视图与查询书稿.docx_第2页
第2页 / 共24页
第5章VFP视图与查询书稿.docx_第3页
第3页 / 共24页
第5章VFP视图与查询书稿.docx_第4页
第4页 / 共24页
第5章VFP视图与查询书稿.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

第5章VFP视图与查询书稿.docx

《第5章VFP视图与查询书稿.docx》由会员分享,可在线阅读,更多相关《第5章VFP视图与查询书稿.docx(24页珍藏版)》请在冰豆网上搜索。

第5章VFP视图与查询书稿.docx

第5章VFP视图与查询书稿

第5章视图与查询

在设计数据库时,各个数据表的结构是根据整个数据库系统的需要,按照规范化理论来设计的。

整个数据库由很多个表组成,里面的信息非常庞大,但在实际的应用过程中,不同的用户对数据库的认识是不同的,每个用户只关心自己的应用,也就是说,用户在许多时候,只关心整个数据库中的一部分信息。

那么,如何快速简便的提取出用户需要的信息呢?

视图和查询就是为了满足这个需要而设计的。

5.1视图

视图,是从一个或多个数据表中选择满足特定需要的数据所生成的“表”。

它并不是一个真正的表,因为视图中的数据还是存储在原来的数据表中,因此,我们可以把它看做是一个虚拟表。

介于这个特点,视图是不能单独存在的,它必须依赖于某一数据库并依赖其中的数据表而存在,只有在打开与视图相关的数据库时才能创建和使用视图。

视图有4个明显的优点,使得视图成为数据库设计中不可或缺的工具:

(1)灵活有效的选取数据:

视图既可以在一个数据表中挑选出需要的字段,组成原数据表的“子表”;也可以在多个数据表中,各挑选出部分或全部字段,组成逻辑上包含多个数据表的字段的虚拟表;甚至可以通过远程数据库建立远程视图。

(2)不增加数据冗余:

数据库中的视图只需要定义,是不包含实际数据的。

所以无论视图从数据表中选择多少数据组成“新表”,都不会重复存储任何数据,减少了数据冗余和由此带来的操作异常。

(3)使用方便:

尽管视图与数据表有本质的不同,但是在逻辑上二者是等价的。

即视图一经定义,用户就可以像使用数据表一样使用视图中“包含”的数据了。

(4)更新数据:

视图可以将对其中数据的修改回存到数据表,并且能够修改的字段是事先设置的。

这就使得视图既能够实现对数据表的更新功能,又可以保证更新是在合法的范围内进行的,保护了数据库中的其他数据不被非法修改。

在VisualFoxPro中,按照数据的来源,视图分为本地视图和远程视图两种。

顾名思义,本地视图的数据来源是本地数据库,在不引起混淆的前提下,本地视图可以简称为视图。

远程视图是指使用远程数据源建立的视图。

通过远程视图,用户可以从ODBC服务器上提取一部分数据,而不用将所有的数据都载入本地计算机。

在本地对所选择的记录进行更改后,结果可以返回远程的数据源。

本书只介绍本地视图的创建与使用。

在VisualFoxPro中建立视图最便捷的方式是利用系统提供的和视图设计器和视图向导两个工具.我们将在接下来的章节里逐一介绍.

5.1.1利用视图设计器创建视图

若要使用视图设计器来创建本地表的视图,首先应创建或者打开一个数据库,然后在数据库中打开视图设计器,创建好的视图也只能保存在该数据库中。

下面用两个例子说明创建视图的具体步骤。

例5.1利用视图设计器,依据“学生库”数据库,创建一个本地单表视图“班级专业视图”,其中包含“学号”、“姓名”、“班级”和“专业”字段,要求按“学号”字段升序排列。

注意:

由于视图必须依赖于数据库存在,所以在建立视图之前,一定要先打开数据库设计器,否则是无法建立视图的。

操作步骤如下:

1.打开数据库文件“学生库.dbc”,进入“数据库设计器”窗口,如图5-1所示。

图5-1

2.打开“新建”对话框,选择“视图”单选按钮,单击“新建文件”按钮,如图5-2所示。

图5-2图5-3

3.在“添加表和视图”对话框中添加表“学生情况表”,如图5-3所示。

添加完成后,点击“关闭”按钮,进入到“视图设计器”,如图5-4所示。

图5-4

4.在“视图设计器”的“字段”选项卡中,从左边“可用字段”栏选取所需要的字段“学生情况表.学号”、“学生情况表.姓名”、“学生情况表.班级”、“学生情况表.专业”,点击“添加”按钮将其添加到右边的“选定字段”中,如图5-5所示。

图5-5

5.在“排序依据”选项卡中设置记录的排序依据。

选择“学号”字段,设置为“升序”,如图5-6所示。

图5-6

6.按要求设计好后,点击“视图设计器”右上角的关闭按钮,保存视图并命名为“班级专业视图”,如图5-7和图5-8所示。

图5-7

图5-8

7.命名完成后,回到“数据库设计器”,选中刚刚建立的视图,如图5-9所示。

选择“数据库”菜单中的“浏览”。

或者双击视图的标题栏,可以查看视图内的记录,如图5-10所示。

从图中我们可以看到,视图“班级学生视图”中的数据是“学生情况表”中的部分数据,并重新进行了排序.

图5-9

图5-10

例5.2利用视图设计器,依据“学生库”数据库,创建一个本地多表视图“专业成绩视图”,其中包含“学号”、“姓名”、“总分”和“专业”字段,要求只显示总分大于250的学生的记录,结果按总分从高到低排列。

注意:

由于“学号”、“姓名”和“专业”是在学生情况表中,而“总分”是在学生成绩表中,所以我们创建的这个视图需要同时用到两张数据表,并且将两张表的记录,按照学号相等的关系对应起来,而筛选总分大于250的记录,并按分数从高到低排序则需要用到视图设计器中专门的一些功能选项实现。

操作步骤如下:

1.打开数据库文件“学生库.dbc”,进入“数据库设计器”窗口,选择系统菜单“数据库”的“新建本地视图”选项,如图5-11所示。

然后在弹出的“新建本地视图”对话框中,选择“新建视图”按钮,如图5-12所示。

图5-11

2.单击“新建视图”按钮后进入“视图设计器”窗口,同时弹出“添加表或视图”窗口,如图5-13所示。

在该窗口把视图所依据的“学生成绩表”和“学生情况表”逐一添加到视图设计器中。

图5-12图5-13

3.如果在数据库中,添加的多个表间并未设置好关联关系,则会弹出“联接条件”对话框,如图5-14所示。

在“联接条件”对话框中,有如下4种联接类型:

(1)内部联接:

查询结果包含左表与右表中与给出的联接条件相匹配的记录,这是系统默认的联接类型。

(2)左联接:

查询结果包含左表与右表中与给出的联接条件相匹配的记录,以及左表中其余的记录,右表中存在而左表中不存在的字段设置为.NULL.。

(3)右联接:

查询结果包含左表与右表中与给出的联接条件相匹配的记录,以及右表中其余的记录,左表中存在而右表中不存在的字段设置为.NULL.。

(4)完全联接:

查询结果包含左、右两表的全部记录,右表中存在而左表中不存在的字段和左表中存在而右表中不字段的记录均设置为.NULL.。

添加好所需要的表并建立好关联后,关闭“添加表或视图”窗口,进入“视图设计器”,如图5-15所示。

如果在设计过程中需要修改联接条件,可以在视图设计器的“联接”标签中设置,如图5-16所示。

图5-14

图5-15

图5-16

4.在“字段”标签中选取左边“可用字段”中所需要的字段“学生成绩表.学号”“学生成绩表.总分”“学生情况表.姓名”“学生情况表.专业”添加到右边的“选定字段”中,注意不同的字段存在于不同的表中。

选取时要注意表名,如图5-16所示。

图5-17

5.在“筛选”标签中设置对记录过滤的条件。

在这里我们设置为“学生成绩表.总分>=250”来表示总分不低于250。

如果多个筛选条件,则依次设置即可,如图5-18和5-19所示。

图5-18

图5-19

6.在“排序依据”标签中,从左边的“选顶字段”栏中选择“总分”字段作为排序条件,并在“排序选项”栏中选择“降序”,如图5-20所示。

图5-20

7.按要求设计好后,点击“视图设计器”右上角的关闭按钮,保存视图并命名为“专业成绩视图”,如图5-21所示。

图5-21

8.命名完成后,回到“数据库设计器”,选中刚刚建立的“专业成绩视图”,如图5-22所示。

选择“数据库”菜单中的“浏览”。

或者双击视图的标题栏,可以查看视图内的记录,如图5-23所示。

从结果中我们可以看到,视图中的数据是按照学号关联起来的“学生情况表”和“学生成绩表”中的部分数据,并重新进行了排序。

图5-22

图5-23

5.1.2利用视图向导创建视图

用向导创建视图是另一种视图创建方法,并且设计出的视图也可以在视图设计器中进行修改,操作方法将举例说明。

例5.3利用视图向导,创建例5.2中的视图。

操作步骤如下:

1.打开“学生表”数据库,选择系统菜单“数据库”的“新建本地视图”选项,然后在弹出的“新建本地视图”对话框中,选择“视图向导”按钮,如图5-24所示。

图5-24

2.在出现的“本地视图向导”第一步“步骤1-字段选取”中设置需要用到的字段,首先,在最左边的“数据库和表”选项中选取“学生情况表”,将其中的“学号”、“姓名”、“专业”字段添加到“选定字段”中,如图5-25所示。

然后选中“学生成绩表”,将其中的“总分”字段添加到“选定字段”中,如图5-26所示。

逐一添加好各表中需要的字段后,点击“下一步”。

图5-25

图5-26

3.在出现的“本地视图向导”第二步“步骤2–为表建立关系”中设置表间的关联关系。

由于两张表是用学号相等来联接的,所以在该窗口的两个下拉列表框中分别选取“学生情况表.学号”和“学生成绩表.学号”,而后点击“添加”按钮将关系添加到下方,,如图5-27和图5-28所示。

如果视图使用的表超过两张,则还要继续添加其他的关联关系。

添加完成后点击“下一步”。

图5-27

图5-28

4.在出现的“步骤2a-字段选取”中设置多表关联时记录的选择规则。

在这里选择“仅包含匹配的行”,表示只有当两张表中都有对应的学号信息时,才将记录显示出来。

如果某学号的记录在其中一张数据表中存在而在另一张数据表中不存在,则该学号的所有信息不在视图内显示。

如图5-29所示。

选择完成后点击“下一步”。

图5-29

5.在出现的“步骤3–筛选记录”中设置记录的筛选规则。

在“字段”栏中选择“学生成绩表.总分”、在“操作符”栏中选择“大于或等于”、在“值”栏中输入“250”,如图5-30所示。

设置好后点击“下一步”。

图5-30

6.在出现的“步骤4–排序记录”中设置视图中记录的排序规则。

从“可用字段”中选择“学生成绩表.总分”为排序字段,并设置为降序。

,如图5-31所示。

图5-31

7.在出现的“步骤4a–限制记录”中设置视图中记录的显示个数,在这里选择“所有记录”后点击“下一步”,如图5-32所示。

图5-32

8.在出现的“步骤5–完成”中设置视图的保存。

在这里选择“保存本地视图”,然后点击“完成”按钮,如图5-33所示。

在弹出的“视图名”对话框中输入“专业成绩视图2”后确认,如图5-34所示。

图5-33图5-34

9.向导完成后,可以在“学生库”中找到该视图并浏览,如图5-35和图5-36所示。

图5-35

图5-36

5.1.3利用视图更新数据

视图有一个很重要的特点,就是对数据的更新功能。

由于视图是一张“虚表”,视图中的数据都是储存在原始表中,所以我们就可以通过对视图内数据的修改来完成对原始表的修改。

而且,可以设置通过对视图的设置,让用户只对指定的字段有更新权限,从而保护原始数据的安全。

在“视图设计器”中,可以利用“更新条件”选项卡来设置视图中的更新规则。

下面举例介绍用本地视图更新数据表中的数据。

例5.4修改例5.1中创建的“班级专业视图”,使得该视图可以更新其中的“班级”信息。

操作步骤如下:

1.打开数据库“学生库”,选中例5.1中创建的“班级专业视图”,右键单击标题栏,选择“修改”,如图5-37所示。

图5-37

2.打开“视图设计器”后选中“更新条件”标签,如图5-38所示。

图5-38

3.在“更新条件”标签中设置可更新字段。

由于在视图中所有的数据都是来自于原始数据表,所以在设置更新字段之前,首先要设置关键字字段,关键自字段的作用是用来使视图中的修改与表中的原始记录相匹配。

只有设置了关键字字段,该字段所在的原始表内的字段才可以被设置为可更新字段。

在本例中,从“字段名”列表框中选择“学号”,单击其左边“

”图标列显示一个“

”,这表示将该字段作为视图的关键字字段,如图5-39所示;然后选择“班级”,单击其左边的“

”图标列显示一个“

”,这表示在视图中该字段是可更新字段,如图5-40所示。

图5-39图5-40

4.如果想使视图中数据的修改可以返回到源表中,还要勾选“发送SQL更新”选项,如图5-41所示。

图5-41

5.完成后关闭“视图设计器”,确认保存修改,如图5-42所示。

图5-42

6.保存后浏览视图,选中其中学号为“20052202”的记录,修改该记录的“班级”字段为“06本1班”,并修改“专业”字段为“计算机应用技术”,然后关闭,如图5-42所示。

图5-42

7.打开原始表“学生情况表”,找到学号为“20052202”的记录,可以看到上一步在视图中对“班级”字段的更新已经完成,而对“专业”字段的更新无效,如图5-43所示。

图5-43

5.2查询

查询的功能和视图类似,也是通过设置一些查询条件,在一定的范围内查找符合条件的数据,以一定的顺序显示和保存查询结果。

查询不需要依赖数据库存在,它是以单独的文件形式存在的(.QPR),查询数据实际上就是运行查询文件的过程。

查询得到的结果,不仅可以用来浏览,还能以多种方式输出。

查询和视图的主要区别是:

(1)视图必须在数据库中建立,离开数据库就失去了数据来源,脱离数据库的视图是没有意义的;而查询可以脱离数据库以独立的文件形式存在。

(2)查询的结果可以以多种的形式输出,而视图只能以虚拟表的形式浏览和使用。

(3)查询只能从数据库中读取数据,不能修改原始数据;而视图可以修改更新数据库。

5.2.1利用查询设计器创建查询

查询设计器的使用方法和视图设计器基本相似,但不需要先打开数据库,查询所要用到的数据表可以在浏览窗口中添加。

下面用举例说明创建查询的具体步骤。

例5.5利用查询设计器创建一个单表查询“教师职称表”,使其能查询出“教师基本情况表”里的“编号”、“姓名”、“职称”和“所属部门”信息。

操作步骤如下:

1.在系统菜单下选择“文件”菜单中的“新建”选项。

在出现的“新建”对话框中选择“查询”,然后点击“新建文件”按钮,如图5-44所示。

图5-44图5-45

2.在弹出的“打开”对话框中浏览到查询所要用到的数据表,如图5-45所示。

然后添加到“查询设计器”中。

如果要添加多张数据表,则可点击“其他…”按钮逐一添加,如图5-46所示。

添加完成后点击“关闭”按钮返回“查询设计器”。

图5-46

3.在“查询设计器”中添加好查询所需要的字段。

从“可用字段”列表中选择“教师编号”、“姓名”、“职称”和“所属部门”添加到“选定字段”列表中,如图5-47所示。

图5-47

4.设置排序规则。

在“排序依据”标签中,选择“教师编号”为排序条件,并按升序排列,如图5-48所示。

图5-48

5.保存查询。

点击“关闭”按钮,确认保存查询,如图5-49所示。

在“另存为”对话框中给查询取名“职称部门查询.qpr”后保存,如图5-50所示。

图5-49

图5-50

6.运行查询。

在系统菜单选择“查询”菜单中的“运行查询”选项,可以查看查询的结果,如图5-51所示。

图5-51

5.2.2利用查询向导创建查询

利用查询向导创建查询的方法,和使用视图向导的方法基本一样,下面简单举例说明。

例5.6用查询向导建立一个多表查询“职工实发工资表”,使其包含“教师编号”、“姓名”、“所属部门”和“实发数”信息。

操作步骤如下:

1.在系统菜单下选择“文件”菜单中的“新建”选项。

在出现的“新建”对话框中选择“查询”,然后点击“向导”按钮,在弹出的“向导选取”对话框中,选择“查询向导”,如图5-52所示。

图5-52

2.选取查询所要使用的数据表。

在初始状态下,右边的“数据库和表”栏是空的。

我们需要点击后面的

按钮来浏览原始表。

如图5-53所示。

在出现的“打开”对话框中浏览到查询所要用到的“教师库”后确认。

图5-53

3.添加好数据库后,从右边的“数据库和表”列表框中选择需要的表,然后选择字段组成查询。

在这里选择“教师工资表”中的“教师编号”和“实发数”,选择“教师基本信息表”中的“姓名”和“所属部门”,如图5-54所示。

图5-54

4.在下一步“步骤2-为表建立关系”里设置好表间关系为“教师工资表.教师编号=教师基本信息表.教师编号”。

5.在“步骤2a-字段选取”中将记录匹配原则设置为“紧包含匹配的行”。

6.在“步骤3-筛选记录”中直接按“下一步”。

7.在“步骤4–排序记录”中选择按“教师编号”升序排列。

8.在“步骤5-完成”中选择“保存查询”后,点击“完成”按钮,然后在弹出的“另存为”对话框中将查询保存为“职工实发工资表.qpr”,如图5-55所示。

图5-55

5.2.3查询的输出去向

查询的创建方法和视图基本一样,但是在使用功能方面却有很大的区别。

视图的特点在于它可以将修改更新到数据源,而查询的优势则体现在查询的输出多样性上,下面将举例说明查询去向的设置方法。

例5.7修改例5.6中的查询去向,使其作为图形输出。

操作步骤如下:

1.打开上例创建的“职称部门查询.qpr”,进入“查询设计器”后,选择“查询”菜单中的“查询去向”选项,如图5-56所示。

图5-56

2.在“查询去向”对话框中,给出了七种输出格式供用户选择,默认为“浏览”,各种去向的含义为:

浏览:

在“浏览”窗口中显示查询结果;

临时表:

将查询结果存储在一个用户命名的临时只读表中;

表:

把结果存为一个由用户命名的表,关闭查询后,结果仍然保存在该表中,如图5-57;

图形:

把查询的结果可利用Microsoft的图形功能输出;

屏幕:

在当前输出窗口显示查询结果,还可指定输出到打印机或者文本文件;

报表:

作为数据源向报表文件发送查询结果;

标签:

作为数据源向标签文件发送查询结果;

图5-57

该例中我们要求用图形输出,在“查询去向”对话框中选择“图形”后确认,如图5-58所示。

图5-58

3.设置好查询去向后,打开系统“查询”菜单,选择“运行查询”,进入到“图形向导”窗口。

在“步骤2–定义布局”中,需要定义图形的横、纵坐标的数据来源。

在这里要注意操作的方法:

将可用字段中的“实发数”拖动到中间“数据系列”列表框中,再把“姓名”列拖动到右边的“A坐标轴B”中,如图5-59所示。

图5-59

4.在下一步“步骤3-选择图形样式”中,系统给出了许多的图形样式,根据需要选择一个,再按“下一步”按钮,如图5-60所示。

图5-60

5.在“步骤4-完成”中输入图形的标题后,可点击“预览”窗口查看下结果,确认后点击“完成”按钮,如图5-61所示。

在弹出的“另存为”窗口中保存为“工资图表”。

图5-61

6.保存完毕后进入表单设计界面,如图5-62所示。

在这里我们可以看到图形是一个以姓名为横坐标,工资实发数为纵坐标的图表,执行后的效果如图5-63所示。

图5-62

图5-63

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1