VF常用命令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VF常用命令
2007-09-16 19:42
!命令
功能:执行外部操作命令程序
语法:RUN[/N [K> MS-DOSCommand|ProgramName 或者 ![/N [K>
MS-DOSCommand|ProgramName
$操作符
功能:如果一个字符型表达式包含在另一个字符型表达式中返回真值(.T.),否则返回假值(.F.)
语法:cSearchFor$cScarchIn(如果在cSearchIn中找到了cSearchFor则返回真)
%操作符
功能:返回一个数值型表达式除以另一个数值型表达式所得的余数。
语法:被除数%除数
&操作符
功能:执行宏替换
语法:& VarName(内存变量名或数组元素名)
?|??命令
功能:计算机表达式的值,并输出计算结果。
???命令
功能:把结果直接输出到打印机
A
ADD TABLE 命令
功能:在当前数据库中添加一个自由表
语法:ADD TABLE TableName
ALTER TABLE——SQL 命令
功能:以编程方式修改表的结构
语法:ALTER TABLE TableName1 (表名)
ADD|ALTER [COLUMN]FieleName1 (ADD为添加字段名,后为修改字段名。
ADD改为DROP表示删除字段)
FieldType[(nFieldSidth[,nPrecision])] (字段的类型、宽度和字段精度)
[NULL | NOT NULL] (是否允许字段为空值)
[CHECK 1Expression1 [ERROR cMessageText1> (指定了字段的有效性规则)
[DEFAULT eExpression1] (指定了字段默认值)
[PRIMARY KEY | UNIQUE] (指定了创建主索引标识,索引标识与字段同名)
[REFERENCES TableName2 [TAG TagName1> (指定了与之建立永久关系的父表)
APPEND 命令
功能:在表的末尾添加一个或多个新记录
语法:APPEND [BLANK] (添加一个空记录)
[IN nWorkArea | cTableAlias] (指定要添加新记录的表所在的工作区|要添加新记录的表的别名)
[NOMENU]
APPEND FROM 命令
功能:从一个文件中读入记录,添加到当前表的尾部。
语法:APPEND FROM FileName|? (指定表名)
[FIELDS FiledList] (指定要添加哪些字段数据)
[FOR 1Expression] (把条件为真的记录添加到表中)
(指定要导入的表的结构类型)
[AS nCodePage]
AVERAGE 命令
功能:计算数值表达式或字段的算术平均值。
语法:AVERAGE [ExpressionList] (求平均值的表达式)
[Scope] [FOR 1Expression1] [WHILE 1Expression2] (指定范围或条件)
[TO MemVarList | TO ARRAY ArrayName] (计算结果保存的位置) [NOOPTIMIZE]
B
BLANK 命令
功能:如果发出命令时不带任何参数,则清除当前记录中所有字段的数据。
语法:BLANK
[FIELDS FieldList] (指定要清除的字段)
[Scope] [FOR 1Expression1] [WHILE 1Expression2] (指定范围或条件)
[NOOPTIMIZE]
BROWSE 命令
功能:打开浏览窗口
语法:BROWSE
[FIELDS FieldList] (字段列表)
[FONT cFontName[,nFontSize> (字体名,字号)
[STYLE cFontStyle] (字形,粗体斜体等)
[FOR 1Expression1 [REST> (浏览条件)
C
CALCULATE 命令
功能:对表中的字段或包含字段的表达式进行财务和统计操作
语法:CALCULATE eExpressionList
[Scope] [FOR 1Expression1] [WHILE 1Expression2] (指定范围或条件)
[TO MemVarList | TO ARRAY ArrayName] (计算结果保存的位置) [NOOPTIMIZE]
参数:eExpressionList指定表达式,表达式可包含下列函数的任意组合。
AVG(nExpression),CNT(),MAX(nExpression),MIN(nExpression),NPV(nExpress ion1,nExpression2[,nExpression3]),STD(nExpression),SUM(nExpression),V AR(nExpression).(平均数、记数、最大、最小、利率、标准差、求和、方差)
CD | CHDIR
功能:将VFP的默认目录更改为指定的目录
语法:CD cPath
CHANGE 命令
功能:显示要编辑的字段。
语法:CHANGE
[FIELDS FieldList] (字段列表)
[Scope] [FOR 1Expression1] [WHILE 1Expression2] (指定范围或条件)
[FONT cFontName[,nFontSize> (字体名,字号)
[STYLE cFontStyle] (字形,粗体斜体等)
CLOSE 命令
功能:关闭各种类型的文件
语法:CLOSE
CONTINUE 命令
功能:继续执行先前的LOCATE命令(查找)
COPY FILE 命令
功能:复制任何类型的文件
语法:COPY FILE FileName1 TO FileName2 (1和2都要包含扩展名)
COPY STRUCTURE 命令
功能:用当前选择的表结构创建一个新的空自由表。
语法:COPY STRUCTURE TO FileName (新表名)
[FILEDS FiledList] (字段列表)
COPY STRUCTURE EXTENDED 命令
功能:创建新表,它的字段包含当前选定表的结构信息
语法:COPY STRUCTURE EXTENDED TO FileName (新表名)
[DATABASE Database [NAME LongTableName> (指定新表的数据库。
为新表指定一个长名称)
[FILEDS FiledList] (字段列表)
COPY TO 命令
功能:用当前选定表的内容创建新文件
语法:COPY TO FileName
COUNT 命令
功能:统计表中记录数目
语法:COUNT
[Scope] [FOR 1Expression1] [WHILE 1Expression2] (指定范围或条件)
[TO MemVarName]
CREATE CURSOR——SQL 命令
功能:创建一个临时表
D
DO CASE...ENDCASE 命令
功能:根据不同的条件表达结果执行不同的命令
语法:DO CASE
CASE 1Expression1
commands
[CASE 1Expression2
commands
...
CASE 1ExpressionN
commands]
[OTHERWISE1
commands]
ENDCASE
DO FORM 命令
功能:运行用表单设计器创建的、编译过的表单或表单集
DO WHILE...ENDDO 命令
功能:在一个循环里执行一组命令
语法:DO WHILE 1Expression
Commands
[LOOP]
[EXIT]
ENDDO
DROP TABLE 命令
功能:将一个表从当前的数据库中和磁盘中删除。
E
EDIT 命令
功能:显示要编辑的字段
ERASE 命令
功能:从磁盘上删除文件
ERROR 命令
功能:生成一个VFP错误
EXIT 命令
功能:从DO WHILE、FOR或SCAN循环中退出
EXPORT 命令
功能:把VFP表中的数据复制到其他格式的文件中语法:EXPORT TO FileName
F
FOR...ENDFOR 命令
功能:按指定的次数重复执行一组命令
FOR EAOH...ENDFOR 命令
功能:执行在VFP数组或集合中的每一组命令
FUNCTION 命令
功能:定义一个用户自定义函数
G
GO | GOTO 命令
功能:将记录指针移动到指定的记录上
H
HELP 命令
功能:打开帮助窗口
I
IF...ENDIF 命令
功能:根据逻辑表达式值,有选择地执行一组命令
IMPORT 命令
功能:从外部文件导入数据,创建一个VFP新表语法:IMPORT FROM FileName
INSERT——SQL 命令
功能:在表尾追加一个包含指定字段值的记录
语法:INSERT INTO dbf_name[(fname1[,fname2,...])]
VALUES(eExpression1[,eExpression2,...])
L
LIST 命令
功能:连续显示表或环境信息
语法:LIST
[FIELDS FieldList]
[Scope] [FOR 1Expression1] [WHILE 1Expression2] (指定范围或条件)
[OFF]
[NOCONSOLE]
[NOOPTIMIZE]
[TO PRINTER [PROMPT]|TO FILE FileName]
LOCAL 命令
功能:创建局部内存变量和内存变量数组。
LOCATE 命令
功能:按顺序搜索表从而找到满足指定逻辑表达式的第一个记录
语法:LOCATE FOR 1Expression
M
MD | MKDIR 命令
功能:在磁盘上创建一个新目录
MODIFY COMMAND 命令
功能:打开一个编辑窗口,从中可以修改或创建程序文件。
MODIFY QUERY 命令
功能:打开查询设计器,从中可以修改或创建一个查询
语法:MODIFY QUERY [FileName|?]
[IN SCREEN]
[NOWAIT]
[SAVE]
MODIFY SCREEN 命令
功能:打开表单设计器,从中可以修改或创建一个表单
MODIFY STRUCTURE 命令
功能:打开表设计器,从中可以修改表的结构
O
ON PAGE 命令
功能:指定当报表中打印输出到达一定行数,或发出EJECT PAGE时,将执行的命令
ON SHUTDOWN 命令
功能:指定当试图退出VFP时所要执行的命令
语法:ON SHUTDOWH [Command]
P
PACK 命令
功能:从当前表中永久删除带有删除标记的记录。
PACK DATABASE 命令
功能:从当前数据库中删除标有删除标记的记录。
PUBLIC 命令
功能:定义全局内存变量或数组
Q
QUIT 命令
功能:结束当前VFP工作期,并将控制权返回给操作系统。
R
RD | RMDIR 命令
功能:从磁盘上删除一个目录
READ 命令
功能:激活控制。
RECALL 命令
功能:恢复所选表带有删除标记的记录。
REMOVE 命令
功能:从当前数据库中移去一个表
RENAME 命令
功能:把文件名称更改为一个新名称
RENAME TABLE 命令
功能:重命名当前数据库中的表
REPLACE 命令
功能:更新表的记录内容
语法:REPLACE FieldsName1 WITH eExpression1,...
[Scope] [FOR 1Expression1] [WHILE 1Expression2]
REPLACE FROM 命令
功能:使用内存变量数组中的值更新字段内容
ROLLBACK 命令
功能:取消当前事务期间所做的任何修改
RUN 命令
功能:执行外部操作命令或程序(和!差不多)
S
SCAN...ENDSCAN 命令
功能:在当前选定的表中移动记录指针,并对每一个满足条件的记录执行一组命令。
语法:SCAN [NOOPTIMIZE]
[Scope] [FOR 1Expression1] [WHILE 1Expression2]
[Commands]
[LOOP]
[EXIT]
ENDSCAN
SELECT 命令
功能:激活指定工作区
SELECT——SQL 命令
功能:从一个或多个表中检索数据(查询)
语法:SELECT [ALL | DISTINCT][TOP nExpr [PERCENT>
[Alias.] Select_Item [AS Column_Name]
[,[Alias.] Select_Item [AS Column_Name]...]
FROM [FORCE][DatabaseName!]Table [Local_Alias]
DatabaseName!]Table [Local_Alias][ON JoinCondition...
[PREFERENCE PreferenceName]
[NOCONSOLE]
[PLAIN]
[NOWAIT]
[WHERE JoinCondition [AND JionCondition...]
[AND | OR FilterCondition [AND | OR FilterCondition...>] [GROUP BY GroupColumn [,GroupColumn...>
[HAVING FilterCondition]
[UNION [ALL] SELECTCommand]
[ORDER BY Order_Item [ASC | DESC][,Order_Item [ASC | DESC]...>
参数:SELECT 指定显示查询结果的字段、常数和表达式。
DISTINCT 排除查询结果中所有重复的行,每个SELECT子句只能用一次这个命令。
TOP nExpr [PERCENT] 指定了查询结果中需要的行数或行数的百分比,用户可以在TOP参数中用ORDER BY子句,子句指定了查询结果的排列顺序。
如果设置了PERCENT关键字,则返回的行数为系统最大整数减1个。
而且如果设置了REPCENT关键字,nExpr参数允许值为0.01到99.99。
Alias.限定匹配项的名称。
Select_Item指定的每一项在查询结果中都生成一列。
如果多个项具有相同的名称,则应在这些项名前加上表的别名和一个句点,以防止出现重复的列。
Select_Item指定包括在查询结果中的项。
AS Column_Name指定在查询结果中列的标题。
FROM FROM [FORCE][DatabaseName!Table [Local_Alias]子句,表示该命令将列出所有从中检索数据的表。
FORCE参数指定了在FROM参数中出现的表按一定的顺序强行连接起来。
当包含表的数据库不是当前数据库时,DatabaseName!指定这个数据库的名称。
Local_Alias为Table中的表指定一个临时名称。
如果指定了本地别名,那么在整个SELECT语句中必须都用这个别名代替表名。
本地别名不影响VFP环境。
INNER JOIN指定了查询结果只显示和其他表相匹配的行。
LEFT [OUTER] JOIN指定查询结果包含所有JOIN关键字左边的表相匹配的行,而只显示和JOIN关键字右边的表相匹配的行。
SET CENTURY 命令
功能:决定是否显示日期表达式中的世纪部分。
语法:SET CENTURY ON|OFF|TO [nCentury [ROLLOVER nYear>
SET DATABASE 命令
功能:指定当前数据库。
SET DATASESSION 命令
功能:激活指定的表单数据工作期。
SET DATE 命令
功能:指定日期表达式和日期表达式的显示格式
语法:SET DATE ANSI (ANSI为yy.mm.dd格式)
SET DECIMALS 命令
功能:指定数值表达式中的小数点位数。
SET DEFAULT 命令
功能:指定默认的驱动器、目录或文件夹。
SET EXCLUSIVE 命令
功能:指定VFP在网络上以独占方式还是共享方式打开表文件。
SET FDOW 命令
功能:指定一周中的第一天。
语法:SET FEOW TO [nExpression] (星期日取值为1)
SET FIELDS 命令
功能:指定可以访问表中的哪些字段
语法:SET FIELDS ON|OFF|LOCAL|GLOBAL
SET FILTER TO 命令
功能:指定访问当前表中记录时必须满足的条件。
SET FWEEK TO [nExpression] 命令
功能:指定一年的第一周要满足的条件。
(1:包含1月1日的那一周。
2:第一周的大半以上在当前年中。
3:第一个整周)
SET HEADINGS ON|OFF 命令
功能:指定用TYPE显示文件内容时,是否显示字段的列标头,并指定是否包含文件信息。
SET HELP ON|OFF 命令
功能:激活或废止VFP联机帮助或指定的帮助文件。
SET HURS TO [12|24] 命令
功能:将系统时间设置为12小时或24小时时间格式。
SET MARGIN TO nColumns 命令
功能:设置打印的左页边距,对所有定向到打印机的输出结果都起作用。
SET MARK TO 命令
功能:指定显示日期表达式时所使用的分隔符。
SET PATH TO [Path] 命令
功能:指定查找文件的路径。
SET SAFETY ON|OFF 命令
功能:决定改写已有文件之前是否显示对话框。
SET SECONDS ON|OFF 命令
功能:当显示日期时间值时,指定是否显示时间部分的秒。
SET TALK ON|OFF|WINDOW [WindowName]|NOWINDOW 命令
功能:决定VFP是否显示命令结果。
(ON要。
OFF不。
WINDOW [WindowName]当
按任意键时移去系统信息,[]中指定了接收对话结果的自定义窗口。
NOWINDOW 可以直接送到VFP主窗口)
SKIP 命令
功能:使记录指针在表中向前移动或向后移动。
SORT 命令
功能:对当前选定表进行排序,并将排过序的记录输出到新表中
语法:SERT TO TableName ON FieldName1 [/A|/D] [/C] [,FieldName2 [/A|/D] [/C]...]
[ASCENDING | DESCENDING] (前参数指定将所有不带/D的字段指定为升序排列。
后参数指定将所有不带/A的字段指定为降序排列)
[Scope] [FOR 1Expression1] [WHILE 1Expression2] (指定范围或条件)
[FIELDS FieldNameList] (指定字段)
SUM 命令
功能:对当前选定表的指定数值字段或全部数值字段进行求和。
T
TOTAL 命令
功能:计算当前选表中数值字段的总和。
语法:TOTAL TO TableName ON FieldName (TableName指定存放计算结果的表的名称。
FieldName指定总计时作为分组依据的字段,表必须以该字段排序) [FIELDS FieldNameList] (指定要总计的字段,列表中的字段名用逗号隔开)
[Scope] [FOR 1Expression1] [WHILE 1Expression2] (指定范围或条件)
U
UPDATE——SQL 命令
功能:以新值更新表中的记录。
语法:UPDATE [DatabaseName1!]TableName1 SET Column_Name1=eExpression1 [,Column_Name2=eExpression2...] WHERE FilterCondition [AND|OR FilterCondition2...>
USE 命令
功能:打开一个表及其相关索引文件,或打开一个SQL视图。
Z
ZAP 命令
功能:从表中删除所有记录,只留下表的结构。
VF常用命令及其格式
2007-05-22 11:42
1、打开表命令: USE 表文件名教材P67
2、关闭表命令:USE 、CLOSE ALL P68
3、记录指针定位命令:GO 数值表达式(绝对移动)、SKIP(相对移动) P69-70
4、替换(修改)记录命令:REPLACE 字段1 WITH 表达式1,字段2 WITH 表达式2…… [范围][FOR<条件>] P79
5、复制表命令: COPY TO 新文件名 [FOR〈条件〉][范围] P84
复制表结构命令:COPY STRU TO 新表文件名 [FIEL 〈字段名表〉] P85
6、建立索引命令:INDEX ON 关键字段 TO 单索引文件名
INDEX ON 关键字段 TAG 索引标识名 P89
7、查询命令:(1)条件查询:LOCATE FOR 〈条件〉 P93
继续查找命令:CONTINUE P93
(2)索引查询:FIND 字符表达式 P94
SEEK 表达式 P95
继续查找命令:SKIP P95
8、选择工作区命令: SELE 工作区号|别名 P105
9、建立表之间的关联命令:SET RELATION TO 关联表达式 INTO 别名 P108
10、表的更新命令:参考我的课件第三章第五节关于表的更新部分
UPDATE ON 关键字段 FROM 别名 REPLACE 字段1 WITH 表达式1,字段2 WITH 表达式2 …… [RANDOM]
11、交互式输入命令:
(1)INPUT [提示信息] TO 内存变量 P139
(2)ACCEPT [提示信息] TO 内存变量 P139
13、输出命令:?和?? P141
常用命令:
1、设置默认路径命令: SET DEFA TO 盘符:\路径
2、关闭表命令:CLOSE TABLE,CLEAR ALL
3、记录显示命令:LIST/DISP [范围][FOR 〈条件〉] P72
4、追加记录命令:(1)表尾追加:APPEND [BLANK] P80
(2)表中插入:INSERT [BEFORE] [BLANK] P81
P81 (3)从其他文件中追加多条记录到当前表:APPEND FROM 文件名 [FOR〈条件〉][FIEL <字段名表>]
5、删除记录命令:DELE [范围][FOR<条件>] P82
6、彻底删除带标记记录命令:PACK
7、取消删除标记命令:RECALL [范围][FOR<条件>] P83
8、物理删除表中所有记录命令:ZAP P84
9、复制任何类型文件:COPY FILE 〈文件名1〉TO 〈文件名2〉 P84
10、将单个记录发送到数组:SCATTER TO 〈数组名〉[FIEL〈字段名表〉] P85
11、将数组中的值发送到当前记录命令:GATHER FROM 数组名 P96
12、将表中多条记录传送到数组命令:COPY TO ARRAY 数组名 P86
13、将二维数组中的值传送到表中: APPEND FROM ARRAY 数组名 P87
14、表的排序命令:SORT ON 〈字段1〉/A|/D,字段2/A|/D to 新表文件名 P87
15、打开索引文件命令: SET INDEX TO 索引文件名表 P91
16、设置主控索引命令:SET ORDER TO 单索引文件名 |TAG 索引标识 P91
17、更新索引文件命令:REINDEX P92
18、关闭索引文件:SET INDEX TO 、CLOSE INDEX、CLOSE ALL、CLEAR ALL、USE P92
19、删除索引标识命令:DELE TAG 索引标识名 P92
删除单索引文件命令:DELE FILE 单索引文件名 P92
20、表的浏览命令:BROWSE P73
21、记录的过滤命令:SET FILTER TO 条件 P76
22、字段的过滤命令:SET FIELDSS TO 字段名表 P77
23、表之间的连接命令:JOIN WITH 别名 TO 新表文件名 FOR 条件 P107
24、设置一对多关系命令:SET SKIP TO 别名 P109
25、数据库相关命令:打开:OPEN DATA 数据库名 P111
新建:CREAT DATA 数据库名 P111
修改:MODI DATE 数据库名
关闭:CLOSE DATA、CLOSE DATA ALL、CLOSE ALL、CLEAR ALL
设置当前数据库命令:SET DATA TO 数据库名
26、程序相关命令:建立/修改程序:MODI COMMAND 程序文件名
运行程序:DO 程序文件名
27、内存变量/数组赋值命令:=、STORE P138或P38
28、交互式输入命令:@行,列 SAY 表达式 GET 变量 P139
29、文本输出命令:TEXT
〈输出显示内容〉
ENDTEXT P143
30、终止程序执行命令:CANCEL、QUIT、RETURN P143
31、清除主屏幕命令:CLEAR P143
32、系统设置命令:(1)设置精确比较命令:SET EXACT ON/OFF
(2)设置删除标记命令:SET DELE ON/OFF
---------------------------------------------------------------------
------------------------------------------------------
增补:说明
命令结构
FoxPro的命令结构一般由命令动词、语句体和注释几部分构成。
如:LIST [范围] [[FIELDS 字段名列表] [FOR 条件][WHILE 条件] [OFF] [TO PRINT]
常用子句
范围:表示记录的执行范围,可以是下面几项其中之一:
ALL 表示全部记录;
NEXT n 表示从当前记录开始的以下n条记录;
RECORD n 表示第n号记录;
REST 表示从当前记录到最后一条记录。
FIELDS 字段名表:用于指定操作的字段,多个字段时用逗号分隔。
FOR条件:对满足条件的记录进行操作。
WHILE 条件:当遇到第一个不满足条件的记录时,停止命令执行。
以下命令中,大写的英文词为关键词,必须原样照写。
“常用子句”指以下几个可选子句:
[范围] [FIELDS 字段名表] [FOR 条件] [WHILE 条件]
命令中的“列表”,指用“,”分隔的各项。
如“字段名列表”就是将各个字段名用逗号分隔。
部分英文词的意义:Databasename 数据名 tablename 数据表名filename 文件名 Viewname 视图名 arrayname 数组名
提示:加下划线的为本课程要求掌握的命令。
一、数据库的建立、打开、关闭和删除
建立数据库: CREATE DATABASE [databasename|?]
从磁盘中删除数据库: DELETE DATABASE databasename|?
打开数据库: OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]
打开数据库设计器(允许用户按交互方式编辑当前数据库): MODIFY
DATABASE [databasename|?]
指定的数据库databasename为当前数据库。
指定当前的数据库: SET DATABASE TO [databasename] Databasename 必须为已经打开的数据库。
如果省略数据库名称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, Type2...是相应列的数据类型(VFP的数据类型见表3-9)。
如果说明为NOT NULL,则列中不允许分配空值(这种情况下,列不能包含空值,如果插入空值,将返回错误信息)。
向当前打开的数据库中添加数据表: ADD TABLE tablename|?
从当前打开的数据库中删除数据表:REMOVE TABLE tablename|? [DELETE] 如果包含DELETE子句,将从磁盘中删除这个表文件,否则,只从数据库中删除,但文件仍保存在磁盘中。
在当前打开的数据库中建立视图:CREATE SQL VIEW viewname AS SELECT ……其中SELECT ……为SELECT语句。
执行这个语句时,如果没有打开的数据库,则建立独立的视图,这样的视图不能存储。
从当前打开的数据库中删除视图:DELETE VIEW viewname
打开一个表: USE tablename|? [IN 工作区号]
将当前数据表与另一数据表连接后建立一个新表:JOIN WITH 工作区号|表别名 TO tablename FOR 条件 [FIELDS 字段名表]
三、数据表和表结构的编辑、修改
打开浏览窗口(可在其中编辑数据表):BROWSW(详细格式见P. 114~116)打开并修改数据表中的字段: (1) CHANGE [FIELDS 字段名列
表] (2) EDIT [FIELDS 字段名列表]
这两个命令的功能相似,可选子句较多(详见手册)。
数据表改名: 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字段名[,字段名[, ...]]
将当前表与另一表之间建立关联: 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 [databasename!]tablename;
SET Column_1=Expression1 [{Column_2=expression2}...] [WHERE Condition]
用一个表中的数据更新当前指定工作区中打开的表:
UPDATE ON 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|alias] 为数据表文件追加记录: APPEND [BLANK][IN 工作区号|别名]
从另一个文件中提取数据添加到当前数据表的尾部: APPEND FROM filename|? [FIELDS 字段名列表][ FOR 条件] 其中filename所指定的文件可以是数据表、EXCEL电子表格、文本文件等,如果不是数据表,需要其它子句指定格式(详见手册)。
用内存数组的值添加到当前数据表的尾部: APPEND FROM ARRAY arrayname [ FOR 条件][FIELDS字段名列表] 数据中的一行对应一个新记录,一列对应一个字段。
从一个文件输入一个OLE对象放入一个通用(general)字段: APPEND GENERAL 通用字段名 [FROM filename] 如果省略子句FROM filename,则将指定的字段清空。
将一个文本文件的内容拷贝到一个备注字段:APPEND MEMO 备注字段名[FROM filename] [OVERWRITE] 如果省略子句FROM filename,则将指定的字段清空。
插入新记录(在当前记录之前或后插入):INSERT [BLANK] [BEFORE] 如不省略BLANK,则插入一个空白记录,且不显示输入窗口。
在表中插入新记录并赋值(SQL命令):INSERT INTO tablename [(字段1 [, 字段2, ...])]valueS (eExpression1 [, eExpression2, ...])或INSERT INTO tablename FROM ARRAY ArrayName | FROM MEMVAR如带有FROM MEMVAR子句,则用同名的内存变量给字段赋值。
清除当前记录中字段的数据:BLANK [常用子句]
移动记录指针:SKIP [n] [IN 工作区号|表别名]
五、文件管理(文件和文件夹的复制、创建和删除)
从当前表复制出表或其它类型的文件(表须打开)
COPY TO filename [FIELDS 字段名列表] [常用子句] [其它子句] 如果没有指定类型,则复制一个与当前的表相同的数据表。
复制表的结构COPY STRUCTURE TO filename [FIELDS字段名列表]
复制任何文件:COPY FILE 源文件 TO 目的文件, 如果用此命令复制表,表须关闭
从磁盘上删除任意文件:(1)ERASE filename|? (2)DELETE FILE [filename|?]
任意文件改名(或文件移动到另一文件夹):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子句,则表示将各字段的值复制到同名同类型的内存变量。
如果包含MEMO子句,则备注字段一起复制。
数组或内存变量→当前记录 GATHER FROM 数组名 | MEMVAR [FILEDS字段名列表] [MEMO]
用同名的内存变量或数组中的第一行置换当前记录,如果数组为多行的二维数组,也只用第一行。
成批记录与数组间的数据传送
表→数组: COPY TO ARRAY arrayname [常用子句]
数组→表: (1) APPEND FROM ARRAY arrayname [ FOR 条件][FIELDS 字段名列表] 用内存数组的值加在数据表的尾部,数据中的一行对应一个新记录,一列对应一个字段。
(2) REPLACE FROM ARRAY数组名 [常用子句] 用内存数组的值更新数据表中符合条件的记录。
查询结果→数组:SELECT …… INTO ARRAY arrayname 将SQL SELECT语句的查询结果传给数组arrayname。
这里“SELECT ……”可为各种形式的SELECT查询语句。
给内存变量赋值:STORE 表达式 TO 变量名或变量名=表达式
七、排序与索引
将当前表排序后建立一个新数据表:SORT TO 文件名 ON 字段名1 [/A | /D] [/C] [ 字段名2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING] [常用子句];
建立单索引文件:INDEX ON 表达式 TO 单索引文件名 [FOR<条件>] [UNIQUE] [COMPACT] [ASCENDING][DESCENDING][ADDITIVE] 建立复合索引文件:INDEX ON 表达式 TO TAG 索引名 [OF 复合索引文件名] [FOR 条件] [UNIQUE|CANDIDATE] [ASCENDING][DESCENDING][ADDITIVE]
使用索引文件:打开表时将索引文件一并打开,USE命令带INDEX子句:USE tablename|? [IN 工作区号][INDEX 索引文件名列表|?]
给当前表打开一个或多个索引文件:SET INDEX TO[索引文件名列表|?][ORDER 索引文件名序号|索引文件名|[TAG]索引名 [OF 复合索引文件名] [ASCENDING][DESCENDING]]
指定字符字段在排序或索引时的整理系列:SET COLLATE TO 整理系列, 对于汉字字符串,“整理系列”可以是“Machine”、“PinYin”或“Stroke”三者之一(必须带引号),分别表示按机器码、拼音和笔划排序。
指定当前表中的控制索引文件或标记:SET ORDER TO [索引文件名序号|索引文件名|[TAG]索引名 [OF 复合索引文件名] [IN 工作区号|表别
名][ASCENDING][DESCENDING]
删除索引 DELETE TAG ALL [OF 复合索引文件名]
DELETE TAG 索引标识1 [OF 复合索引文件名1][,索引标识2 [OF 复合索引文件名2]]…
八、查找和定位
顺序查找当前表中满足条件的第一条记录:LOCATE FOR 条件下[范
围][WHILE条件] 找到后将记录指针定位在满足条件的第一条记录,且函数FOUND()的返回值为真。
在索引表中查找:FIND cExpr 其中cExpr为字符串表达式。
如果找到,则记录指针定位在满足条件的第一条记录,且函数FOUND()的返回值为真;查找失败时,FOUND()的返回值为假,记录指针定位在文件尾。
在索引表中查找:SEEK eExpr [ORDER 索引文件名序号|索引文件名
|[TAG]索引名 [OF 复合索引文件名] [ASCENDING][DESCENDING]][IN 工作区号|表别名] 如果找到,则记录指针定位在满足条件的第一条记录,且为真;查找失败时,FOUND()的返回值为假,记录指针定位在文件尾。
继续查找:CONTINUE用LOCATE、 FIND或 SEEK查找到一条记录后,用CONTINUE继续查找下一条。
用以上查找命令LOCATE、 FIND、SEEK和CONTINUE的查找结果,都可以通过函数FOUND()的返回值反映出来。