《vf常用命令(全).pdf》由会员分享,可在线阅读,更多相关《vf常用命令(全).pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 1 一、数据库的建立、打开、关闭和删除.1 二、数据表和视图的建立、打开、关闭和删除.2 三、数据表和表结构的编辑、修改.2 四、数据表中数据操作(查询、插入、删除和修改等).3 五、文件管理(文件和文件夹的复制、创建和删除).5 六、数据的复制与传送.5 七、排序与索引.6 命令结构 FoxPro 的命令结构一般由命令动词、语句体和注释几部分构成。如:LIST 范围 FIELDS 字段名列表 FOR 条件WHILE 条件 OFF TO PRINT 常用子句 范围:表示记录的执行范围,可以是下面几项其中之一:ALL 表示全部记录;NEXT n 表示从当前记录开始的以下 n 条记录;RECOR
2、D n 表示第 n 号记录;REST 表示从当前记录到最后一条记录。FIELDS 字段名表:用于指定操作的字段,多个字段时用逗号分隔。FOR 条件:对满足条件的记录进行操作。WHILE 条件:当遇到第一个不满足条件的记录时,停止命令执行。以下命令中,大写的英文词为关键词,必须原样照写。“常用子句”指以下几个可选子句:范围 FIELDS 字段名表 FOR 条件 WHILE 条件 命令中的“列表”,指用“,”分隔的各项。如“字段名列表”就是将各个字段名用逗号分隔。部分英文词的意义:Databasename 数据名 tablename 数据表名 filename 文件名 Viewname 视图名 a
3、rrayname 数组名 提示:加下划线的为本课程要求掌握的命令。一、数据库的建立、打开、关闭和删除 建立数据库:CREATE DATABASE databasename|?从磁盘中删除数据库:DELETE DATABASE databasename|?打开数据库:OPEN DATABASE EXCLUSIVE|SHAREDNOUPDATE 打开数据库设计器(允许用户按交互方式编辑当前数据库):MODIFY DATABASE databasename|?指定的数据库 databasename 为当前数据库。指定当前的数据库:SET DATABASE TO databasename 2 Data
4、basename 必须为已经打开的数据库。如果省略数据库名称 databasename,则不指定当前数据库(没有当前数据库)。关闭数据库:CLOSE DATABASE ALL 关闭当前数据库,如果带 ALL 子句,则关闭所有打开的数据库。二、数据表和视图的建立、打开、关闭和删除 建立数据表(SQL 命令):CREATE TABLE|DBF tablename(Col_name1 Type1 NOT NULL/NULL,Col_name2 Type2 NOT NULL/NULL.)table_name 是所创建的数据表的名字。Col_name1,Col_name2,.是表中列的名。Type1,T
5、ype2.是相应列的数据类型(VFP 的数据类型见表 3-9)。如果说明为 NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。向当前打开的数据库中添加数据表:ADD TABLE tablename|?从当前打开的数据库中删除数据表:REMOVE TABLE tablename|?DELETE 如果包含 DELETE 子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。在当前打开的数据库中建立视图:CREATE SQL VIEW viewname AS SELECT 其中 SELECT 为 SELECT 语句。执行这个语
6、句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。从当前打开的数据库中删除视图:DELETE VIEW viewname 打开一个表:USE tablename|?IN 工作区号 将当前数据表与另一数据表连接后建立一个新表:JOIN WITH 工作区号|表别名 TO tablename FOR 条件 FIELDS 字段名表 三、数据表和表结构的编辑、修改 打开浏览窗口(可在其中编辑数据表):BROWSW(详细格式见 P.114116)打开并修改数据表中的字段:(1)CHANGE FIELDS 字段名列表 3(2)EDIT FIELDS 字段名列表 这两个命令的功能相似,可选子句
7、较多(详见手册)。数据表改名:RENAME TABLE tablename1 TO tablename2 其中数据表 tablename1 必须存在且未打开。视图改名:RENAME VIEW viewname1 TO viewname2 其中数据表 tablename1 必须存在且未打开。修改数据表结构(SQL 命令):ALTER TABLE tablename;ADD 字段名 Type NULL|NOT NULL,字段名 Type NULL|NOT NULL;ALTER COLUMN 字段名 Type NULL|NOT NULL;,字段名 Type NULL|NOT NULL.;DROP 字
8、段名,字段名,.将当前表与另一表之间建立关联:SET RELATION TO 表达式 1 INTO 工作区号 1|表别名 1;,表达式 2 INTO 工作区号 2|表别名 2,.建立关联的两个表必须事先已按关联表达式进行索引排序。在当前表与另一表之间建立一对多关联:SET SKIP TO 表别名 1,表别名 2 消除当前表与另一表之间的关联:SET RELATION OFF INTO 工作区号|表别名 四、数据表中数据操作(查询、插入、删除和修改等)数据查询 SELECT 语句(SQL 命令)格式见教材的有关章节。这是本课程的重点内容,必须很好地掌握。更改数据表中的记录:REPLACE 字段
9、1 WITH 表达式 1ADDITIVE;,WITH ADDITIVE,;FOR 条件 1WHILE 条件 2 其中的 ADDITIVE 子句适用于备注字段,表示将表达式的值加在字段的末尾。用内存数组的值更新数据表中的记录:REPLACE FROM ARRAY 数组名 FIELDS 字段名列表常用子句 用新的值更新表中的记录(SQL 命令):UPDATE databasename!tablename;SET Column_1=Expression1 Column_2=expression2.;WHERE Condition 用一个表中的数据更新当前指定工作区中打开的表:4 UPDATE ON
10、fieldname FROM filename;REPLACE fieldname1 WITH expr1,fieldname2 WITH expr2,.给记录加删除标记(SQL 命令):DELETE FROM databasename!tablename;WHERE 条件 给记录加删除标记:DELETE 范围 FOR 条件 WHILE 条件;IN 工作区号|表别名 永久删除加了删除标记的记录:PACK 永久删除打开的数据库中加了删除标记的记录:PACK DATABASE 去掉删除标记(恢复)RECALL 常用子句 删除一个表中所有记录(保留表的结构):ZAP IN tablename|ali
11、as 为数据表文件追加记录:APPEND BLANKIN 工作区号|别名 从另一个文件中提取数据添加到当前数据表的尾部:APPEND FROM filename|?FIELDS 字段名列表 FOR 条件 其中 filename 所指定的文件可以是数据表、EXCEL 电子表格、文本文件等,如果不是数据表,需要其它子句指定格式(详见手册)。用内存数组的值添加到当前数据表的尾部:APPEND FROM ARRAY arrayname FOR 条件FIELDS 字段名列表 数据中的一行对应一个新记录,一列对应一个字段。从一个文件输入一个 OLE 对象放入一个通用(general)字段:APPEND G
12、ENERAL 通用字段名 FROM filename 如果省略子句 FROM filename,则将指定的字段清空。将一个文本文件的内容拷贝到一个备注字段:APPEND MEMO 备注字段名 FROM filenameOVERWRITE 如果省略子句 FROM filename,则将指定的字段清空。插入新记录(在当前记录之前或后插入):INSERT BLANK BEFORE 如不省略 BLANK,则插入一个空白记录,且不显示输入窗口。在表中插入新记录并赋值(SQL 命令):INSERT INTO tablename(字段 1,字段 2,.)VALUES(eExpression1,eExpres
13、sion2,.)或 INSERT INTO tablename FROM ARRAY ArrayName|FROM MEMVAR 如带有 FROM MEMVAR 子句,则用同名的内存变量给字段赋值。清除当前记录中字段的数据:BLANK 常用子句 移动记录指针:SKIP n IN 工作区号|表别名 5 五、文件管理(文件和文件夹的复制、创建和删除)从当前表复制出表或其它类型的文件(表须打开)COPY TO filename FIELDS 字段名列表 常用子句 其它子句 如果没有指定类型,则复制一个与当前的表相同的数据表。复制表的结构 COPY STRUCTURE TO filename FIEL
14、DS 字段名列表 复制任何文件:COPY FILE 源文件 TO 目的文件 如果用此命令复制表,表须关闭 从磁盘上删除任意文件:(1)ERASE filename|?(2)DELETE FILE filename|?任意文件改名(或文件移动到另一文件夹):RENAME filename1 TO filename2 其中 filename1 和 filename2 都可以包含路径。如二者不在同一文件夹,则将 filename1 移动到 filename2 所在的文件夹。显示一个文件夹中的文件信息:DIR|DIRECTORY ON drive 从磁盘上删除一个文件夹:RD|REDIR 文件夹名 在
15、磁盘上建立一个文件夹:MD|MKDIR 文件夹名 六、数据的复制与传送 单个记录与数组间的数据传送 当前记录 数组或内存变量:SCATTER FIELDS 字段名列表MEMOTO 数组名 BLANK|MEMVAR BLANK 其中BLANK表示建立一个空元素的数组。如果用 MEMVAR 子句,则表示将各字段的值复制到同名同类型的内存变量。如果包含 MEMO 子句,则备注字段一起复制。数组或内存变量 当前记录 GATHER FROM 数组名|MEMVAR FILEDS 字段名列表 MEMO 用同名的内存变量或数组中的第一行置换当前记录,如果数组为多行的二维数组,也只用第一行。成批记录与数组间的数
16、据传送 表 数组:COPY TO ARRAY arrayname 常用子句 6 数组 表:(1)APPEND FROM ARRAY arrayname FOR 条件FIELDS 字段名列表 用内存数组的值加在数据表的尾部,数据中的一行对应一个新记录,一列对应一个字段。(2)REPLACE FROM ARRAY 数组名 常用子句 用内存数组的值更新数据表中符合条件的记录。查询结果 数组:SELECT INTO ARRAY arrayname 将 SQL SELECT 语句的查询结果传给数组 arrayname。这里“SELECT”可为各种形式的 SELECT 查询语句。给内存变量赋值:STORE
17、 表达式 TO 变量名 或 变量名=表达式 七、排序与索引 将当前表排序后建立一个新数据表:SORT TO 文件名 ON 字段名 1 /A|/D;/C 字段名 2 /A|/D/C.;ASCENDING|DESCENDING 常用子句;建立单索引文件:INDEX ON 表达式 TO 单索引文件名;FOR UNIQUE COMPACT;ASCENDINGDESCENDINGADDITIVE 建立复合索引文件:INDEX ON 表达式 TO TAG 索引名 OF 复合索引文件名;FOR 条件 UNIQUE|CANDIDATE;ASCENDINGDESCENDINGADDITIVE 使用索引文件:打开
18、表时将索引文件一并打开,USE 命令带 INDEX 子句:USE tablename|?IN 工作区号INDEX 索引文件名列表|?给当前表打开一个或多个索引文件:SET INDEX TO索引文件名列表|?;ORDER 索引文件名序号|索引文件名|TAG索引名 OF 复合索引文件名;ASCENDINGDESCENDING 指定字符字段在排序或索引时的整理系列:SET COLLATE TO 整理系列 对于汉字字符串,“整理系列”可以是“Machine”、“PinYin”或“Stroke”三者之一(必须带引号),分别表示按机器码、拼音和笔划排序。指定当前表中的控制索引文件或标记:SET ORDER
19、 TO;索引文件名序号|索引文件名|TAG索引名 OF 复合索引文件名;IN 工作区号|表别名;7 ASCENDINGDESCENDING 删除索引 DELETE TAG ALL OF 复合索引文件名 DELETE TAG 索引标识 1 OF 复合索引文件名 1;,索引标识 2 OF 复合索引文件名 2 八、查找和定位 顺序查找当前表中满足条件的第一条记录:LOCATE FOR 条件下范围WHILE 条件 找到后将记录指针定位在满足条件的第一条记录,且函数 FOUND()的返回值为真。在索引表中查找:FIND cExpr 其中 cExpr 为字符串表达式。如果找到,则记录指针定位在满足条件的第
20、一条记录,且函数FOUND()的返回值为真;查找失败时,FOUND()的返回值为假,记录指针定位在文件尾。在索引表中查找:SEEK eExpr;ORDER 索引文件名序号|索引文件名|TAG索引名 OF 复合索引文件名;ASCENDINGDESCENDING;IN 工作区号|表别名 如果找到,则记录指针定位在满足条件的第一条记录,且为真;查找失败时,FOUND()的返回值为假,记录指针定位在文件尾。继续查找:CONTINUE 用 LOCATE、FIND 或 SEEK 查找到一条记录后,用 CONTINUE 继续查找下一条。用以上查找命令 LOCATE、FIND、SEEK 和 CONTINUE
21、的查找结果,都可以通过函数FOUND()的返回值反映出来。九、统计计算 统计表中的记录数:COUNT 范围 FOR 条件 WHILE 条件TO 内存变量名 统计满足条件的记录数,显示记录数或将结果赋给内存变量名。求和:SUM 表达式列表;范围 FOR 条件 WHILE 条件TO 内存变量名|TO ARRAY 数组名 求平均值:AVERAGE 表达式列表;范围 FOR 条件 WHILE 条件TO 内存变量名|TO ARRAY 数组名 对当前表中数值型字段进行分组求和:TOTAL TO tablename ON 字段名常用子句 其中 tablename 为存放结果的表文件名,字段名为确定求和分组的
22、字段。计算:CALCULATE 表达式列表;范围 FOR 条件 WHILE 条件TO 内存变量名|TO ARRAY 数组名 其中表达式列表可以是如下函数的任意组合:8 AVG(nExpr),CNT(),MAX(eExpr),MIN(eExpr),NPV(nExpr1,nExpr2,),STD(nExpr),SUM(nExpr),VAR(nExpr)其中 nExpr 为数值表达式,eExpr 为任意表达式。十、程序控制 条件语句:多分支语句:DO 循环:DO WHILE 条件 LOOP EXIT ENDDO FOR 循环 FOR 循环变量=初值 TO 终值 STEP 步长(中间可插入LOOP或E
23、XIT)ENDFOR|NEXT 扫描循环(对一个表中满足条件的记录进行循环):SCAN 范围 FOR 条件 WHILE 条件(中间可插入LOOP或EXIT)ENDSCAN 集合扫描循环 FOR EACH Var IN Group Commands EXIT LOOP ENDFOR|NEXT Var 十一、其它 定义数组:DECLARE|DIMENSION 数组名(下标 1,下标 2,)定义过程:PROCEDURE 过程名 PARAMETERS 参数表 RETURN TO MASTER|TO 程序名 定义函数:FUNCTION 函数名 PARAMETERS 参数表 RETURN 表达式 调用一个
24、子程序或过程 DO 子程序名|过程名 IN 程序文件名WITH 实在参数表 9 定义公共变量:PUBLIC 变量名列表 PUBLIC ARRAY 数组名 1(行 1,列 1),数组名 2(行 2,列 2),定义私有变量 PRIVATE 变量名列表 PRIVATE ALLLIKE|EXCEPT 通配符 定义局部变量 LOCAL 变量名列表 LOCAL ARRAY 数组名 1(行 1,列 1),数组名 2(行 2,列 2),显示各种信息:LIST (格式见有关手册)DISPLAY (格式见有关手册)输出提示信息:WAIT TO;WINDOWAT,NOWAIT;CLEAR|NOCLEAR;TIMEO
25、UT 各种设置命令:设置是否显示日期中的世纪:SET CENTURY ON|OFF 设置显示的小数位数:SET DECIMALS TO 小数位数 设置是否处理带删除标记的记录:SET DELETED ON|OFF 如果设置为 ON,则不处理带删除标记的记录。设置是否显示命令的结果:SET TALK ON|OFF 设置文件的搜索路径:SET PATH TO 路径 设置传给子程序或自定义函数的参数是按值还是按引用方式传递:SET UDFPARMS TO VALUE|REFERENCE 如设置为 TO VALUE,表示按值传递。执行一个外部命令或程序:RUN 命令或程序 在指定的位置显示或打印:行,列 SAY 在指定的位置显示表达式的值,并等待用户输入,将输入值赋给一变量:行,列 SAY 表达式 GET 变量名 DEFAULT 表达式 READ 例:2,2 say 请输入金额:get nMoney default 50 Read 10 此例先在第 2 行、第 2 列显示请输入金额:,等待用户输入一个数值,将用户输入值赋给变量 nMoney,如果用户不输入数值(直接按回车),则将 50 赋给 nMoney。请注意在下一行不能漏掉“Read”。
限制150内