VFP中常用命令一、数据库的建立、打开、关闭和删除建立数据库:CREATE DATABASE [database name|?]从磁盘中删除数据库:CREATE DATABASE [database name|?]ELETE DATABASE database nameDELETE DATABASE database name |?打开数据库:OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]打开数据库设计器(允许用户按交互方式编辑当前数据库):MODIFY DATABASE [database name|?]指定的数据库database name为当前数据库。
指定当前的数据库:SET DATABASE TO [database name]Database name必须为已经打开的数据库。
如果省略数据库名称database name则不指定当前数据库(没有当前数据库)。
关闭数据库:CLOSE DATABASE [ALL]关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。
二、数据表和视图的建立、打开、关闭和删除建立数据表(SQL命令):CREATE TABLE | DBF table name (Col_ name1 Type1 [NOT NULL/NULL][{,Col _n ame2 Type2 [NOT NULL/NULL]}...] ) table_ name是所创建的数据表的名字。
Col_name1,Col_name2,...是表中列的名。
Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。
如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。
向当前打开的数据库中添加数据表:ADD TABLE table name|?从当前打开的数据库中删除数据表:REMOVE TABLE table name|? [DELETE]如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。
在当前打开的数据库中建立视图:CREATE SQL VIEW view name AS SELECT ……其中SELECT……为SELECT语句。
执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
从当前打开的数据库中删除视图:DELETE VIEW view name打开一个表:USE tablename|? [IN 工作区号]将当前数据表与另一数据表连接后建立一个新表:JOIN WITH 工作区号|表别名TO table name FOR 条件[FIELDS 字段名表]三、数据表和表结构的编辑、修改打开浏览窗口(可在其中编辑数据表):BROWSW (详细格式见P. 114~116)打开并修改数据表中的字段:(1) CHANGE [FIELDS 字段名列表]⑵EDIT [FIELDS 字段名列表]这两个命令的功能相似,可选子句较多(详见手册)。
数据表改名:RENAME TABLE table name1 TO table name2其中数据表tablename1必须存在且未打开。
视图改名:RENAME VIEW view name1 TO view name2其中数据表tablename1必须存在且未打开。
修改数据表结构(SQL命令):ALTER TABLE table name ;ADD 字段名Type [NULL | NOT NULL][,字段名Type [NULL | NOT NULL];[ALTER COLUMN 字段名Type {NULL | NOT NULL}];[{,字段名Type NULL | NOT NULL}...];[DROP字段名[,字段名[,...]]将当前表与另一表之间建立关联:SET RELATION TO [ 表达式1 INTO 工作区号1 |表别名1];[,表达式2 INTO 工作区号2 |表别名2][,…]建立关联的两个表必须事先已按关联表达式进行索引排序。
在当前表与另一表之间建立一对多关联:SET SKIP TO 表别名1[,表别名2]消除当前表与另一表之间的关联:SET RELATION OFF INTO 工作区号|表别名四、数据表中数据操作(查询、插入、删除和修改等)数据查询SELECT语句(SQL命令)格式见教材的有关章节。
这是本课程的重点内容,必须很好地掌握。
更改数据表中的记录:REPLACE 字段1 WITH 表达式1[ADDITIVE];[,< [,< 字段2> WITH < 表达式2>[ADDITIVE], …];[FOR 条件1][WHILE 条件2]其中的ADDITIVE子句适用于备注字段,表示将表达式的值加在字段的末尾。
用内存数组的值更新数据表中的记录:REPLACE FROM ARRAY 数组名[FIELDS 字段名列表][常用子句]用新的值更新表中的记录(SQL命令):UPDATE [database name!]table name;SET Column _1=Expressi on1 [{Colu mn_ 2=expressio n2}...];[WHERE Co nditio n]用一个表中的数据更新当前指定工作区中打开的表:UPDATE ON field name FROM file name;REPLACE field name1 WITH expr1[,field name2 WITH expr2 [,...]]给记录加删除标记(SQL命令):DELETE FROM [database name!]table name;[WHERE 条件]给记录加删除标记:DELETE [范围][FOR 条件][WHILE 条件];[IN工作区号|表别名]永久删除加了删除标记的记录:PACK永久删除打开的数据库中加了删除标记的记录:PACK DATABASE去掉删除标记(恢复)RECALL [常用子句]删除一个表中所有记录(保留表的结构):ZAP [IN table name|alias]为数据表文件追加记录:APPEND [BLANK][IN 工作区号|别名]从另一个文件中提取数据添加到当前数据表的尾部:APPEND FROM filename|? [FIELDS 字段名列表][FOR 条件]其中file name所指定的文件可以是数据表、EXCEL电子表格、文本文件等,如果不是数据表,需要其它子句指定格式(详见手册)。
用内存数组的值添加到当前数据表的尾部:APPEND FROM ARRAY array name [ FOR 条件][FIELDS 字段名列表]数据中的一行对应一个新记录,一列对应一个字段。
从一个文件输入一个OLE对象放入一个通用(general)字段:APPEND GENERAL 通用字段名[FROM file name]如果省略子句FROM file name,则将指定的字段清空。
将一个文本文件的内容拷贝到一个备注字段:APPEND MEMO 备注字段名[FROM file name][OVERWRITE]如果省略子句FROM file name,则将指定的字段清空。
插入新记录(在当前记录之前或后插入):INSERT [BLANK] [BEFORE]如不省略BLANK,则插入一个空白记录,且不显示输入窗口。
在表中插入新记录并赋值(SQL命令):INSERT INTO table name [(字段1 [,字段2, ...] )]V ALUES (eExpressio n1 [, eExpressio n2,...])或INSERT INTO table name FROM ARRAY ArrayName | FROM MEMV AR如带有FROM MEMV AR子句,则用同名的内存变量给字段赋值。
清除当前记录中字段的数据:BLANK [常用子句]移动记录指针:SKIP [n] [IN 工作区号|表别名]五、文件管理(文件和文件夹的复制、创建和删除)从当前表复制出表或其它类型的文件(表须打开)COPY TO file name [FIELDS 字段名列表][常用子句][其它子句]如果没有指定类型,则复制一个与当前的表相同的数据表。
复制表的结构COPY STRUCTURE TO file name [FIELDS 字段名列表]复制任何文件:COPY FILE 源文件TO目的文件如果用此命令复制表,表须关闭从磁盘上删除任意文件:(1)ERASE filename|?(2)DELETE FILE [filename|?]任意文件改名(或文件移动到另一文件夹):RENAME file name1 TO file name2其中filename1和filename2都可以包含路径。
如二者不在同一文件夹,则将filename1移动到filename2所在的文件夹。
显示一个文件夹中的文件信息:DIR | DIRECTORY [ON drive]从磁盘上删除一个文件夹:RD | REDIR 文件夹名在磁盘上建立一个文件夹:MD | MKDIR 文件夹名六、数据的复制与传送单个记录与数组间的数据传送当前记录T数组或内存变量:SCATTER [FIELDS 字段名列表][MEMO]TO 数组名[BLANK] | MEMV AR [BLANK] 其中[BLANK]表示建立一个空元素的数组。
如果用MEMVAR子句,则表示将各字段的值复制到同名同类型的内存变量。
如果包含MEMO子句,则备注字段一起复制。
数组或内存变量T当前记录GATHER FROM 数组名| MEMV AR [FILEDS 字段名列表][MEMO]用同名的内存变量或数组中的第一行置换当前记录,如果数组为多行的二维数组,也只用第一行。
成批记录与数组间的数据传送表f数组:COPY TO ARRAY array name [ 常用子句]数组f表:(1) APPEND FROM ARRAY array name [ FOR 条件][FIELDS 字段名列表]用内存数组的值加在数据表的尾部,数据中的一行对应一个新记录,一列对应一个字段。
(2) REPLACE FROM ARRAY 数组名[常用子句]用内存数组的值更新数据表中符合条件的记录。
查询结果f数组:SELECT ……INTO ARRAY array name将SQL SELECT语句的查询结果传给数组arrayname。
这里“ SELECT……”可为各种形式的SELECT查询语句。