当前位置:文档之家› VFP常用的操作命令总结

VFP常用的操作命令总结

VFP常用的操作命令总结<范围>子句4种情况:ALL 操作对象为表中全部数据。

NEXT <n> 操作包括当前记录在内的以下n条记录。

RECORD <n> 只操作第n个数据。

REST 操作从当前到结尾的记录。

①显示表中记录LIST、DISPLAYUSE F:\VFP\st.dbf (路径根据不同情况有不同值)LIST [<范围>] [FIELDS] <字段名列表> [FOR<条件>] [OFF]LIST 学号,姓名, 入学成绩FOR 性别.and. 入学成绩>=480DISPLAY FOR 出生时间<CTOD(“03/16/86”) OFF(LIST为全部显示命令,DISPLAY仅显示当前记录内容。

若DISPLAY中包含ALL或FOR语句,则等同于LIST)。

②修改记录REPLACEREPLACE [<范围>] <字段名1> WITH <表达式1>[ ,<字段名2> WITH <表达式2>] [ FOR <条件>]REPLACE 入学成绩WITH 入学成绩+10 FOR 所在系="计算机"REPLACE ALL 总分WITH 语文+数学+英语REPLACE 补助WITH 补助*1.5 ,分数WITH 分数+10 FOR 性别='男' .AND. 专业='物探'(如果没有ALL或FOR,只更替当前记录)。

③删除记录DELETEDELETE [<范围>] [FOR <条件>]GO 2DELETE (逻辑删除第2条记录)DELETE ALL (逻辑删除全部记录)DELETE FOR 所在系=”中文”.and. .not. 性别DELETE FOR 入学成绩<=470恢复记录:RECALL RECALL [<范围>] [FOR <条件>] RECALL (只恢复当前一条记录)。

RECALL ALL (恢复所有打上删除标记的记录)。

物理删除命令:PACK、ZAPPACK (物理删除所有打上删除标记的记录,一旦执行,无法用RECALL 恢复)。

ZAP =DELETE ALL+PACK (等价于DELETE ALL 加上PACK,物理删除表中所有记录,只保留表结构,结果为一空表)。

④插入新记录(用REPLACE命令填充一个新数据)看懂即可APPEND BLANK (书上第26页)REPLACE 学号WITH “2006200”,姓名WITH “丁一”,性别WITH .T. ,出生时间WITH CTOD(“07/19/87”), 入学成绩WITH 508,所在系WITH “计算机”,系负责人WITH “程家吉”⑤数据查询LOCATELOCATE [<范围>] [FOR <条件>]定位到范围中满足FOR条件的第1条记录。

LOCATE FOR YEAR(出生时间)=1986(其中,出生日期为日期类型,如果为字符串类型,可用RIGHT(出生日期,2)= "86")CONTINUEDISP(注:CONTINUE命令必须与LOCA TE命令配合使用,以显示下一条符合条件的记录)。

⑥统计记录COUNT、SUM、A VERAGECOUNT [<范围>] [FOR <条件>] [TO <内存变量>]SUM [<范围>] [ <表达式表>] [FOR <条件>] [TO <内存变量表>]A VERAGE [<范围>] [<表达式表>][FOR<条件>][TO<内存变量>]COUNT FOR .NOT. 性别TO nCOUNT FOR 入学成绩>=480 TO x? n, xSUM 入学成绩FOR .NOT. 性别TO nuSUM 入学成绩FOR 所在系="计算机" TO numberA VERAGE 入学成绩FOR YEAR(出生时间)=1986.AND. .NOT. 性别TO pjcjA VERAGE 入学成绩FOR 所在系="中文" TO pjszx⑦用命令建立索引INDEX ON <索引表达式> <索引文件名> [FOR <条件>]INDEX ON 学号TO xhLISTINDEX ON ---入学成绩TO cj (加上减号为降序,默认为升序,仅对数值型有效.)INDEX ON 出生时间TO birthdayLISTINDEX ON 姓名+ STR(入学成绩) TO xmcjLISTINDEX ON 出生时间TAG birthday DESC按出生时间的降序建立索引(默认为升序)。

补充内容:常用函数ABS( )、ALLTRIM()、BETWEEN( )、BOF( )、CTOD( )、DATE( )、DATA TIME( )、DAY( )、DTOC( )、EOF( )、IIF( )、INT( )、LEFT( )、LEN( )、MAX( )、MIN( )、MONTH( )、RECCOUNT( )、RECNO( )、RIGHT( )、STR( )、SUBSTR( )、TIME( )、YEAR( )。

①索引的降序处理:如果是数字,可直接在前面加“-”号。

如果是字符串,则格式如下:INDEX ON 出生时间TAG sj DESC②求最大值最小值的方法(命令与函数的配合使用)。

CALCULATE MAX(入学成绩) TO maxcjCALCULATE SUM(入学成绩),MAX(入学成绩),MIN(入学成绩),A VG(入学成绩)③复制数据到新表命令如下:COPY TO <新表名> FIELDS <范围> FOR <条件>COPY TO 学生1.dbf FIELDS 姓名,性别,出生时间FOR 所在系="计算机"(将当前表中符合条件的记录的对应字段复制到新表)④将逻辑型字段显示为文本LIST FIELDS 姓名, ”性别:”+ IIF(性别,’男’,’女’)⑤将数据排序后插入到新表中SORT TO <文件名>ON <字段名1>[/A][/D],<字段名2>[/A][/D]…[范围][FOR条件]要求对所有记录按照出生时间的降序排列,出生时间相同时再按所在系的升序排列,并生成表名为“学生2”的新表。

sort to 学生2.dbf on 出生时间/d, 所在系/aSort to student2.dbf on 出生时间/D fields 姓名,性别,出生时间for 性别⑥记录指针GO TOP 指针指向首记录。

GO BOTTOM 指针指向末记录。

GO n n为正整数,指针指向第n条记录。

SKIP n n为正、负数,正数指针下移,负数指针上移。

?BOF( ) 提问指针是在文件头上么。

?EOF( ) 提问指针是在文件尾么。

?RECNO( ) 提问当前指针指向第几条记录。

?RECCOUNT( ) 提问当前表中一共有多少条记录。

⑦综合练习LIST "学号:"+学号,"姓名:"+姓名,"性别:"+iif(性别,"男","女"),"出生时间:"+dtoc(出生时间),"入学成绩:"+str(入学成绩,6,1)补充教材课后习题答案一、选择题BCCAB BDCDB BDABC 无BACB二、填空题1、WITH 价格*(1-0.2245) , 航班='M' .OR. 航班='B'2、李明郭吴欧阳惠吴友3、DELETED ON4、(1) 120(2) 1003(3) CONTINUE5、A VERAGE , REPLACE6、价格<100 .OR. 价格>4000PACK三、操作题第一题:(1)、DISPLAY STRUCTURE(2)、SUM 补助FOR SUBSTR(DTOC(出生日期),7,2)<"86" TO xyz(或:SUM 补助FOR YEAR(出生日期)<1986 TO xyz)(3)、DELETE ALL FOR 是否党员.AND. 性别='男'PACK(4)、INDEX ON 姓名+STR(补助) TO xmjbbzh第二题(1)、LIST FIELDS 姓名,补助FOR 专业='石油'(2)、COUNT FOR .NOT. 是否党员.AND. 专业='物探' TO x(3)、REPLACE ALL 专业WITH "物理探测" FOR 专业='物理'(4)、INDEX ON 出生日期TO csrq第三题(1)、LIST FIELDS 姓名,补助,等级FOR 性别='女' .AND. 是否党员.AND. 补助>100(2)、LOCATE FOR .NOT. 是否党员.AND. 性别='女'(3)、DELETE ALL FOR 等级='优秀' .AND. .NOT.是否党员(4)、SORT TO 学生2 ON 出生日期FIELDS 姓名,补助,出生日期FOR 专业="计算机"第四题(1)、LIST FIELDS 姓名,出生日期FOR 性别='女' .AND. MONTH(出生日期)=7(2)、LOCATE FOR 性别='男' .AND. 等级='优秀'(3)、REPLACE ALL 补助WITH 补助+30 FOR 性别='男' .AND.专业='物探'(4)、INDEX ON 姓名+STR(分数) TO xmfsh第五题(1)、LIST FOR YEAR(DA TE( ))-YEAR(出生日期)>=20(2)、AVERAGE 分数FOR YEAR(出生日期)=1983.AND. 性别='女' TO xyz(其中,出生日期为日期类型,如果为字符串类型,可用RIGHT(出生日期,2)= "83")(3)、DELETE ALL FOR 等级='优秀' .AND. .NOT. 是否党员(4)、SORT TO 学生2.dbf ON 分数FOR 性别='女' .AND. YEAR(出生日期)=1984。

相关主题