第 5章 表的基本操作
5.1 表的建立
5.2 表的显示与维护
5.3 表的排序与索引
5.4 表的统计与计算
5.5 多个表的操作
小 结
5.1 表的建立
5.1.1 设计表的结构
5.1.2 建立表结构
5.1.3 向表输入记录
返回目录
5.1.1设计表的结构
表中的记录所包含的信息是存放在各个字段中的,设计表的结构也就是创建若干字段来保存用户收集的信息,在收集完信息后,具体设计表结构时有三点
很重要:首先是为各字段取一个直观易理解的字段名,其次是确定字段的数 据类型,第三是根据字段取值范围来确定字段宽度。
1,字段的命名
VFP中的自由表的字段名由不超过 10个字母、数字或下划线组成,而数据库表允许
使用长达 128个字符的长字段名。为数据表的每一个字段起一个清晰、易懂的字段
名,对于今后对数据表的操作将会起到事半功倍的作用。
2,字段类型
( 1)字符型( 2)货币型( 3)数值型( 4)浮点型( 5)日期型( 6)日期时间型( 7)双精度型( 8)整型( 9)逻辑型( 10)备注型( 11)通用型( 12)
字符型(二进制)( 13)备注型(二进制)
3,字段宽度
( 1)应用系统开发的要求
按实际数据所需要的长度来设定字段的宽度,
( 2)在 VFP数据类型允许范围内
在 VFP中数据的长度都是有规定的,在设置字段长度时不要超过 VFP所能接受的最大长度。
返回
5.1.2建立表结构
表的创建有两种方法:使用菜单方式创建表和在, 命令窗口,中使用 CREATE命令创建数据表。
1,使用菜单方式创建表
两种用菜单创建表的方法,用, 表设计器, 创建表和和, 表向导, 创建表。
用 Table Designer(表设计器 )创建新表。
用 Table Wizard (数据表向导 )创建新表。
2,使用命令方式创建数据表
命令格式
CREATE [盘符 ] [路径 ] [数据表文件名 ]
说明,
此命令的功能是在指定的目录下建立一个数据表文件。,数据表文件名, 由用户指定,其扩展名是,dbf,如果省略了
扩展名,则系统会自动加上默认的扩展名,dbf。如果不指定盘符和路径,则在安装 VFP的目录下建立数据表文件。
返回
5.1.3 向表输入记录
追加记录的方法有三种:在, 浏览, 窗口进入, 追加方式, ;在,编辑, 窗口进入, 追加方式, ;从, 表, 菜单中选择, 追加新记录,
(此方式每单击一次菜单命令只能输入一条记录,如要输入多条记录则要多次执行此命令)。在本节主要介绍最常用的方式:在, 浏览,
窗口进入, 追加方式, 。
操作步骤如下,
① 打开数据表。
② 单击, 显示, 菜单中的, 浏览, 命令,VFP弹出, 浏览, 窗口,当,浏览, 窗口打开之后,VFP菜单增加了, 表, 菜单,而减少了, 格
式, 菜单,显示, 菜单发生了变化;
③ 单击, 显示, 菜单中的, 追加方式,,此时在, 浏览, 窗口中的底部添加一个空记录行,当此条记录输入完成之后,在其底部又会出现
一个空记录行;
④ 向备注型字段 Resume输入信息,可用鼠标在此字段上双击,即弹出一个编辑窗口,在此窗口中输入备注内容;
⑤ 由于 VFP中的通用型字段一般用来存放图片、照片等数据的,在向通用型字段输入信息前先拷贝一张图片至剪贴板,然后双击通用型字
段,弹出一个类似于备注型编辑窗口的窗口,在 VFP系统的, 编辑,菜单中选择, 粘贴, 即可。
返回
5.2 表的显示与维护
5.2.1 数据表的打开与关闭
5.2.2 表的显示
5.2.3 表的修改和编辑
返回目录
5.2.4 表记录指针的定位
5.2.5 表记录的追加和删除
5.2.6 表的复制
5.2.7 表记录的筛选
6.2.1数据表的打开与关闭
1,使用菜单方式打开数据表
操作步骤如下,
① ?在, 文件, 菜单中选择, 打开, 命令;
② ?在, 打开, 窗口中的, 文件类型, 下拉框中选择, 表, 类型;
③ ?在, 文件名, 栏中输入要打开的数据表文件,并单击, 确定, 。
2,使用命令方式打开数据表
USE命令
命令格式
USE [路径 ] [INDEXS 索引文件名表 ] [ALIAS别名 ] [NOUPDATE]
说明
此命令的功能是打开一个现存的数据表,如内存中已打开了别的数据表,则先关闭存在的数据表,然后再向内存中放入当前数据表。
INDEXS 打开一个指定的索引文件,如没有指定,则不打开任何索引(关于索引将在下一章进行说明);
ALIAS 为打开的数据表指定一个别名,以方便随后的操作。
NOUPDATE 是对数据表的一个保护命令,它的功能是禁止对数据表进行增加记录、删除记录、修改记录,也不能通过 MODIFY STRUCTURE命
令对数据表结构进行改动。
6.2.1数据表的打开与关闭
对数据表的操作完成后,应将其关闭以释
放其所占用的系统资源,可直接在命令窗口中
输入命令 USE,关闭当前数据表;或输入
CLOSE ALL,此命令不但关闭当前的数据表,
而且所有打开的数据库、数据表、工作区等都
将被关闭。
返回
5.2.2 表的显示
? 数据表结构的显示
1,菜单方式
操作步骤如下,
① ?打开一个数据表;
② ?在, 显示, 菜单中选择, 表设计器, 。
2,命令方式
在命令方式下,可使用如下命令来实现,
LIST | DISPLAY STRUCTURE
数据记录的显示
? 数据记录的显示
1,菜单方式
查看一个数据表的记录最方便的方法是使用菜单,选用, 浏览,窗口,步骤是:打开一个数据表,然后在, 显示, 菜单中选择, 浏览,
命令即可。
2,命令方式
显示数据表的记录也可使用命令方式来实现,主要使用以下两条命令,DISPLAY和 LIST。
返回
5.2.3 表的修改和编辑
数据表在实际使用过程中,常根据不同的需要而进行修改,包括数据表结构的修改和数据表记录的修改和编辑。
? 数据表结构的修改
对数据表结构的修改可分为:修改表中的字段属性或字段名、向表中插入新字段和删除表中的字段三种操作。
1,修改字段
① ?打开数据表;
② ?单击, 显示, 菜单中的, 表设计器, ;
③ ?在弹出的, 表设计器, 中选择, 字段, 选项卡;
④ ?在相应的字段直接修改属性或字段名。
2,数据表中增添新的字段
① ?同, 修改字段, 的前 3步;
② ?选择要插入字段处(一般在选择的字段的前面插入新字段)并单击, 插入, 按钮;
③ ?为新插入的字段添加属性。
3,删除字段
① ?同, 修改字段, 的前 3步 ;
② ?选择要删除的字段处并单击, 删除, 按钮 ;
? 数据表记录的修改和编辑
( 1) EDIT命令
( 2) REPLACE命令
( 3) BROWSE命令
返回
5.2.4 表记录指针的定位
? 记录号
在 VFP中每一条记录按其物理存放顺序有一个唯一的编号,称为记录号,第一条记录的记录号为 1。
在没有对数据表中的记录进行删除、插入的情况下,各条记录的记录号是不发生变化的。索引并不改变记录号,只是调整记录的逻辑顺序。对于新增加的记录,
VFP自动为其赋予唯一的记录号。
? 记录指针
每一个打开的数据表,都有一个唯一的的记录指针。记录指针指向该数据表的当前记录,记录指针的值等于该记录号。
当打开数据表时,记录指针指向逻辑顺序上的第一条记录。在没有索引的情况下,记录的逻辑顺序与物理存放顺序一致,即指向记录号为 1的记录。
? 记录的定位
1.使用菜单方式进行记录定位
(1) 打开数据表,并浏览该表。
(2) 单击, 表, 菜单中的, 转到记录,,再在它的子菜单中选择所需的命令
2.使用命令方式进行记录定位
(1) 绝对移动( Go|Goto)
(2) 相对移动( SKIP )
? 直接查询命令
(1) Locate
(2) Continue
返回
5.2.5 表记录的追加和删除
? 表记录的追加与插入
数据的追加
APPEND命令
数据的插入
INSERT 命令
? 数据的删除
菜单方式
在浏览数据表的状态下设置删除标志
命令方式
(1) 逻辑删除 (DELETE 命令 )
(2) 恢复删除记录 (RECALL 命令 )
(3) 物理删除 (PACK 命令 )
返回
5.2.6 表的复制
? 数据表结构的复制
COPY STRUCTURE 命令
? 数据表结构及数据表记录的复制
COPY TO 命令
返回
5.2.7 表记录的筛选
? 菜单方式
操作步骤如下,
(1) 点击, 窗口, 菜单,然后选择, 数据工作期,命令
(2) 在弹出的, 数据工作期, 对话框中点击, 属性,按钮。
(3) 在弹出的, 工作期属性, 对话框中的, 数据过滤器中, 中输入条件表达式,或通过表达式生成器
构造筛选记录的条件表达式。
? 命令方式
SET FILTER TO命令。
命令格式,
SET FILTER TO [条件 ]
功能说明,
设置表记录的过滤条件,当未指定条件时选择表中的全部记录。
返回
5.3 表的排序与索引
5.3.1 表的排序
5.3.2 索引概述
5.3.3 建立索引
5.3.4 索引文件的使用
返回目录
5.3.1 表的排序
? 排序是指定一关键字段,并按此字段的字符顺
序、数据值的大小或时间顺序对数据表中的记
录存放次序重新排列,并生成一个新的数据表
文件。排序一般是使用命令方式来实现的。
(SORT TO 命令 )
返回
5.3.2 索引概述
对于已经建好的表,如只按输入的顺序进行显示是不能满足实际需要的,利用索引对数据表中的数据进行排序,以便加快检索数据的速度,
快速显示、查询或者打印记录。索引存储了一组记录的指针,通过索引 可以很快的找到相对应地数据。当数据表中的记录很多时,可以根据实
际需要,为数据表建立多个索引,以便针对不同的应用,以不同的顺序 快速地访问该表。
索引的功能主要是为用户在使用过程中加快数据的检索,也就是说加快查询数据的速度。根据索引目录的数量,可将索引分为两类:单索
引和复合索引。在单索引文件中只含有一个索引条目,其扩展名为,IDX;在复合索引文件中允许含多个索引条目。其文件名一般与对应表名相同,
也可以不同,扩展名为,CDX。在使用表时,索引文件被打开并更新。虽然建立索引的方法很简单,也不应每个字段建立一个索引。因为不常用
的索引往往会降低程序的执行速度。索引对于建立数据库表之间的关系 也很重要。
影响记录处理顺序的另一种方法是排序,排序和索引是有区别的,索引是按数据表索引字段的顺序重新生成一个索引文件,它不改变数据
表的物理存储顺序;而排序对记录进行重新排序后,对物理存放顺序也 进行了改变,生成一个新的数据表,且两个表之间也没有什么关系,相
互独立。
返回
5.3.3 建立索引
1,菜单方式
用表设计器建立索引
用表向导创建新表时建立索引
2,命令方式
INDEX ON 命令
返回
5.3.4 索引文件的使用
? 索引文件的打开
USE <文件名 > INDEX <索引文件名表 >
SET INDEX TO <索引文件名表 >
SET ORDER TO
? 索引查询命令
Find 命令
Seek 命令
返回
5.4 表的统计与计算
5.4.1 统计记录个数
5.4.2 求数值表达式之和与平均值
5.4.3 财务计算
5.4.4 分类汇总
5.4.1 统计记录个数
COUNT命令用来统计当前数据表文件中,在一定范围内满足条件的记录个数。
命令格式
COUNT [范围 ] [FOR 表达式 1] [WHILE 表达式 2] [TO <内存变量 >] [NOOPTIMIZE]
命令选项说明,
[范围 ]:指定统计当前数据表记录范围,默认值为 ALL,统计数据表中所有的记录。
[FOR 表达式 1] [WHILE 表达式 2]:指定统计的记录要求满足的条件。
[TO <内存变量 >]:指定用来保存统计结果的内存变量。
[NOOPTIMIZE]:是否使用 RUSHMORE技术优化 FOR<条件 >,在不引用参数时为使用此技术优化。
返回
5.4.2 求数值表达式之和与平均值
? 数值求和
SUM命令用来对数值类型的字段进行求和计算。其格式如下,
SUM [表达式表 ] [范围 ] [FOR 表达式 1] [WHILE 表达式 2]
[TO <内存变量 > | TO ARRAY <数组 >]
[NOOPTIMIZE]
? 求平均值
AVERAGE命令用来对某些数字类型的字段进行求平均值的计算。其格式如下,
AVERAGE [表达式表 ]
[范围 ],[FOR 表达式 1] [WHILE 表达式 2]
[TO <内存变量 > | TO ARRAY <数组 >]
[NOOPTIMIZE]
返回
5.4.3 财务计算
FV()函数,返回某项投资的未来获利情况
PV()函数,返回某项投资的现值情况
PAYMENT(),返回投资或贷款的每一期付款额
返回
5.4.4 分类汇总
? TOTAL命令的功能是将当前数据表中某些数值
型字段按照关键表达式进行分类求和,结果放在
新生成的数据表文件中
返回
5.5 多个表的操作
5.5.1 工作区
5.5.2 数据表的关联
5.5.3 数据表的联接
返回目录
5.5.1 工作区
? 工作区号与别名
1.工作区的概念:工作区是用来保存数据表及其相关信息的一 片内存空间。平时讲打开数据表实际上就是将它从磁盘调入到
内存的某一个工作区。在每个工作区中只能打开一个数据表文件,但可以同时打开与数据表相关的其他文件(如备注文件、
索引文件、查询文件等)。若在一个工作区中打开一个新的数据表,则该工作区中原来的数据表将被关闭。
2.工作区号与别名,VFP提供了 32 767个工作区,系统以 1~32 767作为各工作区的编号。
工作区的别名有两种。一种是系统定义的别名,1~ 10号工作区的别名分别为字母 A~ J。另一种是用户定义的别名,
使如下用命令指定,
USE <表文件名 > ALIAS <别名 >
由于一个工作区只能打开一个数据表,因此可以把数据表的别名作为工作区的别名。若未用 ALIAS子句对数据表指定别
名,则以数据表的主名作为别名。
5.5.1 工作区
? 工作区的选择
列表区选择使用 SELECT命令。
命令格式
SELECT <工作区号 > | <别名 > | 0
? 工作区的互访
在当前工作区中可以访问其他工作区中的
数据表的数据,但要在非当前数据表的字段名
前加上别名和连接符,引用格式为,
别名,字段名或别名 ->字段名
返回
5.5.2 数据表的关联
所谓关联,就是当前数据表记录指针的移动,能引起别的数据表按某种条件相应地移动记录指针。建立关联后,我们称当前数据表为主文件,与主文件建立关
联的数据表为子文件。
? 一对一的关联
一对一的关联采用 SET RELATION命令。
命令格式
SET RELATION TO [<关联表达式 1>] INTO <工作区号 1>|<别名 1>
[,<关联表达式 2> INTO <工作区号 2>|<别名 2>]… ] [ADDITIVE]
命令功能
使当前数据表与 INTO子句所指定的工作区上的数据表按表达式建立关联
? 一对多的关联
命令格式
SET SKIP TO [<别名 1>[,<别名 2>… ]
命令功能
使当前数据表和它的子数据表建立一对多的关联
返回
5.5.3数据表的联接
数据表的联接命令,
JOIN WITH <工作区号 >|<别名 > TO <文件名 >
[FOR <条件 >] [FIELDS <字段名表 >]
命令功能,
将当前数据表与指定工作区的数据表按指定
的条件进行联接,联接产生一个新的数据表。
返回
小结
本章阐述了如何操作数据表及工作区的
知识,为用户使用 VFP打下了一个基础。主
要知识点如下,
? 数据表的建立。
? 如何向数据表中进行数据记录操作。
? 索引与排序的使用。
? VFP中的几个重要的函数。
? 工作区的概念与使用。
返回目录