一、数据表的浏览和定位操作
1、打开命令
USE [表文件名][EXCLUSIVE, SHARED]
EXCLUSIVE:以独占的方式打开
SHARED:以共享的方式打开
2、显示命令
LIST  (DISPLAY)
显示表结构 
LIST(DISPLAY)    STRUCTURE
其中:LIST-连续显示;DISPLAY-分页显示
例:打开“学生表”, 显示表结构
use D:\学生成绩管理系统\学生表.dbf
字符串常量使用( )作为定界符list structure 【显示表结构】
3、浏览命令
BROWSE
例:打开学生表,浏览表中的记录
use D:\学生成绩管理系统\学生表.dbf
browse
4、有选择的浏览记录(筛选)
1)菜单方式
打开表的浏览窗口,选择“表\属性”,在对话框中输入筛选条件
2)命令方式
格式1SET FILTER TO [条件表达式]
功能:设置数据过滤器,使得数据表中只有满足指定条件的记录才被访问。
1:用命令浏览学生表中所有女生的记录。
use D:\学生成绩管理系统\学生表.dbf
SET FILTER TO 性别=’
BROWSE
2、取消例1中的记录筛选,浏览学生表中所有学生的记录
use D:\学生成绩管理系统\学生表.dbf
SET FILTER TO
BROWSE
格式2SET FIELDS TO ALL\[字段名]
功能:设置数据过滤器,使得数据表中只有指定的字段才被访问。
1:用命令方式浏览学生表中的学号、姓名、专业3个字段。
use D:\学生成绩管理系统\学生表.dbf
SET FIELDS TO 学号,姓名,专业
BROWSE
2、取消例1中对字段访问的限制,浏览学生表中所有字段内容
use D:\学生成绩管理系统\学生表.dbf
SET FIELDS TO ALL
BROWSE
5.记录的定位
TOP:记录的首记录
BOTTOM:记录的尾记录
BOFBEGIN OF FILE:首记录之前有一个文件起始标识
EOFEND OF FILE):尾记录之后有一个文件结束标识
"--转到记录---定位":指向满足条件的第一条记录
1)菜单方式
打开表,单击浏览,选择“表\转到记录”命令
2)命令方式
指针的绝对移动方式
格式:GO [RECORD] TOP\BOTTOM
例:用命令的方式定位学生表中的第一条、第六条记录
use D:\学生成绩管理系统\学生表.dbf
GO TOP
DISPLAY
GO 6
DISPLAY
指针的相对移动方式
SKIP [+\-]<算术表达式>
例:打开学生表,用SKIP命令移动记录指针
use D:\学生成绩管理系统\学生表.dbf
GO 2
DISPLAY
SKIP 2
DISPLAY
SKIP -3
DISPLAY
条件定位命令
LOCATE [范围]FOR <条件>[while <条件>]
FOUND()函数:测试是否到满足条件的记录。T  OR  F
FOR<条件>表示在指定范围内,定位满足条件的第一条记录
while <条件>:表示仅当条件满足时才进行记录的定位。如果指定范围内的第一条记录就不满足条件,则立即结束操作,不管后面是否有符合条件的记录。
例:打开学生表,用LOCATE命令定位所有男生的记录
use D:\学生成绩管理系统\学生表.dbf
LOCATE  FOR 性别=‘男’
FOUND()
DISPLAY  【显示第一条记录】
继续执行,显示后面的记录,用命令:
CONTINUE
DISPLAY
二、数据表的维护操作
1、表结构修改
1)菜单方式
在项目管理器中选择表,选择“修改”命令
2)命令方式
use D:\学生成绩管理系统\学生表.dbf
MODIFY STRUCTURE
2、添加记录
1)菜单方式
选择表,单击“浏览”,选择“表\追加新记录”(一次只能追加一条记录)或“显示\追加方式”(一次可以追加多条记录)
(2) 命令方式
格式1APPEND
功能:在当前数据表的尾部添加记录。
格式2INSERT [BEFORE]
功能:在当前数据表的某个记录之前或之后插入一条记录
例:在第三条和第四条记录之间插入一条新记录
use D:\学生成绩管理系统\学生表.dbf
GO 3
INSERT
或: GO 4
INSERT BEFORE
3、从其他的文件中追加记录
1)菜单方式
选择“文件\打开”,打开“新表”,再从“显示”菜单中选择“浏览或编辑”,打开浏览窗口;选择“表\追加记录”命令,在出现的“追加来源”对话框中进行操作。
例:从学生表中选择“学号,姓名,专业”三个字段及所有学生记录,追加到新表S中。
4、编辑记录
在浏览窗口中编辑记录
1)菜单方式
打开项目管理器,选择表,单击“浏览”,定位要修改的记录进行修改。
2)命令方式
格式:BROWSE [FIELDS<字段名>][FREEZE<字段名>][NOAPPEND][NOMODIFY][FOR <条件表达式>]
FIELDS:指定在浏览窗口中显示的字段
FREEZE:使光标冻结在某字段上,仅能修改该字段,其他字段仅能浏览不可修改。
NOAPPEND:禁止向数据表中追加记录
NOMODIFY:禁止修改或删除数据表中的记录。
例:用命令方式打开学生表,显示并修改“学号,姓名”2个字段。
use D:\学生成绩管理系统\学生表.dbf
BROWSE FIELDS 学号,姓名
批量修改记录
1)菜单方式
打开数据表,在浏览状态下,选择“表\替换字段”
2)命令方式
REPLACE[范围][字段名] WITH<表达式>
例:打开学生表,将学生的学号前加上“S
use D:\学生成绩管理系统\学生表.dbf
REPLACE 学号 WITH S+学号
LIST 学号,姓名,专业
SUBSTR(字符表达式):取字符串函数
SUBSTR(学号,27
5、删除记录
1)逻辑删除:只是在记录上加上删除标记,并没有从数据表中将其清除,需要的时候还可以恢复;
三种逻辑删除方式:
A、鼠标方式:
B、菜单方式:
"--删除记录"
C、命令方式:
DELETE [范围] FOR <条件>
例:use D:\学生成绩管理系统\学生表.dbf
GO BOTTOM
DELETE
DISPLAY
或:DELETE  FOR 专业='电子商务'
逻辑删除记录的恢复:
A、鼠标方式:
B、菜单方式:
"--恢复记录"
C、命令方式:
RECALL[范围] FOR <条件>
例:打开学生表,将电子商务专业的记录逻辑删除
use D:\学生成绩管理系统\学生表.dbf
DELETE  FOR 专业='电子商务'
LIST
RECALL ALL
LIST
2)物理删除:真正从表文件中清除记录,不可再恢复。
第一种情况:将带有逻辑删除标记的记录物理删除
A、菜单方式:
“表--彻底删除”
B、命令方式:
PACK
例:打开学生表,先将最后一条记录逻辑删除,再将其彻底删除
use D:\学生成绩管理系统\学生表.dbf
GO BOTTOM
DELETE
DISPLAY
PACK
DISPLAY
第二种情况:记录的一次性删除所有记录
命令方式:ZAP
功能:将数据表中的记录一次性彻底删除,只保留表的结构。
例:用ZAP命令删除“STUDENT”中的所有记录。
use D:\学生成绩管理系统\学生表.dbf
?reccount()
zap
?reccount()
6、表数据文件的复制
1)菜单方式:
选择“文件--打开”命令,到要复制的表文件;
选择“文件--导出”命令,在对话框:“到”的空白处输入新的表的名称
如果复制整个表,则直接单击确定,若复制部分内容,则在导出选项中进行选择。
(2)命令方式
COPY TO <新表文件名>[范围][FIELDS <字段名>]
例:将学生表中的电子商务专业的记录复制到新表“STUDENT”中
use D:\学生成绩管理系统\学生表.dbf
COPY TO  D:\学生成绩管理系统\STUDENT.dbf  FOR 专业=“电子商务”
use D:\学生成绩管理系统\STUDENT.dbf
LIST
数据表结构的复制
COPY STRUCTURE <新表文件名>[范围][FIELDS <字段名>]
例:利用学生表的结构,建立一个新表"S",其中包括学号、姓名、专业字段
use D:\学生成绩管理系统\学生表.dbf
COPY  STRUCTURE  TO  D:\学生成绩管理系统\S.dbf  FIELDS 学号,姓名,专业
use D:\学生成绩管理系统\S.dbf
LIST  STRUCTURE
表重命名
RENAME <源表文件名> TO <新表文件名>
三、数据表排序和索引
1、物理顺序:记录在数据表中是按照输入时的顺序排列的,称为物理顺序,VFP用记录号来标识。
2、数据表的排序
1)数据表的排序就是把数据表中的记录按照某个字段值的大小顺序重新排列,作为排序依据的字段称为“关键字”
2)在VFP中,数据大小的比较规则:数值型数据按其数值的大小进行比较;字符型数据按其机内码顺序比较,英文一般为ASCII值的大小,汉字一般为汉字国标码的值的大小;日期型数据按年、月、日的顺序比较。
3)命令格式
SORT  TO <文件名> ON<字段名>[/A /D][FOR <条件>]
例:打开学生表,按照“专业”升序排序,专业相同者,按“学号”降序排列,排序后文件以“学生排序”为名,存放在 D:\学生成绩管理系统\学生排序.dbf
use D:\学生成绩管理系统\学生表.dbf
sort to D:\学生成绩管理系统\学生排序.dbf  on 专业,学号/D
use D:\学生成绩管理系统\学生排序.dbf
DISPLAY ALL
(4)索引
排序虽然实现了数据记录的有序排列,但排序结果建立了许多内容相同而只是排列次序不同的数据表文件,造成了大量的数据冗余,浪费了存储空间。而且,对数据表进行增、减、修改操作,会使数据表中的记录变的无序,必须再用排序命令对数据表重新排序,非常不便。应用索引可以解决上述问题。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。