Visual FOXPRO中的常用命令和函数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、数据表和表结构的编辑、修改
打开浏览窗口(可在其中编辑数据表):BROWSW(详细格式见P. 114~116)
打开并修改数据表中的字段:
(1) CHANGE [FIELDS字段名列表]
(2) EDIT [FIELDS字段名列表]
这两个命令的功能相似,可选子句较多,可了解。
数据表改名:RENAME TABLE tablename1 TO tablename2
为数据表文件追加记录:APPEND [BLANK][IN工作区号|别名]
从另一个文件中提取数据添加到当前数据表的尾部:APPEND FROM filename|? [FIELDS字段名列表][ FOR条件]
其中filename所指定的文件可以是数据表、EXCEL电子表格、文本文件等,如果不是数据表,需要其它子句指定格式(详见手册)。
NEXT n表示从当前记录开始的以下n条记录;
RECORD n表示第n号记录;
REST表示从当前记录到最后一条记录。
FIELDS字段名表:用于指定操作的字段,多个字段时用逗号分隔。
FOR条件:对满足条件的记录进行操作。
WHILE条件:当遇到第一个不满足条件的记录时,停止命令执行。
以下命令中,大写的英文词为关键词,必须原样照写。
将当前表与另一表之间建立关联:SET RELATION TO [表达式1 INTO工作区号1 |表别名1][,表达式2 INTO工作区号2 |表别名2] [, ...]
建立关联的两个表必须事先已按关联表达式进行索引排序。
在当前表与另一表之间建立一对多关联:SET SKIP TO表别名1[,表别名2]
用内存数组的值添加到当前数据表的尾部:APPEND FROM ARRAY arrayname [ FOR条件][FIELDS字段名列表]
数据中的一行对应一个新记录,一列对应一个字段。
从一个文件输入一个OLE对象放入一个通用(general)字段:APPEND GENERAL通用字段名[FROM filename]
如果没有指定类型,则复制一个与当前的表相同的数据表。
复制表的结构:COPY STRUCTURE TO filename [FIELDS字段名列表]
复制任何文件:COPY FILE源文件TO目的文件
如果用此命令复制表,表须关闭
从磁盘上删除任意文件:(1)ERASE filename|?(2)DELETE FILE [filename|?]
执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
从当前打开的数据库中删除视图:DELETE VIEW viewname
打开一个表:USE tablename|? [IN工作区号]
将当前数据表与另一数据表连接后建立一个新表:JOIN WITH工作区号|表别名TO tablename FOR条件[FIELDS字段名表]
用一个表中的数据更新当前指定工作区中打开的表:UPDATE ON fieldname FROM filename REPLACE fieldname1 WITH expr1 [, fieldname2 WITH expr2 [, ...]]
给记录加删除标记(SQL命令):DELETE FROM [databasename!]tablename [WHERE条件]
Visual FOXPRO中的常用命令
命令结构
FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。
如:LIST [范围] [[FIELDS字段名列表] [FOR条件][WHILE条件] [OFF] [TO PRINT]
常用子句
范围:表示记录的执行范围,可以是下面几项其中之一:
ALL表示全部记录;
其中的ADDITIVE子句适用于备注字段,表示将表达式的值加在字段的末尾。
用内存数组的值更新数据表中的记录:REPLACE FROM ARRAY数组名[FIELDS字段名列表][常用子句]
用新的值更新表中的记录(SQL命令):UPDATE [databasename!]tablename SET Column_1=Expression1 [{Column_2=expression2}...][WHERE Condition]
table_name是所创建的数据表的名字。
Col_name1,Col_name2,...是表中列的名。
Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。
如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。
向当前打开的数据库中添加数据表:ADD TABLE tablename|?
任意文件改名(或文件移动到另一文件夹):RENAME filename1 TO filename2
其中filename1和filename2都可以包含路径。如二者不在同一文件夹,则将filename1移动到filename2所在的文件夹。
显示一个文件夹中的文件信息:DIR | DIRECTORY [ON drive]
从磁盘上删除一个文件夹:RD | REDIR文件夹名
在磁盘上建立一个文件夹:MD | MKDIR文件夹名
六、数据的复制与传送
单个记录与数组间的数据传送当前记录→数组或内存变量:SCATTER [FIELDS字段名列表][MEMO]TO数组名[BLANK] | MEMVAR [BLANK]
其中[BLANK]表示建立一个空元素的数组。如果用MEMVAR子句,则表示将各字段的值复制到同名同类型的内存变量。
建立单索引文件:INDEX ON表达式TO单索引文件名[FOR<条件>] [UNIQUE] [COMPACT] [ASCENDING][DESCENDING][ADDITIVE]
建立复合索引文件:INDEX ON表达式TO TAG索引名[OF复合索引文件名] [FOR条件] [UNIQUE|CANDIDATE]
关闭数据库:CLOSE DATABASE [ALL]
关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。
二、数据表和视图的建立、打开、关闭和删除
建立表文件:CREATE表文件名.DBF .FPT
建立数据表(SQL命令):
CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL][{,Col_name2 Type2 [NOT NULL/NULL]}...])
消除当前表与另一表之间的关联:SET RELATION OFF INTO工作区号|表别名
四、数据表中数据操作(查询、插入、删除和修改等)
数据查询SELECT语句(SQL命令)
格式见教材的有关章节。这是本课程的重点内容,必须很好地掌握。
更改数据表中的记录:REPLACE字段1 WITH表达式1[ADDITIVE][,< [,<字段2> WITH <表达式2>[ADDITIVE],…] [FOR条件1][WHILE条件2]
如果包含MEMO子句,则备注字段一起复制。
数组或内存变量→当前记录: GATHER FROM数组名| MEMVAR [FILEDS字段名列表] [MEMO]
用同名的内存变量或数组中的第一行置换当前记录,如果数组为多行的二维数组,也只用第一行。
成批记录与数组间的数据传送
表→数组:COPY TO ARRAY arrayname [常用子句]
arrayname数组名
一、数据库的建立、打开、关闭和删除
建立数据库: CREATE DATABASE [databasename|?] .DBC .DBT
从磁盘中删除数据库: DELETE DATABASE databasename|?
打开数据库:OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]
如带有FROM MEMVAR子句,则用同名的内存变量给字段赋值。
清除当前记录中字段的数据:BLANK [常用子句]
移动记录指针:SKIP [n] [IN工作区号|表别名]
五、文件管理(文件和文件夹的复制、创建和删除)
从当前表复制出表或其它类型的文件(表须打开):COPY TO filename [FIELDS字段名列表] [常用子句] [其它子句]
如不省略BLANK,则插入一个空白记录,且不显示输入窗口。
在表中插入新记录并赋值(SQL命令):INSERT INTO tablename [(字段1 [,字段2, ...])]VALUES (eExpression1 [, eExpression2, ...])
或INSERT INTO tablename FROM ARRAY ArrayName | FROM MEMVAR
给记录加删除标记:DELETE [范围] [FOR条件] [WHILE条件][IN工作区号|表别名]
永久删除加了删除标记的记录:PACK
永久删除打开的数据库中加了删除标记的记录:PACK DATABASE
去掉删除标记(恢复) RECALL [常用子句]
删除一个表中所有记录(保留表的结构):ZAP [IN tablename|alias]
数组→表:(1) APPEND FROM ARRAY arrayname [ FOR条件][FIELDS字段名列表]
用内存数组的值加在数据表的尾部,数据中的一行对应一个新记录,一列对应一个字段。
(2) REPLACE FROM ARRAY数组名[常用子句]
用内存数组的值更新数据表中符合条件的记录。
查询结果→数组:
其中数据表tablename1必须存在且未打开。
视图改名:RENAME VIEW viewname1 TO viewname2
其中数据表tablename1必须存在且未打开。
修改数据表结构:MODIFY STRUCTRUE
修改数据表结构(SQL命令):ALTER TABLE tablename ADD字段名Type [NULL | NOT NULL][,字段名Type [NULL | NOT NULL][ALTER COLUMN字段名Type {NULL | NOT NULL}][{,字段名Type NULL | NOT NULL}...] [DROP字段名[,字段名[, ...]]
SELECT……INTO ARRAY arrayname
将SQL SELECT语句的查询结果传给数组arrayname。这里“SELECT……”可为各种形式的SELECT查询语句。
给内存变量赋值:STORE表达式TO变量名或变量名=表达式
七、排序与索引
将当前表排序后建立一个新数据表:SORT TO文件名ON字段名1 [/A | /D] [/C] [字段名2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING] [常用子句];
打开数据库设计器(允许用户按交互方式编辑当前数据库):MODIFY DATABASE [databasename|?]
指定的数据库databasename为当前数据库。
指定当前的数据库:SET DATABASE TO [databasename]
Databasename必须为已经打开的数据库。如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。
“常用子句”指以下几个可选子句:
[范围] [FIELDS字段名表] [FOR条件] [WHILE条件]
命令中的“列表”,指用“,”分隔的各项。如“字段名列表”就是将各个字段名用逗号分隔。
部分英文词的意义:
Databasename数据名
tablename数据表名
filename文件名
Viewname视图名
如果省略子句FROM filename,则将指定的字段清空。
将一个文本文件的内容拷贝到一个备注字段:APPEND MEMO备注字段名[FROM filename][OVERWRITE]
如果省略子句FROM filename,则将指定的字段清空。
插入新记录(在当前记录之前或后插入):INSERT [BLANK] [BEFORE]
从当前打开的数据库中删除数据表:REMOVE TABLE tablename|? [DELETE]
如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。
在当前打开的数据库中建立视图:CREATE SQL VIEW viewname AS SELECT……
其中SELECTLeabharlann Baidu…为SELECT查询语句。
打开浏览窗口(可在其中编辑数据表):BROWSW(详细格式见P. 114~116)
打开并修改数据表中的字段:
(1) CHANGE [FIELDS字段名列表]
(2) EDIT [FIELDS字段名列表]
这两个命令的功能相似,可选子句较多,可了解。
数据表改名:RENAME TABLE tablename1 TO tablename2
为数据表文件追加记录:APPEND [BLANK][IN工作区号|别名]
从另一个文件中提取数据添加到当前数据表的尾部:APPEND FROM filename|? [FIELDS字段名列表][ FOR条件]
其中filename所指定的文件可以是数据表、EXCEL电子表格、文本文件等,如果不是数据表,需要其它子句指定格式(详见手册)。
NEXT n表示从当前记录开始的以下n条记录;
RECORD n表示第n号记录;
REST表示从当前记录到最后一条记录。
FIELDS字段名表:用于指定操作的字段,多个字段时用逗号分隔。
FOR条件:对满足条件的记录进行操作。
WHILE条件:当遇到第一个不满足条件的记录时,停止命令执行。
以下命令中,大写的英文词为关键词,必须原样照写。
将当前表与另一表之间建立关联:SET RELATION TO [表达式1 INTO工作区号1 |表别名1][,表达式2 INTO工作区号2 |表别名2] [, ...]
建立关联的两个表必须事先已按关联表达式进行索引排序。
在当前表与另一表之间建立一对多关联:SET SKIP TO表别名1[,表别名2]
用内存数组的值添加到当前数据表的尾部:APPEND FROM ARRAY arrayname [ FOR条件][FIELDS字段名列表]
数据中的一行对应一个新记录,一列对应一个字段。
从一个文件输入一个OLE对象放入一个通用(general)字段:APPEND GENERAL通用字段名[FROM filename]
如果没有指定类型,则复制一个与当前的表相同的数据表。
复制表的结构:COPY STRUCTURE TO filename [FIELDS字段名列表]
复制任何文件:COPY FILE源文件TO目的文件
如果用此命令复制表,表须关闭
从磁盘上删除任意文件:(1)ERASE filename|?(2)DELETE FILE [filename|?]
执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
从当前打开的数据库中删除视图:DELETE VIEW viewname
打开一个表:USE tablename|? [IN工作区号]
将当前数据表与另一数据表连接后建立一个新表:JOIN WITH工作区号|表别名TO tablename FOR条件[FIELDS字段名表]
用一个表中的数据更新当前指定工作区中打开的表:UPDATE ON fieldname FROM filename REPLACE fieldname1 WITH expr1 [, fieldname2 WITH expr2 [, ...]]
给记录加删除标记(SQL命令):DELETE FROM [databasename!]tablename [WHERE条件]
Visual FOXPRO中的常用命令
命令结构
FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。
如:LIST [范围] [[FIELDS字段名列表] [FOR条件][WHILE条件] [OFF] [TO PRINT]
常用子句
范围:表示记录的执行范围,可以是下面几项其中之一:
ALL表示全部记录;
其中的ADDITIVE子句适用于备注字段,表示将表达式的值加在字段的末尾。
用内存数组的值更新数据表中的记录:REPLACE FROM ARRAY数组名[FIELDS字段名列表][常用子句]
用新的值更新表中的记录(SQL命令):UPDATE [databasename!]tablename SET Column_1=Expression1 [{Column_2=expression2}...][WHERE Condition]
table_name是所创建的数据表的名字。
Col_name1,Col_name2,...是表中列的名。
Type1, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。
如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。
向当前打开的数据库中添加数据表:ADD TABLE tablename|?
任意文件改名(或文件移动到另一文件夹):RENAME filename1 TO filename2
其中filename1和filename2都可以包含路径。如二者不在同一文件夹,则将filename1移动到filename2所在的文件夹。
显示一个文件夹中的文件信息:DIR | DIRECTORY [ON drive]
从磁盘上删除一个文件夹:RD | REDIR文件夹名
在磁盘上建立一个文件夹:MD | MKDIR文件夹名
六、数据的复制与传送
单个记录与数组间的数据传送当前记录→数组或内存变量:SCATTER [FIELDS字段名列表][MEMO]TO数组名[BLANK] | MEMVAR [BLANK]
其中[BLANK]表示建立一个空元素的数组。如果用MEMVAR子句,则表示将各字段的值复制到同名同类型的内存变量。
建立单索引文件:INDEX ON表达式TO单索引文件名[FOR<条件>] [UNIQUE] [COMPACT] [ASCENDING][DESCENDING][ADDITIVE]
建立复合索引文件:INDEX ON表达式TO TAG索引名[OF复合索引文件名] [FOR条件] [UNIQUE|CANDIDATE]
关闭数据库:CLOSE DATABASE [ALL]
关闭当前数据库,如果带ALL子句,则关闭所有打开的数据库。
二、数据表和视图的建立、打开、关闭和删除
建立表文件:CREATE表文件名.DBF .FPT
建立数据表(SQL命令):
CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL][{,Col_name2 Type2 [NOT NULL/NULL]}...])
消除当前表与另一表之间的关联:SET RELATION OFF INTO工作区号|表别名
四、数据表中数据操作(查询、插入、删除和修改等)
数据查询SELECT语句(SQL命令)
格式见教材的有关章节。这是本课程的重点内容,必须很好地掌握。
更改数据表中的记录:REPLACE字段1 WITH表达式1[ADDITIVE][,< [,<字段2> WITH <表达式2>[ADDITIVE],…] [FOR条件1][WHILE条件2]
如果包含MEMO子句,则备注字段一起复制。
数组或内存变量→当前记录: GATHER FROM数组名| MEMVAR [FILEDS字段名列表] [MEMO]
用同名的内存变量或数组中的第一行置换当前记录,如果数组为多行的二维数组,也只用第一行。
成批记录与数组间的数据传送
表→数组:COPY TO ARRAY arrayname [常用子句]
arrayname数组名
一、数据库的建立、打开、关闭和删除
建立数据库: CREATE DATABASE [databasename|?] .DBC .DBT
从磁盘中删除数据库: DELETE DATABASE databasename|?
打开数据库:OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]
如带有FROM MEMVAR子句,则用同名的内存变量给字段赋值。
清除当前记录中字段的数据:BLANK [常用子句]
移动记录指针:SKIP [n] [IN工作区号|表别名]
五、文件管理(文件和文件夹的复制、创建和删除)
从当前表复制出表或其它类型的文件(表须打开):COPY TO filename [FIELDS字段名列表] [常用子句] [其它子句]
如不省略BLANK,则插入一个空白记录,且不显示输入窗口。
在表中插入新记录并赋值(SQL命令):INSERT INTO tablename [(字段1 [,字段2, ...])]VALUES (eExpression1 [, eExpression2, ...])
或INSERT INTO tablename FROM ARRAY ArrayName | FROM MEMVAR
给记录加删除标记:DELETE [范围] [FOR条件] [WHILE条件][IN工作区号|表别名]
永久删除加了删除标记的记录:PACK
永久删除打开的数据库中加了删除标记的记录:PACK DATABASE
去掉删除标记(恢复) RECALL [常用子句]
删除一个表中所有记录(保留表的结构):ZAP [IN tablename|alias]
数组→表:(1) APPEND FROM ARRAY arrayname [ FOR条件][FIELDS字段名列表]
用内存数组的值加在数据表的尾部,数据中的一行对应一个新记录,一列对应一个字段。
(2) REPLACE FROM ARRAY数组名[常用子句]
用内存数组的值更新数据表中符合条件的记录。
查询结果→数组:
其中数据表tablename1必须存在且未打开。
视图改名:RENAME VIEW viewname1 TO viewname2
其中数据表tablename1必须存在且未打开。
修改数据表结构:MODIFY STRUCTRUE
修改数据表结构(SQL命令):ALTER TABLE tablename ADD字段名Type [NULL | NOT NULL][,字段名Type [NULL | NOT NULL][ALTER COLUMN字段名Type {NULL | NOT NULL}][{,字段名Type NULL | NOT NULL}...] [DROP字段名[,字段名[, ...]]
SELECT……INTO ARRAY arrayname
将SQL SELECT语句的查询结果传给数组arrayname。这里“SELECT……”可为各种形式的SELECT查询语句。
给内存变量赋值:STORE表达式TO变量名或变量名=表达式
七、排序与索引
将当前表排序后建立一个新数据表:SORT TO文件名ON字段名1 [/A | /D] [/C] [字段名2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING] [常用子句];
打开数据库设计器(允许用户按交互方式编辑当前数据库):MODIFY DATABASE [databasename|?]
指定的数据库databasename为当前数据库。
指定当前的数据库:SET DATABASE TO [databasename]
Databasename必须为已经打开的数据库。如果省略数据库名称databasename,则不指定当前数据库(没有当前数据库)。
“常用子句”指以下几个可选子句:
[范围] [FIELDS字段名表] [FOR条件] [WHILE条件]
命令中的“列表”,指用“,”分隔的各项。如“字段名列表”就是将各个字段名用逗号分隔。
部分英文词的意义:
Databasename数据名
tablename数据表名
filename文件名
Viewname视图名
如果省略子句FROM filename,则将指定的字段清空。
将一个文本文件的内容拷贝到一个备注字段:APPEND MEMO备注字段名[FROM filename][OVERWRITE]
如果省略子句FROM filename,则将指定的字段清空。
插入新记录(在当前记录之前或后插入):INSERT [BLANK] [BEFORE]
从当前打开的数据库中删除数据表:REMOVE TABLE tablename|? [DELETE]
如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。
在当前打开的数据库中建立视图:CREATE SQL VIEW viewname AS SELECT……
其中SELECTLeabharlann Baidu…为SELECT查询语句。