⑴ foxpro输入了命令怎么执行
在命令窗口中输入命令,回车后命令即被执行。
⑵ foxpro修改命令怎么写,
首先你的tjh字段的类型必须是字符型才能在前面加上"0",如果不是字符型你说需要用modi stru命令打开表设计修改成字符型。然后用repl命令修改内容:
repl all tjh with "0"+tjh
⑶ visual foxpro提供了几种查看记录的命令
1、use 表
borwse
打开表编辑
2、use 表
list
显示表数据
3、select * from 表
Visual Foxpro中显示记录的两个命令
【命令格式一】LIST [范围] [FIELDS 字段列表] [FOR 条件] [OFF]
【命令功能】滚屏显示记录,无任何选项时,显示所有记录,记录指针指向文件尾。
【命令格式二】DISPLAY [范围] [FIELDS 字段列表] [FOR 条件] [OFF]
【命令功能】分屏显示记录,无任何选项时,只显示当前记录,记录指针不动
⑷ foxpro中的命令
一列全部加上一个‘“收”
repl all 列名 with alltrim(列名)+'收'
并将空格一下全部去掉
repl all 列名 with alltrim(列名)
alltrim()函数的作用是去掉字符串前后的空格.
⑸ foxpro最基本的命令及其使用方法。
? 在下一行显示表达式串
?? 在当前行显示表达式串
@... 将数据按用户设定的格式显示在屏幕上或在打印机上打印
ACCEPT 把一个字符串赋给内存变量
APPEND 给数据库文件追加记录
APPEND FROM 从其它库文件将记录添加到数据库文件中
AVERAGE 计算数值表达式的算术平均值
BROWSE 全屏幕显示和编辑数据库记录
CALL 运行内存中的二进制文件
CANCEL 终止程序执行,返回圆点提示符
CASE 在多重选择语句中,指定一个条件
CHANGE 对数据库中的指定字段和记录进行编辑
CLEAR 清洁屏幕,将光标移动到屏幕左上角
CLEAR ALL 关闭所有打开的文件,释放所有内存变量,选择1号工作区
CLEAR FIELDS 清除用SET FIELDS TO命令建立的字段名表
CLEAR GETS 从全屏幕READ中释放任何当前GET语句的变量
CLEAR MEMORY 清除当前所有内存变量
CLEAR PROGRAM 清除程序缓冲区
CLEAR TYPEAHEAD 清除键盘缓冲区
CLOSE 关闭指定类型文件
CONTINUE 把记录指针指到下一个满足LOCATE命令给定条件的记录,在LOCATE命令后出现。无LOCATE则出错
COPY TO 将使用的数据库文件复制另一个库文件或文本文件
COPY FILE 复制任何类型的文件
COPY STRUCTURE EXTENED TO 当前库文件的结构作为记录,建立一个新的库文件
COPY STRUCTURE TO 将正在使用的库文件的结构复制到目的库文件中
COUNT 计算给定范围内指定记录的个数
CREATE 定义一个新数据库文件结构并将其登记到目录中
CREATE FROM 根据库结构文件建立一个新的库文件
CREATE LABEL 建立并编辑一个标签格式文件
CREATE REPORT 建立宾编辑一个报表格式文件
DELETE 给指定的记录加上删除标记
DELETE FILE 删除一个未打开的文件
DIMENSION 定义内存变量数组
DIR 或 DIRECTORY 列出指定磁盘上的文件目录
DISPLAY 显示一个打开的库文件的记录和字段DISPLAY FILES 查阅磁盘上的文件
DISPLAY HISTORY 查阅执行过的命令
DISPLAY MEMORY 分页显示当前的内存变量
DISPLAY STATUS 显示系统状态和系统参数
DISPLAY STRUCTURE 显示当前书库文件的结构
DO 执行FoxBase程序
DO CASE 程序中多重判断开始的标志
DO WHILE 程序中一个循环开始的标志
EDIT 编辑数据库字段的内容
EJECT 使打印机换页的命令,将PROW()函数和PCOL()函数值置为0
ELSE 在IF...ENDIF结构中提供另一个条件选择路线
ENDCASE 终止多重判断
ENDDO 程序中一个循环体结束的标志
ENDIF 判断体IF...ENDIF结构结束标志
ERASE 从目录中删除指定文件
EXIT 在循环体内执行退出循环的命令
FIND 将记录指针移动到第一个含有与给定字符串一致的索引关键字的记录上
FLUSH 清除所有的磁盘存取缓冲区
GATHER FROM 将数组元素的值赋予数据库的当前记录中
GO/GOTO 将记录指针移动到指定的记录号
HELP 激活帮助菜单,解释FoxBASE+的命令
IF 在IF...ENDIF结构中指定判断条件
INDEX 根据指定的关键词生成索引文件
INPUT 接受键盘键入的一个表达式并赋予指定的内存变量
INSERT 在指定的位置插入一个记录
JOIN 从两个数据库文件中把指定的记录和字段组合成另一个库文件
KEYBOARD 将字符串填入键盘缓冲区
LABEL FROM 用指定的标签格式文件打印标签
LIST 列出数据库文件的记录和字段
LIST FILES 列出磁盘当前目录下的文件
LIST HISTORY 列出执行过的命令
LIST MEMORY 列出当前内存变量及其值
LIST STATUS 列出当前系统状态和系统参数
LIST STRUCTURE 列出当前使用的数据库的库结构
LOAD 将汇编语言程序从磁盘上调入内存 LOCATE 将记录指针移动到对给定条件为真的记录上
LOOP 跳过循环体内LOOP与ENDDO之间的所有语句,返回到循环体首行
MENU TO 激活一组@...PROMPT命令定义的菜单
MODIFY COMMAND 进入FoxBASE+系统的字处理状态,并编辑一个ASCII码文本文件(如果指定文件名以.PRG为后缀,则编辑一个FoxBASE+命令文件)
MODIFY FILE 编辑一个一般的ASCII码文本文件
MODIFY LABEL 建立并编辑一个标签(.LBL)文件
MODIFY REPORT 建立并编辑一个报表格式文件(.FRM)文件
MODIFY STRUCTURE 修改当前使用的库文件结构
NOTE/* 在命令文件(程序)中插入以行注释(本行不被执行)
ON 根据指定条件转移程序执行
OTHERWISE 在多重判断(DO CASE)中指定除给定条件外的其它情况
PACK 彻底删除加有删除标记的记录
PARAMETERS 指定子过程接受主过程传递来的参数所存放的内存变量
PRIVATE 定义内存变量的属性为局部性质
PROCEDURE 一个子过程开始的标志
PUBLIC 定义内存变量为全局性质
QUIT 关闭所有文件并退出FoxBASE+
READ 激活GET语句,并正是接受在GET语句中输入的数据
RECALL 恢复用DELETE加上删除标记的记录
REINDEX 重新建立正在使用的原有索引文件
RELEASE 清楚当前内存变量和汇编语言子程序
RENAME 修改文件名
REPLACE 用指定的数据替换数据库字段中原有的内容
REPORT FORM 显示数据报表
RESTORE FROM 从内存变量文件(.MEM)中恢复内存变量
RESTORE SCREEN 装载原来存储过的屏幕映象
RESUME 使暂停的程序从暂停的断点继续执行
RETRY 从当前执行的子程序返回调用程序,并从原调用行重新执行
RETURN 结束子程序,返回调用程序
RUN/! 在FoxBASE+中执行一个操作系统程序
SAVE TO 把当前内存变量及其值存入指定的磁盘文件(.MEM)
SAVE SCREEN 将当前屏幕显示内容存储在指定的内存变量中
SCATTER 将当前数据库文件中的数据移到指定的数组中
SEEK 将记录指针移到第一个含有与指定表达式相符的索引关键字的记录
SELECT 选择一个工作区来源:考试大-计算机二级 SET 设置FoxBASE+控制参数
SET ALTERNATE ON/OFF 设置传送/不传送输出到一个文件中
SET ALTERNATE TO 建立一个存放输出的文件
SET BELL ON/OFF 设置输入数据时响铃/不响铃
SET CARRY ON/OFF 设置最后一个记录复制/不复制到添加的记录中
SET CENTURY ON/OFF 设置日期型变量要/不要世纪前缀
SET CLEAR ON/OFF 设置屏幕信息能/不能被清除
SET COLOR ON/OFF 设置彩色/单色显示
SET COLOR TO 设置屏幕显示色彩
SET CONFIRM ON/OFF 设置在全屏幕编辑方式中,要求/不要求自动跳到下一个字段
SET CONSOLE ON/OFF 设置将输出传送/不传送到屏幕
SET DATE 设置日期表达式的格式
SET DEBUG ON/OFF 设置传送/不传送ECHO的输出到打印机上
SET DECIMALS TO 设置计算结果需要显示的小数位数
SET DEFAULT TO 设置默认的驱动器
SET DELETED ON/OFF 设置隐藏/显示有删除标记的记录
SET DELIMITER TO 为全屏幕显示字段和变量设置定界符
SET DELIMITER ON/OFF 选择可选的定界符
SET DEVICE TO SCREEN/PRINT 将@...SAY命令的结果传送到屏幕/打印机
SET DOHISTORY ON/OFF 设置存/不存命令文件中的命令到历史记录中
SET ECHO ON/OFF 命令行回送到屏幕或打印机
SET ESCAPE ON/OFF 允许ESCAPE退出/继续命令文件的执行
SET EXACT ON/OFF 在字符串的比较中,要求/不要求准确一致
SET EXACLUSIVE ON/OFF 设置数据库文件的共享
SET FIELDS ON/OFF 设置当前打开的数据库中部分/全部字段为可用
SET FIELDS TO 指定打开的数据库中可被访问的字段
SET FILTER TO 在操作中将数据库中所有不满足给定条件的记录排除
SET FIXED ON/OFF 固定/不固定显示的小数位数
SET FORMAT TO 打开指定的格式文件
SET function..设置F1-F9功能键值
SET HEADING ON/OFF 设置LIST或DISPLAY时,显示/不显示字段名
SET HELP ON/OFF 确定在出现错误时,是否给用户提示
SET HISTORY ON/OFF 决定是/否把命令存储起来以便重新调用
SET HISTORY TO 决定显示历史命令的数目
SET INDEX TO 打开指定的索引文件来源:考试大-计算机 SET INTENSITY ON/OFF 对全屏幕操作实行/不实行反转显示
SET MARGIN TO 设置打印机左页边
SET MEMOWIDTH TO 定义备注型字段输出宽度和REPORT命令隐含宽度
SET MENU ON/OFF 确定在全屏幕操作中是否显示菜单
SET MESSAGE TO 定义菜单中屏幕底行显示的字符串
SET ODOMETER TO 改变TALK命令响应间隔时间
SET ORDER TO 指定索引文件列表中的索引文件
SET PATH TO 为文件检索指定路径
SET PRINT ON/OFF 传送/不传送输出数据到打印机
SET PRINTER TO 把打印的数据输送到另一种设备或一个文件中
SET PROCEDURE TO 打开指定的过程文件
SET RELATION TO 根据一个关键字表达式连接两个数据库文件
SET SAFETY ON/OFF 设置保护,在重写文件时提示用户确认
SET SCOREBORAD ON/OFF 设置是/否在屏幕的第0行上显示FoxBASE+的状态信息
SET STATUS ON/OFF 控制是/否显示状态行
SET STEP ON/OFF 每当执行完一条命令后,暂停/不暂停程序的执行
SET TALK ON/OFF 是否将命令执行的结果传送到屏幕上
SET TYPEAHEAD TO 设置键盘缓冲区的大小
SET UNIQUE ON/OFF 在索引文件中出现相同关键字的第一个/所有记录
SKIP 以当前记录指针为准,前后移动指针
SORT TO 根据数据库文件的一个字段或多个字段产生一个排序的哭文件
STORE 赋值语句
SUM 计算并显示数据库记录的一个表达式在某范围内的和
SUSPEND 暂停(挂起)程序的执行
TEXT...ENDTEXT 在屏幕上当前光标位置显示...的文本数据块
TOTAL TO 对预先已排序的文件产生一个具有总计的摘要文件
TYPE 显示ASCII码文件的内容
UNLOCK 解除当前库文件对记录和文件的加锁操作
UPDATE 允许对一个数据库进行成批修改
USE 带文件名的USE命令打开这个数据库文件。无文件名时,关闭当前操作的数据库文件
WAIT 暂停程序执行,按任意键继续执行
ZAP 删除当前数据库文件的所有记录(不可恢复)来源:考
⑹ 请大家告诉我些foxpro的基本指令
ALL:
命令对表中所有记录起作用,即执行时从首记录到末记录,最记录指针停在数据库的末尾。
NEXT <expN>
命令作用于从当前记录开始到当前记录后<expN>条记录为止的范围内的记录,最后记录指针指向作用范围内的最后一条记录处。NEXT 1表示仅作用于当前记录。
Record <expN>
命令作用于记录号为<expN>的记录。
TEST
命令作用范围从当前记录开始到表的最后一个记录为止
命令中的FOR子句只作用于满足条件的记录。
一、基本命令
1. 打开和关闭数据表
USE [<数据表名>] 当省略选项时为关闭当前数据表
CLOSE ALL 关闭所有数据表
2. 选择当前工作区
SELECT <工作区号|数据表名|0>
功能:选择当前工作区。可以直接选择工作区号,也可通过指定其中已经打开的数据表别名来指定工作区。
SELECT 0 是选择当前未使用的最低编号的工作区
3. 增加记录
APPEND BLANK 在当前表的尾部追加一个空白记录
INSERT BLANK 在当前表的当前记录之后插入一条空白记录
INSERT BLANK BEFORE 在当前表的当前记录之前插入一条空白记录
注意:在表建立索引后,INSERT的功能与APPEND相同
4. 替换字段的值
REPLACE [范围] <字段1> WITH <表达式1>[, <字段2> WITH <表达式2>, ...<字段n> WITH <表达式n>] [FOR <expL>]
功能:计算表达式的值,并填入指定字段,当范围和条件选项省略时只对当前记录操作。
5. 删除记录
DELETE [范围] [FOR 条件]
功能:对记录加删除标记(即逻辑删除),当范围和条件选项省略时只对当前记录操作。
RECALL [范围] [FOR 条件]
功能:对记录去除删除标记(即恢复删除),当范围和条件选项省略时只对当前记录操作。
PACK
功能:删除带有删除标记的记录
ZAP
功能:物理删除当前表所有记录
6. 建立索引与选择主控索引
INDEX ON <关键字表达式> TAG <索引标识符> [DESCENDING]
功能:对当前表按<关键字表达式>建立结构复合索引,索引文件名与表名相同,扩展名默认为CDX。DESCENDING选项为按关键字降序排列,默认为升序。
SET ORDER TO TAG <索引标识符>
功能:在结构复合索引文件打开后,指定主控索引标识符。
7. 记录指针定位
GO BOTTOM | TOP | <expN>
功能:移动记录指针直接指定记录。BOTTOM为指向末记录,TOP为指向首记录,<expN>为指向记录号为<expN>的记录。
SKIP [expN]
功能:按expN的值,从当前位置出发移动记录指针。当expN为正时向尾部方向移动expN条记录,当expN为负时向首部方向移动expN条记录,当expN为1时可以省略。
8. 查找
LOCATE [范围] [FOR 条件]
功能:在数据表的指定范围中搜索满足条件的第一个记录。搜索成功,记录指针指向该记录,并将FOUND()置为.T.;否则,记录指针指数据表末尾,并将FOUND()置为.F.。<范围>缺省为ALL。
CONTINUE
功能:查找下一个满足LOCATE命令指定条件的记录,查找成功,将FOUND()置为.T.并将指针指向满足条件的记录;否则,记录指针指数据表末尾,将FOUND()置为.F.。
9. 数据表复制
COPY TO <文件名> [范围] [FIELDS <字段名表>] [FOR 条件]
功能:把已打开的表内容复制到新的表中。<范围>缺省值为ALL。<字段名表>规定了新表字段,缺省为全部字段。
COPY STRUCTURE TO <文件名> [FIELDS <字段名表>]
功能:把当前表的结构复制到新的表中。不复制记录。<字段名表>规定了新表字段,缺省为全部字段。
10. 统计
COUNT [范围] [FOR 条件] TO <内存变量>
功能:统计表中满足条件的记录个数,并存入指定的内存变量。<范围>缺省时为ALL
SUM [表达式表] [范围] [FOR 条件] TO <内存变量表>
功能:统计表中全部的或指定数值字段的值的和,并各个和存入指定的内存变量,内存就是的个数求和的数值表达式个数相同。<范围>缺省时为ALL
AVERAGE [表达式表] [范围] [FOR 条件] TO <内存变量表>
功能:统计表中全部的或指定数值字段的值的平均,并各个和存入指定的内存变量,内存就是的个数求和的数值表达式个数相同。<范围>缺省时为ALL
二、函数
1. 数学函数
ABS(expN)
功能:求数值表达式的绝对值。
INT(expN)
功能:对数值表达式expN取整数部分
ROUND(expN, Dec)
功能:对数值表达式expN精确到小数点后Dec位。
2. 字符函数
SUBSTR(expC, expN1, expN2)
功能:取字符串expC中从expN1开始的expN2个字符,若expN2省略,则从expN1开始一直取到最后。
TRIM(expC)
功能:取掉字符串expC的尾部空格。
ALLTRIM(expC)
功能:取掉字符串expC首尾的空格。
SPACE(expN)
功能:产生expN个空格。
UPPER(expC)
功能:将字符串expC转换成大写。
LOWER(expC)
功能:将字符串expC转换成大写。
expC1 $ expC2
功能:判断字符串expC1是否在expC2中出现,若出现则值为.T.,否则为.F.。
3. 日期函数
DATE()
功能:获取系统日期。
4. 类型转换
VAL(expC)
功能:将数字字符值转换成数值,如:VAL('123.45')的值为数值123.45
STR(expN [, 宽度 [, 小数位数]])
功能:将数值转换成字符串,当小数位数省略时不带小数,当宽度和小数位数都省略时宽度为10不带小数。
DTOC(expD)
功能:将日期表达式expD转换成字符表达式,格式与系统日期格式一致。
DTOS(expD)
功能:将日期表达式expD转换成字符表达式,格式为YYYYMMDD,前4位为年份中间2位为月份最后2位为日。
CTOD(expC)
功能:将符合当前系统日期格式的字符串转换成日期值。
5. 测试函数
FOUND()
功能:测试当前的查找(SEEK, LOCATE, CONTINUE)是否成功。查找成功函值为.T.否则为.F.。
EOF()
功能:测试当前记录指针是否到了数据表的末尾。当在末尾时函数为.T.否则为.F.。
RECNO()
功能:返回当前记录号。
⑺ Visual Foxpro 6.0的一些命令
建立表结构:create
修改表结构:modify structure
显示表结构:Display structure in 表名
打开表:Use 表名
关闭表:use in 表名
追加记录:append
记录定位:locate for
记录插入:insert
记录修改:update
显示记录:display / list / brow
删除记录:delete for
1.显示库文件结构命令:
Display structure
2.用LIST 命令显示第3-5这3个记录:
go 3
list next 3
3.用DLST 命令显示所以记录
display all
4.显示第4个记录
list record 4
5.显示职工工资大于220元的人的记录
list all for 职工工资>220
6.删除姓名为“刘刚”的记录,先进行逻辑删除,观察显示结果。再进行物理删除,观察结果。
delete all for allt(姓名)=="刘刚"
pack
7.在第四个记录之后插入一个记录!
go 4
insert
8.显示最后三条记录的姓名、职务、奖金,不显示记录号。
go recc() - 2
display 姓名,职务,奖金 rest off
1.显示姓李的职工的姓名和职称
display 姓名,职称 all for left(姓名,2) = "李"
2.显示年龄在20到35岁之间的男职工
display all for 年龄>=20 and 年龄<=35 and 性别 = "男"
3.显示在76年7月1日以后的工作的职工
display all for 参加工作时间 >= ctod("1976-07-01")
4.显示职工为工人,已婚的职工
display all for 职工="工人" and 婚否="已婚"
5.显示职工号在86005与86009之间的女职工
display all for 工号>=86005 and 工号<=86009 and 性别="女"
6.将所有的未婚职工的名单打印出来。
display all for 婚否="未婚" to printer
⑻ visual foxpro 创建表的命令
create form是创建表单(窗口)命令
create table是创数据库的表,但是后面要跟参数,加上相应表的字段名字、类型与长度
create命令是创建表命令
⑼ visual foxpro查看命令
在VF中,你每操作一次,一般会相应在命令窗口自动生成一个相应的命令,你可以查看命令窗口。如果VF窗口中没有出现命令窗口,你可以选择菜单“窗口”/“命令窗口”就能看到了。
⑽ 谁能列表告诉我Visual FoxPro的一些常用命令
Visual FoxPro常用命令分类表
数据库文件及记录命令
ADD TABLE 在当前数据库中添加一个自由表
APPEND 在表的末尾添加一个或多个新记录
APPEND FROM ARRAY 由数组添加记录到表中
APPEND FROM 从一个文件中读入记录,追加到当前表的尾部
APPEND GENERAL 从文件中导入OLE对象并将其放入通用字段中
APPEND MEMO 将文本文件的内容复制到备注字段中
APPEND PROCEDURES 将文本文件中的存储过程追加到当前数据库中
AVERAGE 计算数值表达式或字段的算术平均值
BLANK 清除当前记录中所有字段的数据
BROWSE 打开浏览窗口,显示当前或选定表的记录
CALCULATE 对表中的字段或包含字段的表达式进行财务和统计操作
CHANGE 显示要编辑的字段
CLOSE 关闭各种类型的文件
CLOSE MEMO 关闭一个或多个备注编辑窗口
COMPILE DATABASE 编译数据库中的存储过程
CONTINUE 继续执行先前的LOCATE命令
COPY MEMO 复制当前记录中的指定备注字段的内容到文本文件
COPY PROCEDURES 将当前数据库中’的存储过程复制到文本文件
COPY STRUCTURE 用当前选择的表结构创建一个新的空自由表
COPY STRUCTURE EXTENDED 创建新表,它的字段包含当前选定表的结构信息
COPY TO ARRAY 将当前选定表中的数据复制到数组
COPY TO 用当前选定表的内容创建新文件
COUNT 统计表中记录数目
CREATE 生成一个新的VisualFoxPro表
CREATE CONNECTION 创建一个命名连接并把它存储在当前数据库中
CREATE DATABASE 创建并打开一个数据库
CREATE TRIGGER 创建表的删除、插入或更新触发器
CREATE VIEW 从VisualFoxPro环境创建视图文件
DELETE 给要删除的记录做标记
DELETE CONNECTION 从当前数据库中删除一个命名连接
DELETE DATABASE 从磁盘上删除数据库
DELETE TRIGGER 从当前数据库的表中删除“删除”、“插入”或“更新”触发器│
DELETE VIEW 从当前数据库中删除一个SQL视图
DISPLAY 在VisualFoxPro主窗口或用户自定义窗口中显示与当前表有关的信息
DISPLAY CONNECTIONS 显示当前数据库中与命名连接有关的信息
DISPLAY DATABASE 显示有关当前数据库的信息,或当前数据库中的字段、命名连接、表或视图的信息
DISPLAY MEMORY 显示内存变量和数组的当前内容
DISPLAY PROCEDURES 显示当前数据库中存储过程的名称
DISPLAY STRUCTURE 显示一个表文件的结构
DISPLAY TABLES 显示包含在当前数据库中所有的表和表的信息
DISPLAY VIEWS 显示当前数据库中关于SQL视图的信息以及SQL视图是否基于本地或远程表的信息
DROP TABLE 把一个表从数据库中移出,并从磁盘中删除它
DROP VIEW 从当前数据库中删除指定的SQL视图
EDIT 显示要编辑的字段
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()的返回值反映出来。
九、统计计算
统计表中的记录数:
COUNT [范围] [FOR 条件] [WHILE 条件][TO内存变量名]
统计满足条件的记录数,显示记录数或将结果赋给内存变量名。
求和:
SUM [表达式列表];
[范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]
求平均值:
AVERAGE [表达式列表];
[范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]
对当前表中数值型字段进行分组求和:
TOTAL TO tablename ON 字段名[常用子句]
其中tablename为存放结果的表文件名,字段名为确定求和分组的字段。
计算:
CALCULATE 表达式列表;
[范围] [FOR 条件] [WHILE 条件][TO内存变量名|TO ARRAY 数组名]
其中表达式列表可以是如下函数的任意组合:
AVG(nExpr), CNT(), MAX(eExpr), MIN(eExpr), NPV(nExpr1, nExpr2,…),
STD(nExpr),SUM(nExpr),VAR(nExpr)
其中nExpr为数值表达式,eExpr为任意表达式。
十、程序控制
条件语句:
IF 条件 [THEN]
……
[ELSE]
[……]
ENDIF
多分支语句:
DO CASE
CASE 逻辑表达式1
……
CASE 逻辑表达式2
……
CASE 逻辑表达式n
……
[OTHERWISE]
……
ENDCASE
DO循环:
DO WHILE 条件
[LOOP]
……
[EXIT]
……
ENDDO
FOR循环
FOR 循环变量=初值 TO 终值 STEP 步长
……(中间可插入[LOOP]或[EXIT])
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 表达式
调用一个子程序或过程
DO 子程序名 | 过程名 [IN 程序文件名][WITH 实在参数表]
定义公共变量:
PUBLIC 变量名列表
PUBLIC [ARRAY] 数组名1(行1,列1)[, 数组名2(行2,列2) [,…]]
定义私有变量
PRIVATE变量名列表
PRIVATE ALL[LIKE | EXCEPT 通配符]
定义局部变量
LOCAL 变量名列表
LOCAL [ARRAY] 数组名1(行1,列1)[, 数组名2(行2,列2) [,…]]
显示各种信息:
LIST … (格式见有关手册)
DISPLAY … (格式见有关手册)
输出提示信息:
WAIT [<提示信息>] [TO <内存变量>];
[WINDOW[AT[<行>,< 列>] [NOWAIT]];
[CLEAR|NOCLEAR];
[TIMEOUT<数值表达式>]
各种设置命令:
设置是否显示日期中的世纪:
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
此例先在第2行、第2列显示"请输入金额: ",等待用户输入一个数值,将用户输入值赋给变量nMoney,如果用户不输入数值(直接按回车),则将50赋给nMoney。请注意在下一行不能漏掉“Read”。