Visual FoxPro数据库程序教程素材.docx

上传人:b****9 文档编号:28957412 上传时间:2023-07-20 格式:DOCX 页数:44 大小:404.02KB
下载 相关 举报
Visual FoxPro数据库程序教程素材.docx_第1页
第1页 / 共44页
Visual FoxPro数据库程序教程素材.docx_第2页
第2页 / 共44页
Visual FoxPro数据库程序教程素材.docx_第3页
第3页 / 共44页
Visual FoxPro数据库程序教程素材.docx_第4页
第4页 / 共44页
Visual FoxPro数据库程序教程素材.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

Visual FoxPro数据库程序教程素材.docx

《Visual FoxPro数据库程序教程素材.docx》由会员分享,可在线阅读,更多相关《Visual FoxPro数据库程序教程素材.docx(44页珍藏版)》请在冰豆网上搜索。

Visual FoxPro数据库程序教程素材.docx

VisualFoxPro数据库程序教程素材

基本知识

数据、数据处理

一、数据

如文件系统中数据与程序的关系表示信息有多种方法,如文字、声音、图形、图像等。

表示信息的文字、声音、图形、图像等在计算机中统称为数据。

二、数据处理

要想从大量数据中获得所需的资料,就必须对数据进行加工处理,如分类、排序、统计等等。

对数据进行加工处理并转换为信息的过程简称为数据处理。

利用计算机进行数据处理时,所采用的技术统称为数据管理技术。

数据管理技术的发展

发展阶段

在数据库出现以前,计算机用户就是用数据文件来存放数据。

常用高级语言从早期的FORTRAN到今天的C语言,都支持使用数据文件。

文件系统中数据与程序的关系

1、人工管理阶段

2、文件系统阶段

3、数据库管理阶段

如数据库系统中数据库与程序的关系。

对所有数据实行统一规划管理,形成一个数据中心,构成数据”仓库”.20世纪70年代开始在文件管理基础上发展起来的。

数据库系统中数据库与程序的关系

4、分布式数据库管理阶段

5、面向对象数据库系统

文件管理方式的缺点

1、数据和应用程序独立性差

2、数据冗余度大

3、数据安全性、完整性差

4、缺乏灵活性

数据模型

数据模型的认识

1、何谓数据模型?

客观实体(如学生)可以用一定结构的数据表示出来。

表示客观实体的数据所采用的结构就叫数据模型。

2、数据模型的种类

·层次模型

如层次模型示意图。

用树形结构来表示各类实体以及实体间的联系。

层次模型

·网状模型

如网状模型。

网状模型用网形结构来表示各类实体以及实体间的联系。

网状模型满足的条件如下:

1)允许一个以上结点无双亲;

2)允许一个结点可以有多于一个双亲。

网状模型

·关系模型

如关系模型,是1970年由美国IBM公司SanJose研究室的研究员EF.Codd首次提出,他并为关系数据库管理系统的技术奠定了基础。

EF.codd的关系模型是建立在严格的数学概念基础上。

关系模型是用一张二维表来表示实体和实体间联系的模型。

关系模型

·面向对象模型

用得最多的是关系模型。

关系模型的认识

如VisualFoxpro中表的联系为建立的表之间的关系,下面介绍有关基本知识。

1、有关术语

·关系

一张二维表。

·属性

二维表中的一列是一个属性。

每个属性有一个属性名。

·元组

二维表中的一行是一个元组。

·关键字

关系(即二维表)中,能够唯一确定一个元组的属性或属性集合称为关键字。

关键字往往不止一个。

有多个关键字时,可以指定一个为主关键字,则其他的称为候选关键字。

·外部关键字

如果表中的一个字段不是本表的主关键字或候选关键字,而是另外一个表的主关键字或候选关键字,这个字段(属性)就称为外部关键字。

·域

属性的取值范围。

2、关系模型的表示

关系名(属性1,属性2,……,属性n)

如:

学生(学号,姓名,性别,籍贯)

3、关系的特点

·关系必须规范化

·在同一个关系中不能出现相同的属性名

·关系中不允许有完全相同的元组

·在一个关系中元组的次序无关紧要

·在一个关系中列的次序无关紧要

VisualFoxpro中表的联系

4、关系运算

·选择

从关系中挑选出符合条件的元组组成一个新的关系。

·投影

从关系中挑选出指定的属性组成一个新的关系。

·连接

对两个关系根据条件组成一个新的关系。

·自然连接

按照字段值对应相等为条件进行的连接操作称为等值连接。

自然连接是去掉重复属性的等值连接。

5、实体联系

实体之间对应的关系称为联系。

如实体联系图为实体之间的3种联系,为:

一对一,一对多和多对多。

实体联系有内部联系与实体外部联系。

实体的内部联系是指实体内部各属性之间的联系。

实体的外部联系也称实体之间的联系。

通常是指不同实体集之间的联系。

实体联系图

关系型数据库管理系统

基本概念

如数据库系统层次示意图为数据库系统中各个系统之间的层次关系示意图。

1、数据库(DataBase)

数据库是储存在计算机外存(如硬盘等)上的、具有一定组织结构的数据集合,它不仅包括事物的数据本身,还包括相关事务之间的联系。

2、数据库管理系统(DBMS)

数据库管理系统是对数据库进行维护管理的计算机软件,我们所要学习的VFP6.0就是这样的一个数据库管理系统。

数据库系统层次示意图

关系型数据库管理系统

数据库的类型

数据库根据其组织数据方法的不同,就有了不同类型的数据库,分别是:

层次型数据库、网状型数据库、关系型数据库、对象型数据库。

用得最多的关系型数据库。

VisualFoxPro6.0的项目管理器

项目的认识

1、何谓项目?

利用VFP开发一个数据库应用系统如图书管理系统时,这个开发中的数据库应用系统就称为项目。

2、开发一个项目时,会涉及很多不同类型的文件,对这些文件进行有效的组织管理,是开发项目时所必须做的一件事。

项目管理器的认识

1、何谓项目管理器?

项目管理器是VFP用来管理一个项目文件的工具。

如项目管理器窗口。

2、开发项目的一般步骤

·新建(打开)一个项目

说明:

新建一个项目时,会产生一扩展名为PJX的项目文件,同时会自动产生一个扩展名为PJT的项目备注文件。

项目文件中,记录了组成该项目的文件信息。

·在项目管理器中添加、修改、调试项目文件

·在项目管理器中对项目进行编译,生成最后的产品—计算机可以执行的可执行文件。

项目管理器窗口

表的建立与操作

自由表的建立与修改

表的建立

例:

试在默认目录建立如自由表人事表rsb表:

并酌情输入一些记录。

人事表rsb

编号

姓名

性别

出生日期

工作日期

部门代码

职称

婚否

基本工资

0001

李明

09/17/63

09/15/60

A04

副教授

.F.

2450.00

0002

程建能

05/28/58

03/12/76

B02

副教授

.T.

2550.00

0003

冯晓珊

02/21/75

02/21/75

A04

讲师

.T.

1980.00

0004

廖素芬

04/14/79

04/14/79

B02

助教

.F.

1880.00

0005

黄俊生

07/05/69

07/05/69

A03

讲师

.T.

2060.00

0006

吴晓军

10/08/68

10/08/68

C01

副教授

.T.

2100.00

0007

张兵

08/18/55

08/18/55

B01

教授

.T.

2900.00

0008

陈宏

12/09/80

12/09/80

A02

助教

.F.

1882.00

0009

董开宁

09/12/60

09/12/60

A04

教授

.T.

1760.00

0010

陈晓敏

04/09/73

04/09/73

B01

讲师

.T.

1920.00

0011

张大明

12/18/76

08/03/97

B02

讲师

.T.

1309.00

0012

陈宁

02/12/79

09/12/99

C01

助教

.F.

1350.00

0013

杨姗姗

03/02/77

09/12/98

B01

讲师

.T.

1890.00

0014

王刚

09/12/74

08/10/96

A01

副教授

.T.

2230.00

0015

李武逊

03/22/72

09/03/95

B01

副教授

.T.

2460.00

1、菜单方式

2、命令方式

CREATE表文件名

3、说明

若一个表中有备注型或通用型字段,则其内容放置在一个扩展名为FPT的文件中,该文件的基本名与表文件的基本名相同,由VFP自动创建。

表的状态

1、表状态的认识

表有两种状态:

打开、关闭。

打开状态下,可以对表进行操作,关闭状态下,不能对表进行操作。

建立表时,表建好后就是打开状态。

表不用时,应将其关闭,这样,表的内容就会保存。

表状态的简单判断:

通过状态栏或“数据工作期”窗口。

2、表的关闭

例:

关闭刚建的“student.dbf”表。

USE

或者在“数据工作期”窗口关闭。

3、表的打开

例:

打开“rsb.dbf”表。

1)菜单方式

2)命令方式

如果“rsb.dbf”表在默认目录的话:

USErsb.dbf

USErsb.dbf

4、说明

1)表打开后,并不会自动显示出表的内容。

2)在命令窗口打开一个表时,会自动关闭之前打开的表。

3)退出VFP时,也会自动关闭打开的表。

表的常规操作

定位记录指针

1、记录指针的认识

1)VFP自动为打开的表安排的;

2)表刚打开时,记录指针指向表最前面的记录,操作中,记录指针会移动;

3)我们不能直观地看到;

4)记录指针所“指”的记录称为当前记录;

5)当前记录从状态栏中可以看出,也可以通过RECNO()函数值获知。

说明:

VFP会自动对表中的记录进行编号,即记录有记录号。

记录号从1开始。

2、记录指针的定位

·GOTOP或GOTOTOP

作用:

将记录指针指向表中最前面的记录。

说明:

在记录指针已经指向最前面记录的情况下,如果让指针再前移“一步”,则称“指向了表头”,这时,函数BOF()的值为真。

在指针已经指向表头的情况下,再“越雷池一步”,就会出错。

练习:

试对工资表gzb进行如下操作,并指出每次显示结束后,记录指针的位置。

1)记录指针指向最后面记录的情况下,记录号是?

2)记录指针指向表尾的情况下,记录号是?

·GO记录号或GOTO记录号或记录号

作用:

将记录指针指向指定记录号的记录。

·SKIP

作用:

记录指针后移一个记录。

·SKIPn(n为正整数)

作用:

记录指针后移n个记录。

·SKIP-n(n为正整数)

作用:

记录指针前移n个记录。

工资表gzb

编号

基本工资

岗位津贴

奖励

应发工资

水电

保险

实发工资

0001

2450.00

30.00

300.00

2780

123.50

200.00

2457

0002

2550.00

30.00

300.00

2880

146.00

200.00

2534

0003

1980.00

25.00

250.00

2255

88.00

130.00

2037

0004

1880.00

20.00

200.00

2100

68.80

120.00

1911

0005

2060.00

25.00

250.00

2335

108.00

135.00

2092

0006

2100.00

40.00

300.00

129.00

230.00

0007

2900.00

20.00

350.00

53.00

120.00

0008

1882.00

40.00

350.00

155.00

220.00

0009

1760.00

25.00

255.00

102.00

135.00

0010

1920.00

30.00

300.00

88.00

135.00

0011

1309.00

35.00

350.00

89.00

165.00

0012

1350.00

25.00

450.00

110.20

185.00

0013

1890.00

20.00

300.00

101.00

190.00

0014

2230.00

35.00

500.00

120.00

210.00

0015

2460.00

40.00

365.00

112.00

200.00

在主窗口中显示记录

1、LIST命令

·LIST

功能:

显示表中全部记录。

·LIST范围

功能:

显示指定范围内的记录。

说明:

范围有4种:

1)ALL—全部记录;

2)NEXTn—当前记录开始的n个记录;

3)REST—当前记录到最后一个记录;

4)RECORDn—第n号记录。

·LISTFOR条件

功能:

显示表中符合条件的记录。

说明:

条件是用关系表达式或逻辑表达式表示的。

·LISTFOR条件范围或LIST范围FOR条件

功能:

仅显示指定范围内符合条件的记录。

2、DISPLAY命令

·DISPLAY

功能:

显示当前记录。

·DISPLAY范围

功能:

显示指定范围内的记录。

·DISPLAYFOR条件

功能:

显示表中符合条件的记录。

·DISPLAYFOR条件范围或DISPLAY范围FOR条件

功能:

仅显示指定范围内符合条件的记录。

3、说明

·LIST命令和DISPLAY命令除了第一种用法上功能有差别外,另外一个差别是:

当显示的记录信息多时,LIST命令不能一屏一屏显示记录信息,而DISPLAY命令可以。

·命令中,若加上OFF,则不显示记录号。

·命令中,可以指定要显示的字段,格式:

[FIELDS]字段名1,字段名2,……。

·命令中,可以指定要显示的表达式,格式:

[FIELDS]表达式1,表达式2,……。

·如果希望记录信息送往打印机,可加上TOPRINTER。

·VFP命令中,若同时出现多个选项,一般它们可以以任意顺序出现。

·上机时,留意显示前后记录指针位置的变化。

自动替换字段内容

REPLACE字段1WITH表达式1,字段2WITH表达式2,……[范围][FOR条件]

功能:

对表中指定范围内符合条件的记录进行替换。

若省略范围和条件,仅对当前记录进行替换。

例:

对增长工资表zzgz表进行如下操作:

1、添加奖金字段;

2、每人奖金为1000元;

3、92年前(不包括92年)出生的员工奖金增加100元;

4、计算机学院奖金加200,外语学院奖金加150。

增长工资表zzgz

编号

部门代码

部门名称

增值日期

增资

0001

A04

计算机学院

02/16/78

45.50

0003

B02

人文学院

03/07/70

23.50

0006

A04

计算机学院

04/12/67

23.50

0009

B02

人文学院

04/12/56

15.00

0001

A03

经济管理

03/05/80

56.50

0006

C01

理学院

03/06/80

56.50

0009

B01

外语学院

07/12/67

45.50

0008

A02

软件学院

10/02/10

45.50

0009

A04

计算机学院

08/05/75

35.00

0010

B01

外语学院

10/13/82

28.00

0011

B02

人文学院

09/05/81

33.00

0012

C01

理学院

02/27/79

75.00

0013

B01

外语学院

11/09/80

37.00

0014

A01

通信学院

10/25/79

89.00

0015

B01

外语学院

12/15/78

95.00

排序与索引

排序

1、排序就是将表中记录按照某种顺序排好后放到一个新表中。

2、排序命令

SORTTO新表ON字段1[/A或/D][/C],字段2[/A或/D][/C],……[ASCENDING或DESCENDING][范围][FOR条件][FIELDS字段1,字段2,……]

功能:

对当前表根据要求进行排序,产生一新表。

说明:

1)/A—升序,/D—降序,默认升序。

/C—忽略字符型数据的大小写。

/A/C≌/AC≌/CA;/D/C≌/DC≌/CD

2)ASCENDING—升序,DESCENDING—降序,对未指定排序要求的字段而言的。

3)“范围”选项指出参加排序的记录范围;“FOR”选项指出参加排序的记录应满足的条件。

两个选项都没有时,全部记录参加排序。

4)“FIELDS”选项指出新表中所包含的字段,否则为当前表的全部字段。

5)产生的新表不会自动打开。

3、练习

已知排序命令:

SORTTO学生1ON性别,姓名/A,出生日期DESCENDING

问:

1)当前表的哪些记录参加排序?

2)新表包含当前表的哪些字段?

3)排序规则是什么?

4)如果有下面4个记录,排序后的顺序是?

假设当前字符顺序设置为拼音顺序。

姓名性别出生日期……

张伟男1987.3.2……

李艳女1986.1.1……

张伟男1987.5.1……

陈丽女1986.5.5……

5)排序后的新表文件名是什么?

放在什么位置?

6)此时,要想看看新表中的记录,如何操作?

认识索引

1、索引的认识

1)排序是通过产生一个新表的方式实现记录的新顺序,索引也是为了得到记录的新顺序,但和排序不同的是,索引的新顺序不是存放在一个新表中,而是存放在所谓的索引文件中。

2)排序后得到的新表和索引后得到的索引文件有下列区别:

·新表独立于旧表,即旧表记录改变时,与新表没有任何关系,反之亦然。

而索引文件依附于表,表内容更新时,索引内容自动更新。

·索引文件中,储存的并不是完整的记录信息,因此,索引文件比排序得到的新表占用的储存空间要小得多。

3)排序与索引图示

2、索引项的认识

1)索引项(索引关键字或索引表达式)

建立索引的依据,如图示中的“年龄”字段。

索引项可以是一个字段,也可以是一个表达式。

一个索引只能根据一个索引项来建立。

2)练习

·根据“姓名”字段建立索引时的索引项是?

·如果希望索引反映这样的记录顺序:

先以姓名排序,姓名字段内容相同时,再以年龄字段内容排序。

这时,索引项是?

以刚才图示表为例,索引内容是什么?

3、索引类型

1)主索引

如果不同记录,其索引项值不会相同,则,这样的索引可以定义为主索引。

2)候选索引

如果不同记录,其索引项值不会相同,则,这样的索引也可以定义为候选索引。

主索引与候选索引的区别是:

一个表,只能有一个主索引,可以有多个候选索引。

3)普通索引

对索引项值无限制要求的索引可定义为普通索引。

4)唯一索引

对于索引项值相同的记录,在索引中只记录第一个记录。

有这种要求的索引应定义为唯一索引。

索引的有关操作

1、索引的建立

1)结构化复合索引文件中索引的建立

·在“表设计器”中建立

建立单字段普通索引:

打开“表设计器”对话框,从“字段”选项卡中选择要索引的字段后,在对应的索引位置上选择升序或降序即可产生单字段普通索引,索引名与字段名相同。

建立非普通索引:

如索引设计器窗口。

在“表设计器”中选择“索引”选项卡,从索引“类型”列表中选择所需类型,单击表达式文本框右侧方块可调出表达式生成器,然后构造表达式。

只有数据库表可以建立主索引、候选索引、惟一索引和普通索引;自由表只能建立除主索引之外的3种索引。

索引设计器窗口

·命令方式建立

INDEXON索引项TAG索引名[ASCENDING|DESCENDING][UNIQUE|CANDIDATE]

说明:

ASCENDING表示以索引项升序建立索引,DESCENDING表示以索引项降序建立索引,默认为升序;UNIQUE—建唯一索引,CANDIDATE—建候选索引,不指定为普通索引。

记录查找

一般查找

LOCATEFOR条件[范围]

功能:

从整个表中(或指定范围内)找出符合条件的第一个记录。

说明:

1)找到这样的记录后,只是将记录指针指向所找到的记录,并不会自动显示出所找到记录的内容。

2)若要查找表中符合条件的下一个记录,使用Continue命令。

3)找到记录时,函数FOUND()值为真,否则为假。

4)找不到符合条件的记录时,记录指针指向表尾。

索引查找

1、认识

索引查找即根据一个索引的索引项值进行查找。

索引查找比一般查找速度快。

2、命令

SEEK索引项值

功能:

根据当前索引,找出指定索引项值的第一个记录,将记录指针指向该记录。

如未找到,记录指针指向表尾。

说明:

1)“索引项值”处可以是一个表达式。

2)找到后,函数FOUND()值为真,否则为假。

3)要想找到相同索引项值的下一个记录,使用SKIP命令即可,不是使用CONTINUE命令。

4)如果想在非当前索引中,根据其索引项进行查找,则命令中应指定一个索引:

ORDER索引号[ASCENDING|DESCENDING]

ORDER[TAG]索引名[ASCENDING|DESCENDING]

数据库、查询和视图

数据库概述

数据库概述

1、VFP数据库的认识

VFP中的数据库,从文件角度看,是一个扩展名为DBC的文件。

但为了储存与数据库相关的其它信息,VFP还会自动地为每个数据库文件建立同基本名但不同扩展名的另两个文件:

扩展名为DCT的数据库备注文件和扩展名为DCX的数据库索引文件。

思考:

假设创建了一个“图书管理”数据库,问:

将会产生哪些文件?

VFP中的数据库,从逻辑角度看,由一个或多个表组成。

2、表与数据库的关系

一个表,可以属于某个数据库,也可以不属于任何数据库。

属于某个数据库的表叫数据库表,不属于任何数据库的表叫自由表。

前面我们所结识到的表均是自由表。

不管是数据库表,还是自由表,从文件角度看,都是一个扩展名为DBF的文件。

VFP中建立数据库的一般步骤

1、创建数据库

刚创建的数据库是空数据库。

2、在数据库中建立新表或添加已经建立过的自由表

自由表被添加到数据库后,它的身份就变成了数据库表。

3、关闭数据库

数据库关闭后,其所属的表也被关闭。

VFP中使用数据库的一般步骤

1、先打开数据库,再打开表。

或直接打开表,此时,表所属的数据库会自动打开。

2、对表进行操作。

3、关闭数据库。

或者先关闭表,再关闭数据库。

可见,使用数据库的本质还是对其中的表进行操作,数据库只是起到组织表的作用。

对数据库表的操作同自由表。

数据库的有关操作

创建数据库

1、菜单方法

前面已创建了一个名为“管理”的项目,本节将讲述在“管理”项目中创建数据库的方法。

打开“数据库设计器”后,窗口的菜单栏中会出现“数据库”菜单。

如数据库设计器所示。

数据库设计器

2、命令方法

CREATEDATABASE[数据库]

说明:

·命令中不指定要建立的数据库时,会出现一对话框,通过对话框来选择数据库的储存位置及提供数据库文件名;命令中指定要创建的数据库时,可以省略数据库扩展名。

·菜单方式创建数据库后,会自动显示出“数据库设计器”窗口(我们今后简称为“数据库窗口”),命令方式创建时不会。

执行“MODIFYDATABASE”命令可显示数据库窗口。

·不管显示不显示数据库窗口,新创建的数据库都将是打开状态。

注:

关闭数据库窗口,不表示关闭数据库。

·分别创建几个数据库时,这些数据

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

当前位置:首页 > 高等教育 > 医学

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

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