FOXPRO数据库操作课件_第1页
FOXPRO数据库操作课件_第2页
FOXPRO数据库操作课件_第3页
FOXPRO数据库操作课件_第4页
FOXPRO数据库操作课件_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

第四章数据库与表的操作

本章要点

.数据库设计基础

A数据库操作

建立数据库使用数据库

修改数据库删除数据库

&数据库表操作

建立数据库表增加记录修改数据库表

&表记录的操作

显示、修改、删除、统计、查询定位

&表与表结构的相关操作

.索引与排序

索引及其类型创建索引索引的使用排序

*数据完整性与永久联系

也多工作区与数据工作期操作

数据库设计基础

数据库是表和表间关系的集合,数据库

应用系统与其他计算机应用系统相比,一般都

具有数据量庞大、数据保存时间长、数据关联

比较复杂、用户要求多样化等特点。

只有使用较好的数据库设计过程,才能迅

速、高效地创建一个设计完善、结构合理的数

据库,为日后访问所需的信息提供方便。

设计数据库的目的实质上是设计出满足实

际应用需求的实际关系模型。

一.设计原则

1.设计应当遵从概念单一化的原则

2.避免在表之间出现重复字段

3.表中的字段必须是原始数据和基本数

据元素

4.用外部关键字保证有关联的表之间的

联系

设计的步骤

利用VisualFoxPro来开发数据库应用系统,可以按照

以下步骤来设计:

1.需求分析。用户需求主要包括三方面:

1)信息需求:用户要从数据库获得的信息内容

2)处理需求:数据完成什么处理功能及处理的方式

3)安全性和完整性要求

首先要与数据库的使用人员多交流,尽管收集资

料阶段的工作非常繁琐,但必须耐心细致地了解现行

业务处理流程,收集全部数据资料以在后面的设计步

骤中使用。

2.确定需要的表(关系)。

3.确定所需字段。一般应注意:

「每个字段直接和表的实体相关;

以最小的逻辑单位(不可再分)存储信息;

<表中的字段必须是原始数据;

L确定主关键字字段,以便迅速关联多个表中

的数据。

4.确定联系。

5.完善。

创建数据库

数据库是由表和表间关系构成的,如果想把多个

表联系起来,就一定要建立数据库。只有把这些有关

系的表存放在同一个数据库中,确定它们的关联关系,

数据库中的数据才能被更充分地利用。

1.数据库的建立

建立数据库的常用方法有以下三种:

①在项目管理器中建立数据库

②通过〃新建〃对话框建立数据库

③使用命令交互建立数据库

命令格式:CREATEDATABASE〈数据库文件名〉

2.打开数据库

在数据库中建立表或使用数据库中的表时,都必

须先打开数据库,与建立数据库类似,常用的打开数

据库的方式也有三种:

①在项目管理器中打开数据库;

②通过工具栏上的〃打开〃按钮或者选择〃文件〃菜单

下的〃打开〃对话框打开数据库;

③使用命令打开数据库。

语法格式:OPENDATABASEv数据库文件名>

通常在VisualFoxPro开发环境下交互操作时使用

前两种方法,在应用程序中使用命令的方法。

关闭数据库

■在[项目管理器]中选定要关闭的数据库,然后

选择[关闭]按钮。

■选择[文件]I[关闭]命令,关闭正在使用的数据

■关闭数据库命令

语法1:CLOSEDATABASES

功能:关闭所有打开的数据库和数据库表

语法2:CLOSEALL

功能:关闭所有打开的数据库和数据库表,同

时关闭除主窗口外的各种窗口

3.修改数据库

数据库设计器是交互修改数据库对象的界

面和工具,其中显示数据库中包含的全部表、

视图和联系。

可以用以下三种方法打开数据库设计器:

①从项目管理中打开数据库设计器;

②从"打开"对话框中打开数据库设计器;

③使用命令打开数据库设计器。

命令格式:MODIFYDATABASE〈数据库文件名〉

4.删除数据,

在练习或在开发过程中,如果一个数据库

不再使用了随时可以删除,一般可以在项目管

理器中删除数据库,也可以用命令删除数据库。

删除数据库的命令格式:

DELETEDATABASE〈数据库文件>/?[DELETETABLES]

注意:选择DELETETABLES时,在删除数

据库的同时将删除数据库中的表;否则,只删

除数据库文件,原数据库中的表称为自由表。

创建数据库表

■VisualFoxPro将表分为两种:自由表和数据库表。

■数据库表与自由表相比,具有一些自由表所没有的属

性,如主关键字、表关系等。

下面具体介绍VisualFoxPro系统中数据库表的建立过程。

1.建立数据表的步骤

(1)定义二维表名

设计一张二维表,首先要给表起个名字。

(2)二维表栏目设计

(3)填写二维表的内容

(4)定义数据表的结构

创建数据库表

著名歌手基本情况表

歌手编号姓名性别籍贯生日星座成名曲国籍档案照片

001王斐女香港1973.05.21天平座容易受伤的女人(略)

002孟庭伟女台湾1967.08.10公牛座你看,你看,月亮的脸(略)

003陈慧贤女台湾1970.01.08射手座红茶馆(略)

004邓丽君女台湾1958.07.21举蟹座选择(略)

005林忆莲女台湾1969.11.08白羊座小城故事(略)

006周慧敏女台湾1974.05.09天平座留住秋色(略)

007潘美辰女台湾1973.08.01处女座爱上一个不回家的人(略)

..............................................

创建数据库表

标题名字段名字段类型字段宽度小数点索引否

歌手编号GSBH字符型3主索引

姓名XM字符型8普通索引

性别XB字符型2

籍贯JG字符型10

生日SR日期型

星座XZ字符型6

成名曲CMQ字符型20

国籍GJ字符型8

档案DA备注型

照片ZP通用型

■创建数据表

建立数据库表的最简单和直接使用数据库设计器:

方法一:在“数据库”菜单中选择“新建表”或

右击数据库设计器中的任一空白区域,从弹出的快捷

菜单中选择“新建表”,再选择“新建表”(或“表

向导”);在“创建”窗口,输入要建立的表的名字;

然后在打开的“表设计器”窗口,逐一地定义表中所

有字段的名字、类型、宽度和是否建立索引,完成对

数据表结构的建立。

方法二:命令格式:

OPENDATABASE〈数据库名〉

CREATE〈表文件名〉

注意:如果没有用OPENDATABASE打开数据

库,直接使用CREATE命令建立表也是可以的,

但此时建立的是自由表,界面也比较简单,不

包含有些在数据库中才能实现的功能。

下面就数据库“表设计器”中“字段”选项卡中常用

的属性信息及其设置方法叙述如下:

(1)设置字段的显示属性

①格式

“显示”区的“格式”文本框用于输入格式表达式,

确定字段在浏览窗口、表单或报表中显示时采用的大

小写、字体和样式。例如,

A表示只能输出文字字符(禁止输出数字、空格)

!表示使浏览窗口输入输出时将字母都转换为大写

D表示使用当前系统设置的日期格式

T表示禁止输入字段的前导空格字符和结尾空格字符

②输入掩码

“显示”区的“输入掩码”文本框用于指定字段的输

入格式。这样我们就可以屏蔽非法输入,减少人为地

数据输入错误,提高工作效率。输入的掩码字符见下

施禧字符含义

X允许输入字符

9允许输入数字

#允许输入数字、空格、+、-

$显示SETCURRENCY命令指出的货币号

*在指定宽度中,值的左面显示星号

指出小数点的位置

5分隔小数点左面的数字

■比如指定xsqk.dbf表中的no字段的输入掩

码为999999999,再把name字段的显示

格式指定为AT。当增加新纪录时,no字

段只能接受数字输入,而不能接受空格

字符、字母等。Name字段只能接受字母

或汉字输入,而不能输入空格字符、数

字等。(T表示禁止输入字段的前导空

格字符利结尾空格字符)

③标题

E让

(sqk

HoSame|Sex|Yearm|Zhu|Zheng|Grade|Mcode|Classno|Detail|Photo|可

000802101任女26/10/821汉族j团员12000:021,emo汰en

000802102朱欣:男*02/01/82;汉族!团员?20001021dmemo:gen个

000802103朱殂汝112/01/81版族:团员!2000i021"memojgenI

000802104耿健:男i03/01/82取族j团员12000102i1Imemo:gen|

1-4。字

J信息⑥:

输入掩码(M)I.♦•.o

标题(C):学号默认值

••

«1

XsqkStsIB

学号NameSexYearmZhu|Zheng|Grade|Mcode|Classno|Detail|Photo

m=

000802101任媛媛女06/10/82汉族团员2000:021memogen

m=

r_000802102朱欣男02/01/82汉族团82000j021memogen••

000802103朱殂女12/01/81汉族团员2000:021memogen

'汉族m=

t-000802104耿健男03/01/82团仄!2000:02memogen••

(2)字段有效性

字段有效性区包括规则、信息和默认值3个文本框。

可以直接在文本框中输入数据,也可以通过文本框右

边的对话按钮显示出表达式生成器对话框,在其中进

行设置。

①规则文本框用于输入对字段数据有效性进行检查

的规则,即一个条件。例如,在sex的规则文本框中输

入:sex="男"orsex="女”,对于在sex字段输入的数

据,VisualFoxPro会自动检查它是否符合该条件,如

果不符合则必须进行修改,直到符合条件时才允许光

标离开sex字段。

\、、

IJ

IJ

1

:J表设计器-xsqk.dbf

字段I索引表I

1

:中

I

向表中加入记录

■1.创建表时立即输入数据

■创建表即定义表结构是通过表设计器来完成的,

而向表中加入数据,要在表“浏览”窗口或表

“编辑”窗口中进行。在创建表时,如果表中

所有字段的属性已定义完成,可按“确定”按

钮保存表结构,同时打开“系统”窗口,显示

“现在输入数据吗?”的对话。选择“是"按

钮,可以立即进入表“浏览”窗口,进行表中

数据的输入。

■VFP提供了以下三种数据输入方式:浏览方式、

编辑方式和追加方式。

■也可以使用命令:

■APPEND[BLANK]追力口记录

相当于选择[表]I[追加新纪录]命令的功能

APPENDFROM〈文件名》[FIELDS〈字段表名

>][FOR〈条件〉]

在当前表末追加一批记录,这些记录来自于另

一个文件。

修改表结构

在VisualFoxPro中,数据表的结构可以任

意修改。如增加、删除字段,修改字段

名、类型、宽度、索引等。

如果当前在数据库设计器中,可直接用鼠

标右击要修改的表;否则应先使用USE命

令打开表:USEv表名〉

利用表设计器修改数据表的结构,操作方法有二

种。

方法一:打开“文件”菜单,选择“打开”;

在“打开”窗口,输入要修改表结构的表名字;

在“表设计器”窗口,修改表中所有字段的名

字、类型、宽度和是否建立索引,完成对数据

表结构的修改。

方法二:命令格式:MODIFYSTRUCTURE

另外VisualFoxPro中显示表结构的命令是:

LIST|DISPLAYSTRUCTURE[TOPRINT]

数据的显示和修改方式

■在VisualFoxPro系统环境下,当表建立完成后,表

的数据和结构已基本确定,用户可以通过表设计器显

示表结构;并且采用表“浏览”和表“编辑”两种操

作方式对表中的数据进行显示和修改。

1.用编辑方式显示和修改数据

在表“编辑”窗口,可以采用“编辑”方式,显示

和修改表中的数据。在表“编辑”窗口,可以使用鼠

标调整浏览窗口的大小,调整每个字段的显示顺序和

改变成有“浏览”和“编辑”两种显示方式的窗口。

2.用浏览方式显示和修改数据

3.显示记录的命令

LIST|DISPLAY[范围][条件][FIELDS〈字段名表刁

[OFF][TOPRINTER[PROMPT]|TOFILE〈文件名刁

4,打开浏览窗口命令

使用BROWSE命令可以打开[浏览]窗口。

格式:BROWSE[FIELDSv字段名表习[LOCKv表达式刁[FREEZEv字

段名刁…

■例如:

■Usexsqk

■Browsefieldsno,name,sexfreezename

■Browselock2&&浏览表,锁定左端两个子段的内容

■Browseno叩pend&&浏览表,禁止添加记录

删除和恢复表中的数据

1.逻辑删除表中的记录

逻辑删除表中的记录,操作方法是,打开要进行

逻辑删除操作的表,并进入表“浏览”窗口。

方法一:在表“浏览”窗口,把鼠标对准其删除标记

栏,单击左键,这时要进行逻辑删除的记录就被加上

了删除标记。这种操作方法只对单记录进行逻辑删除

有效。

方法二:在“浏览”窗口,打开“表”菜单,选择

“删除记录”,在“册邨余”窗口,可以通过选择作用

范围确定要进行逻辑删除的部分记录或在For对话框

中,设置逻辑删除条件表达式来确定逻辑删除的记录。

方法三:置删除标记的命令

命令格式:DELETE[范围][FOR<条件>]

2.恢复表中逻辑删除的记录

恢复已进行逻辑删除的记录,操作方法是,打开

要进行恢复操作的表,并进入表“浏览”窗口。

方法一:在表“浏览”窗口,把鼠标移到要进行恢

区的记录上,对准其删除标记栏,单击左键除去删除

记。

方法二:在“浏览”窗口,打开“表”菜单,选择

“恢复记录”;在“恢复记录”窗口,可以通过选择

作用范围确定要进行恢复的部分记录;或在For文本

框中,设置条件表达式来确定恢复的记录;指定范围

或满足条件的记录都被除去了删除标记。

方法三:恢复记录的命令

命令格式:RECALL[范围][FOR<条件>]

3.物理删除表中的记录

操作方法是:打开要进行物理删除操作的表;在表

“浏览”窗口,若没有对表中记录做逻辑删除,要对

进行物理删除的记录先进行逻辑删除;若已对若干记

录做了逻辑删除,数据表中有了逻辑删除记录后,则

选择“表”菜单,再选择“彻底删除”,在弹出的对

话框中选择“是",数据表中所有带有删除标记的记

录将被彻底删除掉。

物理删除加了删除标记的记录命令:PACK

物理删除表中的全部记录:ZAP

该命令可以物理删除表中的全部记录,不管是否有

删除标记。它只是删除全部记录,并没有删除表,即

执行该命令后表结构依然存在。

数据表中记录的定位

在VisualFoxPro系统环境下,表中的每一列数据是通过

字段名来标识的,而每一行数据是通过记录号来标识

的。用户对表中每一个数据项的访问,是通过记录号

和字段名来进行的。在向表输入数据时,系统按照其

输入的前后顺序,给每一个记录赋予一个记录号。最

先输入的记录为1号记录,其次2号记录,以此类推。

在VisualFoxPro系统内部,有一个用以确定当前记录的

记录指针,记录指针指向哪一个记录,这一个记录就

是当前操作的记录,即当前记录。

当表打开时,当前记录为第一个记录。表文件一旦打开,

表中的记录指针是可以移动的,所以当前记录是某一

时刻的操作对象。数据表中记录的定位,实质上就是

确定嘛一个花杀为当前记录。

确定当前记录,操作方法是,打开要使用的表,

在“显示”菜单下,选择“浏览”;

打开“表”菜单,选择“转到记录”,子菜单不

同的选项,可以将记录指针移动到相应的记录上。

(1)选择“第一个”,“最后一个”,“上一个”,

“下一个”,

(2)选择“记录号”,便进入“转到记录”对话窗口,

在“转到记录”对话框内,可以选择记录号,确定该

记录号指定的记录为当前记录;

(3)选择“定位”,进入“定位记录”窗口,在“定

位记录”对话框内,输入定位条件表达式,确定满足

定位条件表达式的第一个记录为当前记录。

也可使用命令来实现记录指针的定位:

(1)用GOTO或GO命令直接定位

GO|GOTOTOP|BOTTOM|〈记录号〉

(2)SKIP命令

SKIP[数值]

例如:use"xsqk.dbf'

?recno()

skip5

?recno()

gobottom

?eof()

?recno()

skip

?eof()

use

表与表结构的相关操作

1.表的复制

命令格式:COPYTO<新文件名〉卜范围刁[FIELDSv字段名表习

[FOR/WHILEv条件习[TYPE<文件类型习

功能:把当前数据表文件中的全部或部分数据复制到指定的新文件

中。

说明:

(1)必须先打开被复制的数据表文件。

(2)默认复制成的新文件是一个数据表文件,其扩展名默认为.DBF。

原数据表文件带有.FPT文件时,复制后自动生成与新数据表文件

同名的.FPT文件。

(3)选择项FIELDSv字段名表》用以指定复制到新表文件中的字段

结构,缺省时为全部字段。

(4)缺省v范围〉时指ALL(全部数据记录)。

(5)选择项TYPE〈文件类型,表示把打开的数据表文件按〈文件类型

>指定的格式复制成一个新的.TXT文件。

2.表结构的复制

命令格式:COPYSTRUCTURETO<新表文件名〉

[FIELDS〈字段名表习

功能:把当前数据表的结构全部或部分复制到新的.DBF

文件中,从而建立一个只有结构、没有数据记录的空

数据表文件。

说明:

(1)必须先打开被复制的数据表文件。

(2)复制成的新文件是一个数据表文件,其扩展名默认

为.DBF。

(3)选择项FIELDSv字段名表》用以选定要复制到新表文

件中的字段名称,缺省时为复制全部字段。

(4)复制成的新数据表只有结构没有数据记录。

修改表数据

1.在[浏览]窗口中从键盘修改

2.替换字段

打开表,在表菜单下选择替换

命令格式:

REPLACE[范围][{FOR|WHILE}(条件刁

字段名1WITH表达式1[,字段名2

WITH表达式2][…]

过滤表数据

1.记录过滤

命令格式:

SETFILTERTO卜逻辑表达式刁

2.字段过滤

命令格式:setfieldsto{allv表达式〉}

例如:usexsqk

setfiltertoxsqk.sex="女"

setfieldstoxsqk.no,

browse

表的排序与索引

■排序,即记录的物理顺序,是按某个或某些关键字的

大小重新排列数据库表的所有记录,重排后产生一个

新的库文件,改变了记录在磁盘存储空间的物理位置。

■1.物理排序

■格式:SORTONv字段l>[/ASC][/DESC][/C],v字段2>

[/ASC][/DESC][/C]...TO〈新表名〉[〈范围封[FOR〈条件

>][WHILE<条件习[FIELDS<字段名表刁

■说明:

■[/C]表示不区分大小写字符。

■只要能比较大小的字段均可做排序的关键字。具体地说,数值按

其大小关系,字母按其ASCH码顺序(空格〈数字〈大写字母〈小

写字母)。汉字按其区位码大小排序(一级汉字按其拼音顺序),

日期数据按其时间先后顺序。

■排序关键字不能是通用型或备注型字段。

例如:

usexsqk

sortonyearm/desc,notoxspx

usexspx.dbf

browse

use

*

索引

索引,即记录的逻辑顺序,指对数据库

表的所看记录快速定彳立的机制,它不诙&记亲

的物理顺序,不产生新的库文件,只产生相应

的索引文件。索引文件不包含数据库的记录,

只是一张关键字段与其物理记录号的对照表,

其文件名与表名相同,扩展名为.IDX和.CDX。

可以这样理解:根据某一字段的值进行逻

辑排序得一组指针,在按照索引重新排序数据

表中的记录时,VFP将按照指针排序的顺序分

别读取每一条记录,而这些记录在数据表中的

实际位置不变。

索引类型

VisualFoxPro系统提供了四种不同的索引方式,它们分

别是:主索引、候选索引、普通索引和唯一索引。

主索引:在指定的字段或表达式中不允许出现重复值。

只有数据库中的表可以建立主索引,而且每个数据库

表只能建立一个主索引。主索引主要用来在一个永久

关系中建立完整性。

候选索引:等同于主索引,同样要求字段的值唯一。它

不包含NULL值和重复值。

普通索引:可用来对记录进行排序和搜索,不要求记录

中的数据具有唯一性。

唯一索引:它不允许记录具有相同的索引值。这种要求

与主索引相同。

从索引的组织方式来讲索引共有两类:

「简单.idx索引

索引Jr结构复合索引

复合.cdx索引y

、非结构复合索引

索引分为简单索引和复合索引两种。

简单索引文件的扩展名为.IDX,它只包含单个索引关键字。

复合索引文件的扩展名为.CDX,它可包含两个或更多字段

的索引表达式。

复合索引文件又分为结构的和非结构的,结构的复合索引随

表的打开而自动打开,在修改、增加、删除记录时可以自动更新

索引;非结构的复合索引不随表的打开而自动打开,在修改、增

加、删除记录时不会自动更新索引。

创建索引

在VisualFoxPro中,一般情况下都可以在表中交

互建立索引,特别是主索引和候选索引是在设计数据

库时确定好的。但有时需要在程序中临时建立一些普

通索引或唯一索引.

1.利用表设计器可以对已有的表创建索引

利用表设计器为已有的表创建索引,操作方法是在“表设

计器”窗口,选择“索引”选项卡,再选择以下参数:

在索引名选项中,输入索引字段名;

在排序选项中,选择索引方向,升序(t)或降序(I);

在类型选项中,选择索引类型;

在表达式选项中,输入索引字段名或者索引表达式;

在筛选选项中,限制记录的输出范围。

完成索引建立或撤消索引操作。

注意:此索引表为结构化索引,且当前无主索引。

V

2.用命令建立索引

1)单索引文件的建立

Indexonv索引关键字,tov单索引文件名〉

[Forv条件>][ascending|descending][unique|candidate]

[additive][compact]

说明:

l.v索引关键字〉可以是一个字段或多个字段组成的关键

字表达式。多个字段之间用“+”或“一”连接。

索引关键字:必须为N型、C型、D型或L型。

2.Additive表示建立索引文件时,不关闭先前的索引。

3.命令默认建立普通索引文件。

4.compact指定单索引为压缩文件。

5.单排序不支持降序排列

V

2.用命令建立索引

命令格式:

INDEXONv索引表达式〉[TAG〈索引标识名,[OF<

复合索引文件名刁

[FOR条件]

[ASCENDING|DESCENDING]

[UNIQUE|CANDIDATE]

[ADDITIVE][COMPACT]

使用命令可以建立普通索引、唯一索弓1(UNIQUE)或

候选索弓I(CANDIDATE),但没有主索引.

例如:使用命令为xsqk.dbf表创建以sex与yearm组合为索

引关键字的按升序排列的候选索引

usexsqk.dbf

indexonsex+DTOC(yearm)tagXBCSRQcandidate

索引的使用

1.使用菜单方式显示索引效果

利用表设计器使用索引排序的操作方法如下:

(1)利用表设计器对表中若干字段,以字段名

建立索引。

(2)在VisualFoxPro系统主菜单下,打开“表”

菜单,选择“属性”,进入“工作区属性”窗

口。

(3)在“工作区属性”窗口,打开索引顺序对

话框,选择索引标识(字段名、表达式),

按“确定”按包,表中的数据按其索引字段值

的大彳、顺序显示。

实现索引查询必须满足以下条件:

打开表,打开索引文件,确定主控索引文件,

对于复合索引文件还须确定主控索引。

2.打开和关闭索引文件

(1)打开(关闭)索引文件

SETINDEXTO卜索引文件名列表刁

功能:打开当前表的一个或多个索引文件并确定主控索

引文件。

说明:1)打开的第一个索引文件即为主控索引文件。

2)若默认所有选项,将关闭当前工作区中除结构

复合索引文件外的所有索引文件,同时取消主控索引

3)命令USE<文件名>INDEX<索引文件表》也可

以打开索引文件,同时确定主控索引文件。…

3.确定主控索引

对于复合索引,在打开索引文件后,还须确

定主控索引。

确定主控索引可以使用交互或命令方式。

命令格式:

SETORDERTO[[TAG]〈索引标识名

>[OF<CDX文件名刁][ASC/DESC]

jSETORDERTO

[SETORDERTO0

上两条命令取消主控索引文件及主控索弓I,

表中记录将按照物理顺序输出

查询就是按照给定条件在表中查找所需要的记录。

L顺序查询命令

格式:LOCATE卜范围刁FORv条件〉

说明:1)命令中的条件短语是必须的

2)若指定范围,则从当前记录开始在指

定范围内查找,默认范围时则认为范围为ALL

3)找到时,记录指针指向第一条满足条

件的记录,且FOUND。函数返回逻辑真值

4)若要以相同条件继续查找,可使用与

之配套的继续查找命令,其命令格式为:

格式:CONTIUNE

例如:

usexsqk

locatefbr朱”

display

continue

display

use

2.索引查询

顺序查询速度较慢,适用于记录数较少的表,索引查

询速度很快,但其算法要求表的记录是有序的,这就

要求先对表进行索引或排序。

SEEK和FIND命令都可以用于索引查询。

语法:SEEKv表达式>

功能:在数据表和对应索引文件打开的情况下,快速查

询索引关键字值与指定〈表达式>值相符的记录

说明:1)使用本命令查询前须打开相应的索引文件,且

〈表达式〉的类型必须和索引关键字表达式的类型一致。

2)若查询成功,记录指针指向所查记录并置

FOUND。函数为.T.;若查不到,贝I」置FOUND。函数

为E,置EOF()函数为

3)本命令没有专门的继续查找命令,需要时可借

助SKIP命令做继续查找。

例如:

usexsqk

store{A1980/06/01}torq

indexonyearmtagcsrq

seekrq

display

use

1.记录统计的命令

COUNTK范围刁[FOR/WHILEv条件河[TOv内存变量名习

功能:统计指定范围内满足条件的记录的个数,结果

保存在指定变量中。

2.数据表记录求和

SUM/AVERAGE卜数值表达式表刁卜范围刁

[FOR/WHILEv条件表达式习[TO〈内存变量名表刁

各选项均缺省时,对所有数值字段求和,且统计结果

不保留。

例如:计算*55.如徵据表中学号为000802101的学生第一

学期所有课程成绩的平均分。

usexscj.dbf

averagescoreforno="000802101”.and.Term=ltonsl

use

3.数据表数据的分类汇总(或称分类求和)

TOTALON〈关键字〉TO〈文件名〉[FIELDS〈数值

型字段表刁〈范围习[FOR〈条件刁

功能:对一个已排序或索引的数据表文件根据分类关键

字的值进行分类求和,得到一个分类求和数据表。

说明:

①分类汇总前,应先将数据表按关键字排序或索引过。

②分类:排序或索引表达式(关键字)的值相同的记

录,称为同类记录。

③分类求和:将同类记录的数值型记录求和后,作为

一条记录的该字段的值。

④分类求和数据表:结构与原库结构相同。记录的值:

没有求和的字段,其值是原库中同类记录的第一条记

录的值,被求和的字段的值,为同类记录该字段的和。

数据完整性与永久联系

1.实体完整性与主关键字

实体完整性是保证表中记录唯一的特性,即在一个

表中不允许有重复的记录。在VisualFoxPro中利用主

关键字或候选关键字来保证表中的记录的唯一,即保

证实体唯一性。

如果一个字段的值或几个字段的值能够唯一标识表

中的一条记录,则称这样的字段为候选关键字。在一

个表中可能会有几个具有这种特性的字段或字段的组

合,这时从中选择一个作为主关键字。

在VisualFoxPro中将主关键字称作主索引,将候选

关键字称作候选索引

2.域完整性与约束规则

前面所熟知的数据类型的定义属于域完整性的范

畴,它通过指定不同的宽度、说明不同范围的数据类

型,从而可以限定字段的取值类型和取值范围。但这

些对域完整性还远远不够,还可以用一些域约束规则

来进一步保证域完整性。域约束规则也称作字段有效

性规则,在插入或修改字段时被激活,主要用于数据

输入正确性的检验。

建立字段有效性规则比较简单直接的方法仍然是

在表设计器中建立,在表设计器的〃字段〃选项卡中有

一组定义字段有效性规则的项目,它们是〃规贝1J(字段

有效性规则)〃、〃信息(违背字段有效性规则时的提示

信息)〃、〃默认值〃三项。

3.设置参照完整性

参照完整性是关系数据库管理系统的一个很重要

的功能。它的大概含义是:当插入、删除或修改一个

表中的数据时,通过参照引用相互关联的另一个表中

的数据,来检查对表的数据操作是否正确。

参照完整性属于表间规则,建立参照完整性应满

足以下三个条件:

1)淬关熊的或据表间,子表中的每一条记录在对

应的父表中都必须有一个父记录

2)对子表做插入记录操作时,必须确保父表中存

在一个父记亲

3)对父表做删除记录操作时,其对应的子表中必

须没有记录

在VisualFoxPro中为了建立参照完整性,必须首

先建立表之间的永久联系(或关系)。数据库中

的表建立关联关系后,就可以设置管理关联记

录的规则。从而控制相关表中记录的插入、删

除或修改。

(1)建立表间的永久联系

在数据库设计器中设计表之间的联系时,要

在父表中建立主索引,在子表中建立普通索引,

然后通过父表的主索引和子表的普通索引建立

起两个表之间的联系。

①建立表间的一对一关系

建立两个表之间的“一对一”关系,首先,要使

两个表都具有同一属性的字段;然后,定义父表中该

字段为主索引字段(其字段值是唯一的),子表中与

其同名的字段为候选索引字段(其字段值是唯一的)。

由于两个表中的同一属性的字段值是一对一的关系,

因此两个表之间就具有了“一对一”的关系。建立表

间的“一对一”关系的操作方法是:

在“数据库设计器”窗口,激活主表中的主索引

字段,然后按下鼠标左键拖至与其建立关联的子表中

的对应字段处松开鼠标左键,数据库中的两个表间就

有了一个“连线”,两表间的“一对一”关系就此建

立完成。

②建立表间的一对多关系

建立两个表之间的“一对多”关系,首先,要使

两个表都具有同一属性的字段;然后,定义父表中该

字段为主索引字段(字段值是唯一的),子表中与其

同名的字段为普通索引字段(字段值可重复)。由于

两个表中的同一属性的字段值是一对多的关系,因此

两个表之间就具有了“一对多”的关系。

■.

(2)设置参照完整性约束

在建立参照完整性之前必须首先清理数据库(独占打

开),只要数据库设计器为当前窗口,主菜单栏上就

会出现“数据库”菜单,在“数据库”菜单下选择

“清理数据库”与执行命令PACKDATABASE功能

相同。在数据清理完毕,用鼠标右键单击表之间的联

系并从快捷菜单中选择“编辑参照完整性”,打开下

参照完整性规则包括更新规则、删除规则和插入规则

当选择“更新规则”选项卡,设置关联表间的更新规则。

[级联]:当修改父表中的某一记录时,子表中相应的记录将会

改变;

[限制]:当修改父表中的某一记录时,若子表中有相应的记录,

则禁止修改;

[忽略]:两表更新操作将互不影响。

当选择“删除规则”选项卡,设置关联表间的删除规则。

[级联]:当删除父表中的某一记录时,将删除子表中相应的记

邛'艮制]:当删除父表中的某一记录时,若子表中有相应的记录,

则禁止修改;

[忽略]:两表删除操作将互不影响。

当选择“插入规则”选项卡,设置关联表间的插入规则。

[限制]:当在子表中插入某一记录时,若父表中没有相应的记

录,则禁止修改;

[忽略]:两表插入操作将互不影响。

工作区与多表操作

1.工作区

(1)工作区的概念

打开一个表就是把它从磁盘装入内存的某一工作

区,Vis

温馨提示

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

评论

0/150

提交评论