fox 命令
Visual FoxPro常用命令分類(lèi)表
數(shù)據(jù)庫(kù)文件及記錄命令
ADD TABLE 在當(dāng)前數(shù)據(jù)庫(kù)中添加一個(gè)自由表
APPEND 在表的末尾添加一個(gè)或多個(gè)新記錄
APPEND FROM ARRAY 由數(shù)組添加記錄到表中
APPEND FROM 從一個(gè)文件中讀入記錄,追加到當(dāng)前表的尾部
APPEND GENERAL 從文件中導(dǎo)入OLE對(duì)象并將其放入通用字段中
APPEND MEMO 將文本文件的內(nèi)容復(fù)制到備注字段中
APPEND PROCEDURES 將文本文件中的存儲(chǔ)過(guò)程追加到當(dāng)前數(shù)據(jù)庫(kù)中
AVERAGE 計(jì)算數(shù)值表達(dá)式或字段的算術(shù)平均值
BLANK 清除當(dāng)前記錄中所有字段的數(shù)據(jù)
BROWSE 打開(kāi)瀏覽窗口,顯示當(dāng)前或選定表的記錄
CALCULATE 對(duì)表中的字段或包含字段的表達(dá)式進(jìn)行財(cái)務(wù)和統(tǒng)計(jì)操作
CHANGE 顯示要編輯的字段
CLOSE 關(guān)閉各種類(lèi)型的文件
CLOSE MEMO 關(guān)閉一個(gè)或多個(gè)備注編輯窗口
COMPILE DATABASE 編譯數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程
CONTINUE 繼續(xù)執(zhí)行先前的LOCATE命令
COPY MEMO 復(fù)制當(dāng)前記錄中的指定備注字段的內(nèi)容到文本文件
COPY PROCEDURES 將當(dāng)前數(shù)據(jù)庫(kù)中’的存儲(chǔ)過(guò)程復(fù)制到文本文件
COPY STRUCTURE 用當(dāng)前選擇的表結(jié)構(gòu)創(chuàng)建一個(gè)新的空自由表
COPY STRUCTURE EXTENDED 創(chuàng)建新表,它的字段包含當(dāng)前選定表的結(jié)構(gòu)信息
COPY TO ARRAY 將當(dāng)前選定表中的數(shù)據(jù)復(fù)制到數(shù)組
COPY TO 用當(dāng)前選定表的內(nèi)容創(chuàng)建新文件
COUNT 統(tǒng)計(jì)表中記錄數(shù)目
CREATE 生成一個(gè)新的VisualFoxPro表
CREATE CONNECTION 創(chuàng)建一個(gè)命名連接并把它存儲(chǔ)在當(dāng)前數(shù)據(jù)庫(kù)中
CREATE DATABASE 創(chuàng)建并打開(kāi)一個(gè)數(shù)據(jù)庫(kù)
CREATE TRIGGER 創(chuàng)建表的刪除、插入或更新觸發(fā)器
CREATE VIEW 從VisualFoxPro環(huán)境創(chuàng)建視圖文件
DELETE 給要?jiǎng)h除的記錄做標(biāo)記
DELETE CONNECTION 從當(dāng)前數(shù)據(jù)庫(kù)中刪除一個(gè)命名連接
DELETE DATABASE 從磁盤(pán)上刪除數(shù)據(jù)庫(kù)
DELETE TRIGGER 從當(dāng)前數(shù)據(jù)庫(kù)的表中刪除“刪除”、“插入”或“更新”觸發(fā)器│
DELETE VIEW 從當(dāng)前數(shù)據(jù)庫(kù)中刪除一個(gè)SQL視圖
DISPLAY 在VisualFoxPro主窗口或用戶(hù)自定義窗口中顯示與當(dāng)前表有關(guān)的信息
DISPLAY CONNECTIONS 顯示當(dāng)前數(shù)據(jù)庫(kù)中與命名連接有關(guān)的信息
DISPLAY DATABASE 顯示有關(guān)當(dāng)前數(shù)據(jù)庫(kù)的信息,或當(dāng)前數(shù)據(jù)庫(kù)中的字段、命名連接、表或視圖的信息
DISPLAY MEMORY 顯示內(nèi)存變量和數(shù)組的當(dāng)前內(nèi)容
DISPLAY PROCEDURES 顯示當(dāng)前數(shù)據(jù)庫(kù)中存儲(chǔ)過(guò)程的名稱(chēng)
DISPLAY STRUCTURE 顯示一個(gè)表文件的結(jié)構(gòu)
DISPLAY TABLES 顯示包含在當(dāng)前數(shù)據(jù)庫(kù)中所有的表和表的信息
DISPLAY VIEWS 顯示當(dāng)前數(shù)據(jù)庫(kù)中關(guān)于SQL視圖的信息以及SQL視圖是否基于本地或遠(yuǎn)程表的信息
DROP TABLE 把一個(gè)表從數(shù)據(jù)庫(kù)中移出,并從磁盤(pán)中刪除它
DROP VIEW 從當(dāng)前數(shù)據(jù)庫(kù)中刪除指定的SQL視圖
EDIT 顯示要編輯的字段
FoxPro的命令結(jié)構(gòu)一般由命令動(dòng)詞、語(yǔ)句體和注釋幾部分構(gòu)成。
如:LIST [范圍] [[FIELDS 字段名列表] [FOR 條件][WHILE 條件] [OFF] [TO PRINT]
常用子句
范圍:表示記錄的執(zhí)行范圍,可以是下面幾項(xiàng)其中之一:
ALL 表示全部記錄;
NEXT n 表示從當(dāng)前記錄開(kāi)始的以下n條記錄;
RECORD n 表示第n號(hào)記錄;
REST 表示從當(dāng)前記錄到最后一條記錄。
FIELDS 字段名表:用于指定操作的字段,多個(gè)字段時(shí)用逗號(hào)分隔。
FOR條件:對(duì)滿(mǎn)足條件的記錄進(jìn)行操作。
WHILE 條件:當(dāng)遇到第一個(gè)不滿(mǎn)足條件的記錄時(shí),停止命令執(zhí)行。
以下命令中,大寫(xiě)的英文詞為關(guān)鍵詞,必須原樣照寫(xiě)。
“常用子句”指以下幾個(gè)可選子句:
[范圍] [FIELDS 字段名表] [FOR 條件] [WHILE 條件]
命令中的“列表”,指用“,”分隔的各項(xiàng)。如“字段名列表”就是將各個(gè)字段名用逗號(hào)分隔。
部分英文詞的意義:Databasename 數(shù)據(jù)名 tablename 數(shù)據(jù)表名 filename 文件名 Viewname 視圖名 arrayname 數(shù)組名
提示:加下劃線(xiàn)的為本課程要求掌握的命令。
一、數(shù)據(jù)庫(kù)的建立、打開(kāi)、關(guān)閉和刪除
建立數(shù)據(jù)庫(kù):
CREATE DATABASE [databasename|?]
從磁盤(pán)中刪除數(shù)據(jù)庫(kù):
DELETE DATABASE databasename|?
打開(kāi)數(shù)據(jù)庫(kù):
OPEN DATABASE [EXCLUSIVE|SHARED][NOUPDATE]
打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器(允許用戶(hù)按交互方式編輯當(dāng)前數(shù)據(jù)庫(kù)):
MODIFY DATABASE [databasename|?]
指定的數(shù)據(jù)庫(kù)databasename為當(dāng)前數(shù)據(jù)庫(kù)。
指定當(dāng)前的數(shù)據(jù)庫(kù):
SET DATABASE TO [databasename]
Databasename必須為已經(jīng)打開(kāi)的數(shù)據(jù)庫(kù)。如果省略數(shù)據(jù)庫(kù)名稱(chēng)databasename,則不指定當(dāng)前數(shù)據(jù)庫(kù)(沒(méi)有當(dāng)前數(shù)據(jù)庫(kù))。
關(guān)閉數(shù)據(jù)庫(kù):
CLOSE DATABASE [ALL]
關(guān)閉當(dāng)前數(shù)據(jù)庫(kù),如果帶ALL子句,則關(guān)閉所有打開(kāi)的數(shù)據(jù)庫(kù)。
二、數(shù)據(jù)表和視圖的建立、打開(kāi)、關(guān)閉和刪除
建立數(shù)據(jù)表(SQL命令):
CREATE TABLE | DBF tablename (Col_name1 Type1 [NOT NULL/NULL]
[{,Col_name2 Type2 [NOT NULL/NULL]}...])
table_name是所創(chuàng)建的數(shù)據(jù)表的名字。
Col_name1,Col_name2,...是表中列的名。
Type1, Type2...是相應(yīng)列的數(shù)據(jù)類(lèi)型(VFP的數(shù)據(jù)類(lèi)型見(jiàn)表3-9)。
如果說(shuō)明為NOT NULL,則列中不允許分配空值(這種情況下,列不能包含空值,如果插入空值,將返回錯(cuò)誤信息)。
向當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù)中添加數(shù)據(jù)表:
ADD TABLE tablename|?
從當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)表:
REMOVE TABLE tablename|? [DELETE]
如果包含DELETE子句,將從磁盤(pán)中刪除這個(gè)表文件,否則,只從數(shù)據(jù)庫(kù)中刪除,但文件仍保存在磁盤(pán)中。
在當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù)中建立視圖:
CREATE SQL VIEW viewname AS SELECT ……
其中SELECT ……為SELECT語(yǔ)句。
執(zhí)行這個(gè)語(yǔ)句時(shí),如果沒(méi)有打開(kāi)的數(shù)據(jù)庫(kù),則建立獨(dú)立的視圖,這樣的視圖不能存儲(chǔ)。
從當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù)中刪除視圖:
DELETE VIEW viewname
打開(kāi)一個(gè)表:
USE tablename|?
將當(dāng)前數(shù)據(jù)表與另一數(shù)據(jù)表連接后建立一個(gè)新表:
JOIN WITH 工作區(qū)號(hào)|表別名 TO tablename FOR 條件 [FIELDS 字段名表]
三、數(shù)據(jù)表和表結(jié)構(gòu)的編輯、修改
打開(kāi)瀏覽窗口(可在其中編輯數(shù)據(jù)表):
BROWSW(詳細(xì)格式見(jiàn)P. 114~116)
打開(kāi)并修改數(shù)據(jù)表中的字段:
(1) CHANGE [FIELDS 字段名列表]
(2) EDIT [FIELDS 字段名列表]
這兩個(gè)命令的功能相似,可選子句較多(詳見(jiàn)手冊(cè))。
數(shù)據(jù)表改名:
RENAME TABLE tablename1 TO tablename2
其中數(shù)據(jù)表tablename1必須存在且未打開(kāi)。
視圖改名:
RENAME VIEW viewname1 TO viewname2
其中數(shù)據(jù)表tablename1必須存在且未打開(kāi)。
修改數(shù)據(jù)表結(jié)構(gòu)(SQL命令):
ALTER TABLE tablename ;
ADD 字段名 Type [NULL | NOT NULL]
[,字段名 Type [NULL | NOT NULL] ;
[ALTER COLUMN字段名Type {NULL | NOT NULL}];
[{,字段名Type NULL | NOT NULL}...] ;
[DROP字段名[,字段名[, ...]]
將當(dāng)前表與另一表之間建立關(guān)聯(lián):
SET RELATION TO [表達(dá)式1 INTO 工作區(qū)號(hào)1 | 表別名1];
[, 表達(dá)式2 INTO 工作區(qū)號(hào)2 | 表別名2] [, ...]
建立關(guān)聯(lián)的兩個(gè)表必須事先已按關(guān)聯(lián)表達(dá)式進(jìn)行索引排序。
在當(dāng)前表與另一表之間建立一對(duì)多關(guān)聯(lián):
SET SKIP TO表別名1[, 表別名2]
消除當(dāng)前表與另一表之間的關(guān)聯(lián):
SET RELATION OFF INTO 工作區(qū)號(hào) | 表別名
四、數(shù)據(jù)表中數(shù)據(jù)操作(查詢(xún)、插入、刪除和修改等)
數(shù)據(jù)查詢(xún)SELECT語(yǔ)句(SQL命令)
格式見(jiàn)教材的有關(guān)章節(jié)。這是本課程的重點(diǎn)內(nèi)容,必須很好地掌握。
更改數(shù)據(jù)表中的記錄:
REPLACE 字段1 WITH 表達(dá)式1[ADDITIVE];
[,< [,<字段2> WITH <表達(dá)式2>[ADDITIVE],…];
[FOR 條件1][WHILE條件2]
其中的ADDITIVE子句適用于備注字段,表示將表達(dá)式的值加在字段的末尾。
用內(nèi)存數(shù)組的值更新數(shù)據(jù)表中的記錄:
REPLACE FROM ARRAY數(shù)組名 [FIELDS 字段名列表][常用子句]
用新的值更新表中的記錄(SQL命令):
UPDATE [databasename!]tablename;
SET Column_1=Expression1 [{Column_2=expression2}...] ;
[WHERE Condition]
用一個(gè)表中的數(shù)據(jù)更新當(dāng)前指定工作區(qū)中打開(kāi)的表:
UPDATE ON fieldname FROM filename;
REPLACE fieldname1 WITH expr1
[, fieldname2 WITH expr2 [, ...]]
給記錄加刪除標(biāo)記(SQL命令):
DELETE FROM [databasename!]tablename;
[WHERE 條件]
給記錄加刪除標(biāo)記:
DELETE [范圍] [FOR 條件] [WHILE 條件];
永久刪除加了刪除標(biāo)記的記錄:
PACK
永久刪除打開(kāi)的數(shù)據(jù)庫(kù)中加了刪除標(biāo)記的記錄:
PACK DATABASE
去掉刪除標(biāo)記(恢復(fù))
RECALL [常用子句]
刪除一個(gè)表中所有記錄(保留表的結(jié)構(gòu)):
ZAP
為數(shù)據(jù)表文件追加記錄:
APPEND
從另一個(gè)文件中提取數(shù)據(jù)添加到當(dāng)前數(shù)據(jù)表的尾部:
APPEND FROM filename|? [FIELDS 字段名列表][ FOR 條件]
其中filename所指定的文件可以是數(shù)據(jù)表、EXCEL電子表格、文本文件等,如果不是數(shù)據(jù)表,需要其它子句指定格式(詳見(jiàn)手冊(cè))。
用內(nèi)存數(shù)組的值添加到當(dāng)前數(shù)據(jù)表的尾部:
APPEND FROM ARRAY arrayname [ FOR 條件][FIELDS字段名列表]
數(shù)據(jù)中的一行對(duì)應(yīng)一個(gè)新記錄,一列對(duì)應(yīng)一個(gè)字段。
從一個(gè)文件輸入一個(gè)OLE對(duì)象放入一個(gè)通用(general)字段 :
APPEND GENERAL 通用字段名 [FROM filename]
如果省略子句FROM filename,則將指定的字段清空。
將一個(gè)文本文件的內(nèi)容拷貝到一個(gè)備注字段 :
APPEND MEMO 備注字段名 [FROM filename][OVERWRITE]
如果省略子句FROM filename,則將指定的字段清空。
插入新記錄(在當(dāng)前記錄之前或后插入):
INSERT
如不省略BLANK,則插入一個(gè)空白記錄,且不顯示輸入窗口。
在表中插入新記錄并賦值(SQL命令):
INSERT INTO tablename [(字段1 [, 字段2, ...])]VALUES (eExpression1 [, eExpression2, ...])
或
INSERT INTO tablename FROM ARRAY ArrayName | FROM MEMVAR
如帶有FROM MEMVAR子句,則用同名的內(nèi)存變量給字段賦值。
清除當(dāng)前記錄中字段的數(shù)據(jù):
BLANK [常用子句]
移動(dòng)記錄指針:
SKIP [n]
五、文件管理(文件和文件夾的復(fù)制、創(chuàng)建和刪除)
從當(dāng)前表復(fù)制出表或其它類(lèi)型的文件(表須打開(kāi))
COPY TO filename [FIELDS 字段名列表] [常用子句] [其它子句]
如果沒(méi)有指定類(lèi)型,則復(fù)制一個(gè)與當(dāng)前的表相同的數(shù)據(jù)表。
復(fù)制表的結(jié)構(gòu)
COPY STRUCTURE TO filename [FIELDS字段名列表]
復(fù)制任何文件:
COPY FILE 源文件 TO 目的文件
如果用此命令復(fù)制表,表須關(guān)閉
從磁盤(pán)上刪除任意文件:
(1)ERASE filename|?
(2)DELETE FILE [filename|?]
任意文件改名(或文件移動(dòng)到另一文件夾):
RENAME filename1 TO filename2
其中filename1和filename2都可以包含路徑。如二者不在同一文件夾,則將filename1移動(dòng)到filename2所在的文件夾。
顯示一個(gè)文件夾中的文件信息:
DIR | DIRECTORY [ON drive]
從磁盤(pán)上刪除一個(gè)文件夾:
RD | REDIR 文件夾名
在磁盤(pán)上建立一個(gè)文件夾:
MD | MKDIR文件夾名
六、數(shù)據(jù)的復(fù)制與傳送
單個(gè)記錄與數(shù)組間的數(shù)據(jù)傳送
當(dāng)前記錄 → 數(shù)組或內(nèi)存變量:
SCATTER [FIELDS字段名列表]
TO 數(shù)組名 | MEMVAR
其中表示建立一個(gè)空元素的數(shù)組。如果用MEMVAR子句,則表示將各字段的值復(fù)制到同名同類(lèi)型的內(nèi)存變量。
如果包含MEMO子句,則備注字段一起復(fù)制。
數(shù)組或內(nèi)存變量 → 當(dāng)前記錄
GATHER FROM 數(shù)組名 | MEMVAR [FILEDS字段名列表]
用同名的內(nèi)存變量或數(shù)組中的第一行置換當(dāng)前記錄,如果數(shù)組為多行的二維數(shù)組,也只用第一行。
成批記錄與數(shù)組間的數(shù)據(jù)傳送
表 → 數(shù)組:
COPY TO ARRAY arrayname [常用子句]
數(shù)組 → 表:
(1) APPEND FROM ARRAY arrayname [ FOR 條件][FIELDS字段名列表]
用內(nèi)存數(shù)組的值加在數(shù)據(jù)表的尾部,數(shù)據(jù)中的一行對(duì)應(yīng)一個(gè)新記錄,一列對(duì)應(yīng)一個(gè)字段。
(2) REPLACE FROM ARRAY數(shù)組名 [常用子句]
用內(nèi)存數(shù)組的值更新數(shù)據(jù)表中符合條件的記錄。
查詢(xún)結(jié)果 → 數(shù)組:
SELECT …… INTO ARRAY arrayname
將SQL SELECT語(yǔ)句的查詢(xún)結(jié)果傳給數(shù)組arrayname。這里“SELECT ……”可為各種形式的SELECT查詢(xún)語(yǔ)句。
給內(nèi)存變量賦值:
STORE 表達(dá)式 TO 變量名
或
變量名=表達(dá)式
七、排序與索引
將當(dāng)前表排序后建立一個(gè)新數(shù)據(jù)表:
SORT TO 文件名 ON 字段名1 [/A | /D] ;
[/C] [ 字段名2 [/A | /D] [/C] ...];
[ASCENDING | DESCENDING] [常用子句];