版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第2章自由表的基本操作
2,工VisualFoxPro的語言基砒1
2.2自由表的建立與修改
2.3自由表的維護(hù)
本章要點
I錄】■1?OK?火
2.1VisualFoxPro的語言基礎(chǔ)
2.1.1數(shù)據(jù)類型
數(shù)據(jù)類型一旦被定義,就確定了其存儲方式和使用方式。
1.字符型
字符型數(shù)據(jù)描述不具有計算能力的文字?jǐn)?shù)據(jù)類型。
字符型數(shù)據(jù)(Character)是由漢字和英文字符、數(shù)字字符、空格及
其他專用字符,使用時必須用定界符雙引號(""),單引號('')或中
括號([])括起來。這里的單引號、雙引號或方括號都是西文的標(biāo)點
符號,稱為定界符。
2.數(shù)值型
數(shù)值型數(shù)據(jù)用來表示一個數(shù)量的大小,數(shù)值型數(shù)據(jù)通??杉?xì)分為數(shù)值型,
浮點型,雙精度型,整型和貨幣型五種類型。
浮點型數(shù)據(jù)(Float)是數(shù)值型數(shù)據(jù)的一種,與數(shù)值型數(shù)據(jù)完全等價。浮點型數(shù)
據(jù)只是在存儲形式上采取浮點格式。
雙精度型數(shù)據(jù)(Double)是更高精度的數(shù)值型數(shù)據(jù)。它只用于數(shù)據(jù)表中的字段
類型的定義,并采用固定長度浮點格式存儲。
整型數(shù)據(jù)(Integer)是不包含小數(shù)點部分的數(shù)值型數(shù)據(jù)。它只用于數(shù)據(jù)表
中的字段類型的定義。整型數(shù)據(jù)以二進(jìn)制形式存儲。
貨幣型(Currency)數(shù)據(jù)用來表示貨幣值,其書寫格式與數(shù)值型數(shù)據(jù)類似,
但要加上一個前置的符號($)。貨幣數(shù)據(jù)在存儲和計算時,采用4位小數(shù)。
3.日期型
日期型數(shù)據(jù)(Date)是用于表示日期的數(shù)據(jù),用默認(rèn)格式{mm/dd/yyyy}來
表示。其中mm代表月,dd代表日,yyyy代表年,存儲長度固定為8位。
4.日期時間型
日期時間型數(shù)據(jù)(DateTime)是描述日期和時間的數(shù)據(jù),其默認(rèn)格式為
{mm/dd/yyyyhh:mm:ss}o
其中yyyy代表年,前兩個mm代表月,dd代表日,hh代表小時,,后兩個mm
代表分鐘,ss代表秒,存儲長度固定為8位。
5.邏輯型
邏輯型數(shù)據(jù)(Logic)是描述客觀事物真假的數(shù)據(jù),用于表示邏輯判斷結(jié)果
。邏輯型數(shù)據(jù)只有真(.工)和假(.F.)兩個值,存儲長度固定為1位。
6.備注型
備注型數(shù)套(Memo)用于存放較長的字符型數(shù)據(jù)類型,可以把它看成是字
符型數(shù)據(jù)的特殊形式。
7.通用型
通用型數(shù)據(jù)(General)是用于存儲OLE對象的數(shù)據(jù)。通用型數(shù)據(jù)中的
OLE對象可以是電子表格、文檔、圖片等。它只用于數(shù)據(jù)表中的字段類
型的定義。
2.1.2數(shù)據(jù)存儲
數(shù)據(jù)輸入、輸出是通過數(shù)據(jù)的存儲設(shè)備完成的。
數(shù)據(jù)可以存入到字段、記錄和對象中。我們把這些
供數(shù)據(jù)存儲的常量、變量、數(shù)組、字段、記錄和對
象稱為數(shù)據(jù)存儲容器。常量、內(nèi)存變量、函數(shù)以及
表達(dá)式的類型包括字符型、數(shù)值型、貨幣型、邏輯
型、日期型和日期時間型等6種。
1.常量
在數(shù)據(jù)處理過程中其值不發(fā)生變化的量叫常量。
(1)數(shù)值型常量
數(shù)值型常量也就是常數(shù),用來表示一個數(shù)量的大小,由數(shù)字0~9、小數(shù)點和正負(fù)號構(gòu)
成。例如:112、3.145、-6.22o
(2)貨幣型常量
貨幣型常量用來表示貨幣值,其書寫格式與數(shù)值型常量類似,但要加上一個前置的符
號($)。例如,常量$123.456789。
(3)字符型常量
字符型常量也稱為字符串,許多常量都有定界符。
注意,不包含任何字符的字符串("")叫空串。空串與包含空格的字符串("")不同。
(4)日期型常量
日期型常量的定界符是一對花括號。
①傳統(tǒng)的日期格式
系統(tǒng)默認(rèn)的日期型數(shù)據(jù)為美國日期格式“mm/dd/yy"(月/日/年),如{09/01/03}
、{09/01/2003}等。
語句SETDATETOymd把日期設(shè)置成(年/月/日)格式,命令SETCENTURYon
把年份設(shè)置成4位數(shù)字格式。
②嚴(yán)格的日期格式
嚴(yán)格的日期格式為《人yyyy-mm-dd},它不受SETDATE等語句設(shè)置的影響。
嚴(yán)格的日期格式可以在任何情況下使用,而傳統(tǒng)的日期格式只能在執(zhí)行如下命令:
SETSTRICTDATETO0
后才可以使用。
SETSTRICTDATETO1
把系統(tǒng)設(shè)置為嚴(yán)格的日期格式。另外,命令SETMARKTO是設(shè)定日期分隔符。
(5)日期時間型常量
日期時間型常量包括日期和時間兩部分內(nèi)容:{〈日期〉,〈時間>}。
v日期〉部分與日期型常量相似,也有傳統(tǒng)的和嚴(yán)格的兩種格式。v
時間》部分的格式為:[hh]:mm[:ss]][a|p]]o
SETMARKTO
?{人200309-0111:10:10},{人2003-09-0115:10:10)
(6)邏輯型常量
邏輯型數(shù)據(jù)只有邏輯真和邏輯假兩個值。邏輯真的常量表示形式有
:.T,,t,.Y.和y。邏輯假的常量表示形式有:E,f,.N,和m.。
門"■「OK?仙
2.變量
變量是在命令操作、程序運行過程中其值可以變化的量
O變量分為字段變量和內(nèi)存變量兩大類。
內(nèi)存變量:1.以字母、漢字、下劃線開頭;2.由字母、
漢字、數(shù)字、下劃線組成;3,至多128個字符;4.不可與系
統(tǒng)保留字同名。
字段變量:1.以字母、漢字開頭;2.由字母、漢字、數(shù)
字、下劃線組成;3,至多10個字符;4,不可與系統(tǒng)保留字
同I名。
內(nèi)存變量又分為簡單內(nèi)存變量和系統(tǒng)內(nèi)存變量,系統(tǒng)內(nèi)存變
量是VisualFoxPro系統(tǒng)運行時自動建立、使用的,其名字都是以
下劃線開頭,例如_dos,_pwait等。
(1)簡單內(nèi)存變量
每一個變量都有一個名字,可以通過變量名訪問變量。簡單
內(nèi)存變量賦值不必事先定義,例如:
X=10
門"■「OK?仙
(2)數(shù)組
數(shù)組是內(nèi)存中連續(xù)的一片存儲區(qū)域,是按一定順序排列的一組內(nèi)存變量,
數(shù)組中的各個變量稱為數(shù)組元素,每個數(shù)組元素可通過數(shù)組名及相應(yīng)的下標(biāo)來
訪問。每個數(shù)組元素相當(dāng)于一個簡單變量,可以給各個元素分別賦值。在Visual
FoxPro中,一個數(shù)組中各個元素的數(shù)據(jù)類型可以不同。
創(chuàng)建數(shù)組的兩種命令格式為:
DIMENSION〈數(shù)組名〉(〈下標(biāo)上限1>[,<下標(biāo)上限2>][,……])
DECLAREv數(shù)組名〉(〈下標(biāo)上限1>[,<下標(biāo)上限2>][,……])
例如:
DECLAREaa(5),bb(2,3)
門"■「OK?仙
3.內(nèi)存變量常用命令
(1)內(nèi)存變量的賦值
格式1:STOREC表達(dá)式>T0(變量名表〉
格式2:〈內(nèi)存變量名>=<表達(dá)式>
功能:格式1計算表達(dá)式的值并賦給一個或多個
內(nèi)存變量;格式2只能給一個變量賦值。
(2)內(nèi)存變量的顯示
格式1:LISTMEMORY[LIKEv通配符>][TOPRINTERITOFILE<
文件名〉]
格式2:DISPLAYMEMORY[LIKE<通配符>][TOPRINTERITO
FILEv文件名》]
(3)內(nèi)存變量的清除
格式1:CLEARMEMORY
格式2:RELEASE〈內(nèi)存變量名表,
格式3:RELEASEALL[EXTENDED]
格式4:RELEASEALL[LIKEv通酉己符>IEXCEPT〈通酉己符>]
門"■「OK?仙
(4)內(nèi)存變量的保存
格式:SAVETO〈文件名〉A(chǔ)LL[LIKEv通配符>|
EXCEPTv通酉己符〉]
功能:將指定范圍的內(nèi)存變量保存在內(nèi)存變量文件中,
內(nèi)存變量文件的擴(kuò)展名為,men。
(5)內(nèi)存變量的恢復(fù)
格式:RESTOREFROMv文件名>[ADDITIVE]
功能:把內(nèi)存變量文件中的變量送回內(nèi)存,不選
ADDITIVE則送回之前先清除內(nèi)存中的內(nèi)存變量。
4.字段變量
字段變量就是指數(shù)據(jù)表中已定義的任意一個字段
O字段變量的數(shù)據(jù)類型與該字段定義的類型一致。
字段變量的類型有數(shù)值型、浮點型、整型、雙精
度型、字符型、邏輯型、日期型、時間日期型、備
注型和通用型等。
2.1.3函數(shù)
函數(shù)名(自變量表)
自變量表可以是一個變量或多個自變量,
也可以為空,即:函數(shù)名(),此時函數(shù)名后
面的一對圓括號不能省略。
函數(shù)按功能可劃分為:數(shù)學(xué)函數(shù)、字符串
函數(shù)、日期和時間函數(shù)、類型轉(zhuǎn)換函數(shù)、測
試函數(shù)。
目錄t結(jié)束
1.數(shù)學(xué)函數(shù)(數(shù)值函數(shù))
(1)求絕對值函數(shù)ABS
格式:ABS(〈數(shù)值表達(dá)式〉)
(2)求整函數(shù)INT
格式:INT(〈數(shù)值表達(dá)式》)
(3)四舍五入函數(shù)ROUND
格式:ROUND(〈數(shù)值表達(dá)式,,〈保留小數(shù)位》)
(4)指數(shù)函數(shù)EXP、自然對數(shù)函數(shù)LOG、平方根函數(shù)SQRT、
格式:EXP|LOG|SQRT(v數(shù)值表達(dá)式,)
(5)取模(求余數(shù))函數(shù)MOD
格式:MOD(〈數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)
功能:取〈數(shù)值表達(dá)式1>除以<數(shù)值表達(dá)式2>的余數(shù)。
(6)求最大值MAX、最小值MIN
格式:MAX|MIN(〈表達(dá)式1〉,〈表達(dá)式2〉,…,<表達(dá)式n>)
門"■「OK?仙
2.字符串函數(shù)
(1)判子字符串函數(shù)AT
格式:AT(〈字符表達(dá)式1>,〈字符表達(dá)式2>)
功能:求〈字符表達(dá)式1>在〈字符表達(dá)式2>的起始位置
數(shù)值。
說明:
?若〈字符表達(dá)式2>中不包含〈字符表達(dá)式1>,則函數(shù)值為零;
?若〈字符表達(dá)式2>的值含有兩個以上的〈字符表達(dá)式1>的值,
則函數(shù)給出第一個值的位置。
?大小寫字母在檢索中視為不同。
(2)取子串函數(shù)SUBSTR
格式:SUBSTR(v字符表達(dá)式》,〈起始位置〉[,〈長度〉])
功能:對v字符表達(dá)式〉從給定的〈起始位置》開始截取指定長度
的字符,生成一個新的字符串;
說明:
若無<長度>或〈長度,大于后面剩余的字符個數(shù),則截至末尾。
若〈起始位置〉大于字符串表達(dá)式長度,則輸出空串。
(3)取左子串函數(shù)LEFT
格式:LEFT(v字符表達(dá)式》,v數(shù)值表達(dá)式,)
功能:LEFT從〈字符表達(dá)式〉左邊截取由〈數(shù)值表達(dá)式〉的值指定
的字符,生成一個新的字符串。
(4)取右子串函數(shù)RIGHT
格式:RIGHT(v字符表達(dá)式〉,〈數(shù)值表達(dá)式〉)
(5)宏代換函數(shù)&
格式:&<字符型內(nèi)存變量〉匚]
功能:替換出〈字符型內(nèi)存變量》的值。即將〈字符型內(nèi)存變量〉值
的定界符去掉,使其可能代表一個變量名、文件名、命令、表達(dá)式等。
說明:在表達(dá)式中使用該函數(shù)時,如果函數(shù)中的字符型內(nèi)存變量名
與其后面的字符無明顯分界時,應(yīng)使用圓點將它們隔開。例如:
A=“北京”
B="中國”
?“&A.是&B.首都”
主屏幕顯示:北京是中國首都
(7)刪除首部和尾部空格的函數(shù)LTRIM,TRIM(RTRIM)和ALLTRIM
格式:LTRIM|TRIM|RTRIM|ALLTRIM(〈字符表達(dá)式〉)
功能:LTRIM是刪除字符串首部的空格,TRIM和RTRIM是刪除字符串尾部的空格,ALLTRIM則可刪除
字符串首部和尾部的空格。
(8)構(gòu)造空格函數(shù)SPACE
格式:SPACE(〈數(shù)值表達(dá)式,)
功能:產(chǎn)生由V數(shù)值表達(dá)式〉的值決定的空格數(shù)。
(9)生成重復(fù)字符串函數(shù)REPLICATER
格式:REPLICATER(〈字符表達(dá)式>,〈數(shù)值表達(dá)式〉)
功能:把〈字符表達(dá)式〉的值(字符串)重復(fù)由V數(shù)值表達(dá)式>的值指定的次數(shù),生成新的字符串。
(10)大小寫字母轉(zhuǎn)換函數(shù)LOWERIUPPER
格式:LOWER|UPPER(〈字符表達(dá)式,)
功能:LOWER把〈字符表達(dá)式》中的大寫字母轉(zhuǎn)換為小寫字母;UPPER把
v字符表達(dá)式》中的小寫字母轉(zhuǎn)換為大寫字母。
(11)字符串替換函數(shù)STUFF
格式:STUFF(〈字符表達(dá)式1>,〈起始位置〉,〈字符個數(shù)>,<字符表達(dá)式2>)
功能:從指定位置開始,用〈字符表達(dá)式2>替換〈字符表達(dá)式1>中<字符個
數(shù)》指定的字符串。
說明:
〈字符表達(dá)式2>中的字符個數(shù)與〈字符表達(dá)式1>中的字符個數(shù)可以不等。
如果〈字符個數(shù)〉為0,則插入〈字符表達(dá)式2>。
如果〈字符表達(dá)式2>為空字符串,則刪除〈字符表達(dá)式1>中指定字符。
3.日期和時間函數(shù)
(1)系統(tǒng)日期和時間函數(shù)DATE|TIME|DATeTIME
格式:
DATE()
TIME()
DATETIME()
功能:DATE。返回當(dāng)前系統(tǒng)日期,函數(shù)值為日期型;TIME。以24小時制格式返回當(dāng)
前系統(tǒng)時間,函數(shù)值為字符型;DATeTIME()返回當(dāng)前系統(tǒng)日期,函數(shù)值為日期型。
(2)年、月、日函數(shù)YEAR|MONTH|DAY
格式:YEAR|MONTH|DAY(〈日期表達(dá)式,)
功能:從v日期表達(dá)式》中求出年份、月份、日份的數(shù)值。
(3)星期函數(shù)DOW|CDOW
格式1:DOW(〈日期表達(dá)式〉)
格式2:CDOW(〈日期表達(dá)式〉)
功能:格式1給出v日期表達(dá)式》指定的日期是一星期的第幾天。1表示星期日,2表
示星期一,……,7表示星期六;格式2給出星期兒的英文名稱。
4.類型轉(zhuǎn)換函數(shù)
(1)字符轉(zhuǎn)換為數(shù)值函數(shù)VAL
格式:VAL(v字符表達(dá)式〉)
功能:將字符型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù)。
說明:
若v字符表達(dá)式〉由數(shù)字字符和小數(shù)點組成,則轉(zhuǎn)換成相
應(yīng)的數(shù)值,但只保留兩位小數(shù),其余小數(shù)四舍五入。
若v字符表達(dá)式〉由非數(shù)字字符打頭,則轉(zhuǎn)換為0.00。
若v字符表達(dá)式〉由數(shù)字字符打頭,且混有非數(shù)字字符時
,則轉(zhuǎn)換到第一個非數(shù)字字符。
例如:
?VAL("1234.5678"),VAL("FoxPro"),VAL(,,1234FOX.5678")
主屏幕顯示:1234.570.001234.00
門"■「OK?仙
(2)數(shù)值轉(zhuǎn)換為字符函數(shù)STR
格式:STR(v數(shù)值表達(dá)式,[,〈長度〉[,v小數(shù)位數(shù)>]])
功能:把v數(shù)值表達(dá)式〉的運算結(jié)果轉(zhuǎn)換為指定長度的字符串。
說明:
v長度〉應(yīng)包括小數(shù)點在內(nèi),不指定長度時,系統(tǒng)默認(rèn)整數(shù)位10位。
若指定v長度,小于〈數(shù)值表達(dá)式,整數(shù)位數(shù),則用一串"*”號表示數(shù)
據(jù)溢出;若〈長度>為0,則返回空字符串。
若省略〈小數(shù)位〉,則只轉(zhuǎn)換整數(shù)位;若指定小數(shù)位,則對下一位四
舍五入。
例如:
?STR(1234.5678,7,2),STR(1234.5678,4),STR(1234.5678)
主屏幕顯示:1234.5712351234
門"■「OK?仙
(3)字符轉(zhuǎn)換為日期函數(shù)CTOD
格式:CTOD(〈字符表達(dá)式〉)
功能:將符合yy/mm/dd、mm/dd/yy日期格式的字符串轉(zhuǎn)換為相應(yīng)日期。
(4)日期轉(zhuǎn)換為字符函數(shù)DTOC
格式:DTOC(〈日期表達(dá)式》[,11)
功能:將〈日期表達(dá)式>轉(zhuǎn)換為相應(yīng)的字符串。
說明:不選用1時,按mm/dd/yy格式轉(zhuǎn)換;選用,1時,按yyyymmdd格式
轉(zhuǎn)換。
(5)ASCII碼值轉(zhuǎn)換為字符函數(shù)CHR
格式:CHR(〈數(shù)值表達(dá)式,)
功能:將〈數(shù)值表達(dá)式>所表示的ASCII碼值轉(zhuǎn)換為相應(yīng)的字符。
(6)字符轉(zhuǎn)換成ASCII碼值函數(shù)ASC
格式:ASC(〈字符表達(dá)式》)
功能:返回〈字符表達(dá)式〉最左邊的一個字符的ASCII碼值。
5.測試函數(shù)
與數(shù)據(jù)表有關(guān)的測試函數(shù),見“2.3自由表的維護(hù)”。
(1)值域測試函數(shù)BETWEEN
格式:BETWEEN(v表達(dá)式l>,v表達(dá)式2>,v表達(dá)式3>)
功能:判斷一個表達(dá)式的值是否介于另外兩個表達(dá)式的
值之間。當(dāng)v表達(dá)式1>值大于等于v表達(dá)式2>且小于等于v
表達(dá)式3>時,函數(shù)值為邏輯真(.T)否則函數(shù)只為邏輯假
(E)。
(2)數(shù)據(jù)類型測試函數(shù)VARTYPE
格式:VARTYPE(〈表達(dá)式〉)
功能:測試〈表達(dá)式〉的類型,返回一個大寫字母,函數(shù)
值為字符型。若〈表達(dá)式〉是一個數(shù)組,則根據(jù)第一個數(shù)組
元素的類型返回字符串。
(3)條件測試函數(shù)IIF
格式:IIF(V邏輯表達(dá)式,,〈表達(dá)式l>,v表達(dá)式2>)
功能:測試v邏輯表達(dá)式》的值,若為邏輯真.T.,函數(shù)返
回v表達(dá)式1>的值,若為邏輯假,F.,函數(shù)返回v表達(dá)式2>的
值。v表達(dá)式1>和v表達(dá)式2>的類型不要求相同。
2.1.4表達(dá)式
表達(dá)式是由常量、變量和函數(shù)等通過特定
的運算符連接起來的式子。
1.數(shù)值表達(dá)式
優(yōu)先級運算符說明
1()包含表達(dá)式內(nèi)的子表達(dá)式
2**或八乘方運算
3*、人%乘、除、求余運算.求余運算%和取余
函MOD()的作用相同
4+?.—加、減運算
2.字符表達(dá)式
字符表達(dá)式由字符串運算符將字符型數(shù)據(jù)連接起
來形成,其運算結(jié)果仍然是字符型數(shù)據(jù)。字符串運
算符有以下兩個,它們的優(yōu)先級相同:
+:前后兩個字符串首尾連接形成一個新的字符
串。
連接前后兩個字符串,并將前字符串的尾部
空格移到合并后的新字符串尾部。
3.日期時間表達(dá)式
日期時間表達(dá)式中可以使用的運算符也有+和一兩個。
格式結(jié)果及類型
〈日期>+<天數(shù)>日期型。指定日期若干天后的日期
〈天數(shù)“〈日期〉日期型.指定日期若干天后的日期
〈日期〉-<天數(shù)〉日期型。指定日期若干天前的日期
〈日期>-《日期>數(shù)值型。兩個指定日期相差的天數(shù)
〈日期時間〉+<秒數(shù),日期時間型。指定日期時間若干秒后的日期時間
書數(shù)“(日期時間;二日期時間型。指定日期時間若干秒后的日期時間
《日期時間〉-<秒數(shù)〉日期時間型。指定日期時間若干秒刖的日期時間
〈日期時間》-<日期時間》數(shù)值型。兩個指定日期時間相差的秒數(shù)
4.關(guān)系表達(dá)式
關(guān)系表達(dá)式通常也稱為比較表達(dá)式,其運算結(jié)果為邏輯型常量。關(guān)
系成立時,表達(dá)式的結(jié)果為,T.,反之,表達(dá)式結(jié)果為.F.。格式為:
v表達(dá)式1>〈關(guān)系運算符>v表達(dá)式2>
運算符說明運算符說明
<小于<=小于等于
>大于>=大于等于
=等于■字符串精確比較
<>、#或!=不等于$一子串包含測流
運算符==和$僅適用于字符型數(shù)據(jù)。其他運算符適用于任何類型的數(shù)據(jù)。
SETEXACTON/OFF
【工具】一【選項】菜單
上束
5.邏輯表達(dá)式
邏輯表達(dá)式由邏輯運算符將邏輯型數(shù)據(jù)連接起來而形成
,其運算結(jié)果仍然是邏輯型數(shù)據(jù)。邏輯運算符有三個:
,NOT,或?。ㄟ壿嫹牵?、.AND.(邏輯與)以及,0R.(邏輯或
)o也可以省略兩端的點(省略時邏輯運算符兩邊必須有空
格),寫成NOT、AND、ORo
優(yōu)先級順序為:NOT,AND,ORo
門"■「OK?仙
6.運算符優(yōu)先級
在每一類運算符中,各個運算符有一定的運算優(yōu)先級
O而不同類型的運算也可能出現(xiàn)在同一個表達(dá)式中,這時
它們的運算優(yōu)先級順序為:先執(zhí)行算術(shù)運算符,字符串運
算符和日期時間運算符,其次執(zhí)行關(guān)系運算符,最后執(zhí)行
邏輯運算符。
2.2自由表的建立與修改
數(shù)據(jù)表簡稱表,在VisualFoxPro系統(tǒng)中,
把包含在數(shù)據(jù)庫中的表稱為數(shù)據(jù)庫表,并把
不包含在數(shù)據(jù)庫而獨立存在的表稱為自由表
o自由表可以添加在數(shù)據(jù)庫中而成為數(shù)據(jù)庫
表,數(shù)據(jù)庫表也可以從數(shù)據(jù)庫中移出而成為
自由表。
2.2.1表結(jié)構(gòu)的建立
1.設(shè)計表結(jié)構(gòu)
(1)字段名
(2)字段類型和寬度
學(xué)號姓名性別身高體重血型團(tuán)員否入團(tuán)時間興趣愛好
1161001張駿男1.8150A是1998-1-1唱歌,武術(shù)
1161002陳晴更1.73120B是1997-5-1書法、繪畫
1161003馬大大男1.8130A否1998-7-1文藝
1161004夏小雪女1.6295A是1998-5-1計算機(jī)動畫
1161005鐘大成女1.651020否1998-8-1體操
1161006王曉寧男1.82135AB是1997-10-1游泳、滑冰
1161007魏文鼎男1.75120B是1999-10-1舞蹈
1161008宋成城男1.78123B否1998-10-1武術(shù)
1161009李文靜女1.63980是1998-8-1打球
1161010張寧如女1.67110A否1999-5-1讀書
Xsqk.dbf
上一弓一
字段名字段類型字段寬度小數(shù)點
學(xué)號字符型7
姓名字符型8
性別字符型2
身后數(shù)值型42
體重數(shù)值型3
血型字符型2
團(tuán)員邏輯型1
入團(tuán)時間日期型8
愛好備注型4
照片通用型4
JIV
學(xué)號課程編號|成績|
學(xué)號數(shù)學(xué)英語政治計算機(jī)應(yīng)用電子技術(shù)總分平均分1161003200965]
11610016087808785399.079.811610032017781
11610028589859590444.088.81161003205581\
11610035545418571297.059.4
1161002200188|
11610046096805555346.069.2
1161004200867[
11610058596806365389.077.8
1161009200989I
11610065094838571383.076.6
1161006200990:
11610076792628785393.078.6
91|
11610088784856590411.082.211610012009
85i
11610096180464471302.060.411610042053
11610106056667345300.060.01161009200570j
1161007200620?
..................
cj.dbfXk.dbf
門"■「OK?仙
2.利用表設(shè)計器創(chuàng)建表結(jié)構(gòu)
用表設(shè)計器定義表結(jié)構(gòu)的操作方法常有下面三種。
(1)使用菜單方法
從VisualFoxPro系統(tǒng)的主菜單開始,打開“文件”菜單,選擇“新
建”
(2)使用命令的方法
建立數(shù)據(jù)表的命令是:
CREATE[<表文件名>|[.dbf]]
例如要建立數(shù)據(jù)表xsqk.dbf時可使用命令:
CREATEXSQK
命令執(zhí)行后彈出表設(shè)計器,其它操作與“使用菜單方法”相同。
(3)在項目管理器中創(chuàng)建
2.2.2表數(shù)據(jù)的輸入
(1)使用APPEND命令的方法
APPEND命令是在表的尾部增加記錄,它有兩種格式:
APPEND或APPENDBLANKo
執(zhí)行一次APPENDBLANK命令后在表中添加一條空記錄;
執(zhí)行APPEND命令需要立刻交互輸入新的記錄值,一次可以連續(xù)輸入
多條新的記錄。然后按<CTRL>+<W>或單擊窗口的“關(guān)閉”按鈕結(jié)束
并保存輸入的新記錄;按<ESC>結(jié)束并不保存輸入的新記錄。
(2)使用菜單方法
可選【顯示】一【瀏覽…】菜單,出現(xiàn)“瀏覽”窗口,再執(zhí)行【顯
示】一【追加方式】菜單或執(zhí)行【表】一【追加記錄】菜單(也可以按
<Ctrl>+<Y>鍵),即在瀏覽器尾部會增加一條空白記錄。
2.2.3備注字段和通用型字段數(shù)據(jù)的輸入和修改
備注型數(shù)據(jù)顯示為“Memo”或“memo”,其中“Memo”
表示對應(yīng)的記錄的備注字段已經(jīng)輸入了數(shù)據(jù),而“memo"表
示該字段中沒有備注內(nèi)容。要為某記錄的備注字段輸入數(shù)據(jù)
或修改其中的內(nèi)容,可雙擊該記錄的備注字段,進(jìn)入備注字
段的編輯窗口,編輯完后按<CTRL>+vW>或單擊窗口的“
關(guān)閉”按鈕結(jié)束并保存輸入的新內(nèi)容;按vESC>結(jié)束并不保
存輸入的新內(nèi)容。
2.2.4表結(jié)構(gòu)的修改
(1)使用菜單方法
執(zhí)行【顯示】一【表設(shè)計器】菜單命令
(2)使用命令方法
打開表設(shè)計器的命令是:
MODIFYSTRUCTURE
門"■「OK?仙
2.3自由表的維護(hù)
2.3.1VISUALFOXPRO命令結(jié)構(gòu)及常用子句
VFP命令格式:
〈命令動詞〉[〈功能子句1>][<功能子句2>][…]&&注釋部分
例如顯示命令LIST的格式:
LIST[<范圍>][[〈FIELDS〉]〈字段名表達(dá)式表>][FOR<條件>]
[WHILE〈條件>][OFF][TO<設(shè)備名|文件名|內(nèi)存變量名>]&&注釋
1.命令動詞
表示命令執(zhí)行的操作,是命令中必不可少的部分。
2.語句體
語句體由一系列短語構(gòu)成,可使用的常用子句(短語)如下所示:
(1)FIELDS〈字段名表〉
用于指定操作的字段,〈字段名表〉中有多個字段時,字段名之間用
逗號分隔。例如命令:
usexsqk
listfields姓名,身高&&顯示xsqk.dbf表的“姓名”和“身高”兩列
數(shù)據(jù)
(2)FOR<條件>
對滿足條件的所有記錄進(jìn)行操作。例如命令:
usexsqk
listfor身高>1.7&&顯示xsqk.dbf表中身高大于L7米的所有記錄
(3)WHILEv條件〉
對滿足條件的記錄進(jìn)行操作。從表中的當(dāng)前正在使用的記錄開始向
下順序判斷,當(dāng)遇到第一個不滿足條件的5己錄時,
管其后是否還有滿足條件的記錄。
(4)v范圍,
表示記錄的執(zhí)行范圍,可以是ALL,NEXT<n>,RECCORD<n>,REST
幾項中之一,其中的vn>是數(shù)值型表達(dá)式。系統(tǒng)對表中的記錄是逐條進(jìn)行處理
的。VisualFoxPro為每一個打開的表設(shè)置了一個內(nèi)部使用的記錄指針,指向正在
被操作的記錄,該記錄稱為當(dāng)前記錄。記錄指針的作用是標(biāo)識表的當(dāng)前記錄。
ALL:表示全部記錄;
NEXT<n>:表示從當(dāng)前記錄開始的以下n條記錄;
RECORD<n>:表示第n號記錄;
REST:表示從當(dāng)前記錄到最后一條記錄。
(5)TO<設(shè)備名|文件名|內(nèi)存變量名〉
表示操作結(jié)果的輸出去向。
一目毛
3.命令書寫格式說明
在書寫命令格式時,還用到一些符號,這些符號
只是在書寫時使用,實際操作時并不輸入。這些符
號以及它們所表示的意義如下:
<>:表示其中內(nèi)容為必選項;
[]:表示其中內(nèi)容為可選項;
I:表示其兩側(cè)項目只能任選一項;
…:表示同類項的多次重復(fù)。
一目毛上束
4.命令的書寫與使用規(guī)則
在輸入命令時,應(yīng)注意下面規(guī)則:
?每條命令以命令動詞開始,以回車鍵結(jié)束,命令中各短語的順序是
任意的。
?命令動詞、短語中的英文單詞及函數(shù)名均可縮寫為前四個字符,大
小寫可混用。
?命令動詞、語句體及其各短語之間均以空格相隔。
?一行只能寫一個命令,不能將兩個命令寫在同一行。
?命令一行寫不下時,可以由系統(tǒng)自然換行或在行尾加分號(;),
回車強(qiáng)制換行。命令行的長度小于或等于2048個字符。
2.3.2表的打開與關(guān)閉
(1)表的打開
可以通過選【文件】一【打開】菜單(或工具欄上的“
打開”按鈕)打開表,也可以用以下命令打開表:
Use[v表名>,dbf]
(2)表的關(guān)閉
常常使用下面命令關(guān)閉表:
use&&關(guān)閉當(dāng)前使用的表
closetables&&關(guān)閉當(dāng)前數(shù)據(jù)庫中所有打開的表
closetablesall&&關(guān)閉所有打開的表
closeall&&關(guān)閉所有打開的表、程序文件及表單等
clearall&&關(guān)閉所有的表、程序文件及表單等,清除內(nèi)存變量
2.3.3表數(shù)據(jù)的瀏覽和修改
1.同時進(jìn)行數(shù)據(jù)瀏覽和修改的操作
打開瀏覽器的方法有多種,常用的方法有:
?首先打開要操作的表,再執(zhí)行菜單【顯示】一【瀏覽…】。
?在項目管理器中選擇要操作的表,然后單擊“瀏覽”命令按鈕。
?在命令方式下,首先用USE命令打開要操作的表,然后鍵入BROWSE命
令。BROWSE命令的格式如下:
Browse[〈范圍〉][Fields〈字段名表>][Forv條件表達(dá)式》]
[<NOAPPEND>][<NOMODIFY>]
交互式地對當(dāng)前表記錄進(jìn)行編輯的命令:
CHANGE|EDIT[〈范圍〉][Fieldsv字段名表<[For<條件表達(dá)式>]
目錄t結(jié)束
2.數(shù)據(jù)的選擇顯示
數(shù)據(jù)的顯示常常使用LIST和DISPLAY命令,命令
格式如下:
List|Display[<范圍>][[Fields]〈字段名表達(dá)式表>][For(條
件表達(dá)式>][WHILEv條件表達(dá)式>][ToPrinter][ToFile<文件名>]
[off]
門"■「OK?仙
2.3.4記錄指針的移動
對于一個打開的表文件來說,系統(tǒng)對表中的記錄是逐條
進(jìn)行處理的,表剛打開時指針是指向表中最上面的記錄的。
1.命令方法移動指針
命令方法移動指針需要了解表文件的邏輯結(jié)構(gòu),表最上
面的記錄是首記錄,記為TOP;最下面的記錄是尾記錄,記
為BOTTOM;在第一個記錄之前有一個文件起始標(biāo)識,稱
為文件首(BeginningofFile,簡稱BOF);在最后一個記錄
的后面有一個文件結(jié)束標(biāo)識,稱為文件尾(EndofFile,簡
稱EOF)。移動指針就是要把指針定位在某個記錄上。
I錄】■1?OK?火
文件頭ALL
首記錄一
1852
RECORDN+M
目錄上一弓一結(jié)束
(1)GO命令
GO命令是絕對定位命令,它將記錄指針定位于指定位置。GO命令
有如下兩種格式:
GO[TO]TOP|BOTTOM
[GO[TO]]<數(shù)值表達(dá)式〉
GOTOP命令把指針定位在首記錄;GOBOTTOM命令把指針定位在
末記錄;
(2)SKIP命令
SKIP命令是相對定位命令,是相對于當(dāng)前記錄進(jìn)行定位的命令。
命令格式:SKIP[v數(shù)值表達(dá)式>]
〈數(shù)值表達(dá)式>的值取正或負(fù)的整數(shù),表示指針從當(dāng)前記錄開始移動
多少個記錄。v數(shù)值表達(dá)式〉的值大于零時指針往文件尾移動,小于零時
指針往文件頭移動;當(dāng)〈數(shù)值表達(dá)式〉缺省時表示1。
2.菜單方法移動指針
打開“瀏覽”窗口后,選擇【表】一【轉(zhuǎn)
到記錄】菜單
3.與指針及表相關(guān)的測試函數(shù)
(1)文件結(jié)束測試函數(shù)EOF
格式:EOF([V數(shù)值表達(dá)式>]|v表別名>])
功能:測試v數(shù)值表達(dá)式》指定工作區(qū)中表文件記錄指針
是否指向文件結(jié)束位置(表文件尾),表文件尾是指最后一
條記錄得后面位置。若指針指向結(jié)束位置,函數(shù)值為邏輯真
(.T.),否則函數(shù)值為假(?F.)。
(2)文件起始測試函數(shù)BOF
格式:BOF([V數(shù)值表達(dá)式>]|v表別名>])
功能:測試v數(shù)值表達(dá)式》指定的工作區(qū)中表文件記錄指
針是否指向起始位置,表文件起始位置在首記錄的前面,也
稱為文件頭。若指針指向起始位置,函數(shù)值為邏輯真(,「)
,否則為假(.F.)。
(3)記錄號測試函數(shù)RECNO
格式:RECNO([v數(shù)值表達(dá)式》|〈表別名〉])
功能:給出v數(shù)值表達(dá)式》指定的工作區(qū)中打開的數(shù)據(jù)表
的當(dāng)前記錄號。
(4)記錄總數(shù)測試函數(shù)RECCOUNT
格式:RECCOUNT([V數(shù)值表達(dá)式,I〈表別名〉])
功能:測試v數(shù)值表達(dá)式,指定的工作區(qū)中數(shù)據(jù)表的記錄
個數(shù)。
(5)文件測試函數(shù)FILE
格式:FILE(v文件名〉)
功能:測試v字符表達(dá)式,指定的磁盤文件是否存在,若
存在,函數(shù)值為邏輯真(,「),否則函數(shù)值為假
例如:
?FILE('XSQK.DBF')
(6)記錄大小測試函數(shù)RECSIZE
格式:RECSIZE([v數(shù)值表達(dá)式〉Iv表別名>])
功能:測試<數(shù)值表達(dá)式>指定的工作區(qū)中數(shù)據(jù)表記錄的
長度。
(7)數(shù)據(jù)類型測試函數(shù)TYPE
格式:TYPE(v表達(dá)式〉)
功能:測試〈表達(dá)式〉的數(shù)據(jù)類型。
(8)檢索測試函數(shù)FOUND
格式:FOUND()
功能:測試執(zhí)行LOCATE、CONTINUE、SEEK和FIND等
定位命令(見第三章)的定位是否成功,定位成功則FOUND
()的函數(shù)值為.T,,否則為,F.。
門"■「OK?仙
(9)記錄刪除測試函數(shù)DELETE
格式:DELETED([<表的別名>I〈工作區(qū)號>])
功能:測試指定的表,或在指定工作區(qū)中所打開的表,記錄指針?biāo)傅漠?dāng)前
記錄是否有刪除標(biāo)記“*”。若有刪除標(biāo)記,函數(shù)值為真,否則為假。若缺省自
變量,則測試當(dāng)前工作區(qū)中所打開的表。
(10)表文件名測試函數(shù)DBF
格式:DBF([V表的別名>|〈工作區(qū)號>])
功能:測試指定的表,或在指定工作區(qū)中所打開的表在磁盤的位置。若缺省
自變量,則測試當(dāng)前工作區(qū)中所打開的表。
2.3.5表與表結(jié)構(gòu)的復(fù)制
1.結(jié)構(gòu)與數(shù)據(jù)的同時復(fù)制
COPYTO〈表文件〉[V范圍>][FIELDS〈字段
名表>][FOR|WHILE〈條件>]
功能:將滿足條件的記錄按指定的結(jié)構(gòu)復(fù)制到新的表文件。
說明:若不指定條件、范圍和字段表,則按原結(jié)構(gòu)復(fù)制所有記錄;V
字段名表》的字段和排列順序決定了新表的字段和排列順序;V范圍〉缺
省值為ALL;當(dāng)被復(fù)制的表有對應(yīng)的,fpt文件時,對應(yīng)的,fpt文件會同時
被復(fù)制。復(fù)制時被復(fù)制的表必須是打開的。
2.只復(fù)制表文件結(jié)構(gòu)
COPYSTRUCTURETO〈文件名〉[FIELDS
〈字段名表>]
功能:按指定的字段表復(fù)制表結(jié)構(gòu)到一個新文件
,若不指定字段表,則復(fù)制與當(dāng)前表相同的結(jié)構(gòu)。
說明:復(fù)制時被復(fù)制的表必須是打開的;當(dāng)被復(fù)
制的表有對應(yīng)的.fpt文件時,對應(yīng)的.fpt文件會同時
被復(fù)制。
3.只復(fù)制記錄數(shù)據(jù)
COPYTOv文本文件名〉[V范圍>][FIELv字段名表》]
[FOR|WHILE〈條件>]SDF|DELIMITED
功能:按指定格式將表文件的記錄復(fù)制到文本文件
(.TXT),若省略范圍、條件和字段表,則復(fù)制所有記錄值。
說明:v范圍,缺省值為ALL;復(fù)制時被復(fù)制的表必須是
打開的。SDF為標(biāo)準(zhǔn)數(shù)據(jù)格式,DELIMITED為限定符格式。
4.復(fù)制任何類型的文件
COPYFILE〈源文件〉TO〈目的文件〉
說明:〈源文件〉可以是任何類型,〈源文件>和<目的文件〉的
擴(kuò)展名不能省去;源表文件須是關(guān)閉的;當(dāng)被復(fù)制的表有對應(yīng)的,fpt文
件時,對應(yīng)的,fpt文件不會同時被復(fù)制,需要用另外一條命令進(jìn)行復(fù)制
O
5.記錄數(shù)據(jù)復(fù)制生成數(shù)組
COPYTOARRAY數(shù)組名[〈范圍〉][FIELD〈字段名表>][FOR]
WHILE〈條件>]
功能:記錄數(shù)據(jù)傳送到二維數(shù)組,每個記錄對應(yīng)數(shù)組的一行。
6.復(fù)制生成排序表文件
命令格式:
SORTTO〈排序文件〉ON〈字段1>[/A|/D][/C][,字段2][/A|
/D][/C]….[V范圍>][FIELDSv字段表>][FOR|WHILE〈條件>]
功能:按指定的關(guān)鍵字,重新排列記錄順序組成新文件(排序文件)
,原文件不變。
說明:排序文件以關(guān)鍵字段值為序,從左到右依次序為第一,第二
,…,順序;/D表示降序,缺省為升序;[/C]不區(qū)分大小寫字母;只允
許C,N,D,L四種類型作排序關(guān)鍵字段;若缺省范圍和條件,則對全部
記錄排序;若不指定字段表,則排序文件與原文件結(jié)構(gòu)相同。
2.3.6記錄的插入與追加
1.APEND命令
2.APPENDFROM命令
格式工:
APPENDFROM表文件名[FIELDS<字段名表>][FOR|WHILEV條件
>]
不選[F正LDS<字段名表>]時,源表中所有字段的數(shù)據(jù)都添加到當(dāng)前表,否則
只添加〈字段名表》中出現(xiàn)的字段;不選[FOR|WHILEv條件>]時,源表中所有
的記錄都添加到當(dāng)前表,否則只添加源表中滿足〈條件>的記錄。
格式2:
APPENDFROM文本文件SDF|DELIMITED[FIELDV字段名表>]
[FOR|WHILEV條件>]
文本文件為標(biāo)準(zhǔn)格式或限定格式文件,標(biāo)準(zhǔn)格式選SDF,否則選DELIMITED。
格式3:
APPENDFROMARRAY數(shù)組名[FIELDV字段名表>][FOR|WHILE<
條件>]
門"■「OK?仙
3.INSERT命令
INSERT命令可以在表的任意位置插入新的記錄,它的命
令格式是:
INSERT[BEFORE][BLANK]
如果不指定BEFORE則在當(dāng)前記錄之后插入一條新記錄,
否則在當(dāng)前記錄之前插入一條新記錄。
如果不指定BSNK則出現(xiàn)類似執(zhí)行APPEND命令時出現(xiàn)的
界面,并以交互方式輸入記錄的值。否則在當(dāng)前記錄之后(
或之前)插入一條空白紀(jì)錄。
2.3.7記錄的刪除與恢復(fù)
VisualFoxPro的記錄刪除分為邏輯刪除和物理刪除。邏輯刪除就是
給記錄打上刪除標(biāo)記;物理刪除就是把打上刪除標(biāo)記的記錄從數(shù)據(jù)表中
徹底刪除,或把表中的所有記錄全部徹底刪除而只保留表結(jié)構(gòu)。記錄的
恢復(fù)就是把邏輯刪除標(biāo)記去掉。
1.記錄的邏輯刪除
(1)菜單方法與鼠標(biāo)單擊方法
首先打開“瀏覽”窗口,然后從“表”菜單中選擇“刪除記錄”
(2)邏輯刪除命令
邏
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版代理招商合同協(xié)議
- 二零二五年度地下車庫建設(shè)項目融資合同2篇
- 2025年度物流服務(wù)合同意向書3篇
- 2025版能源管理系統(tǒng)IT維護(hù)與優(yōu)化合同范本2篇
- 二零二五年度基礎(chǔ)設(shè)施建設(shè)征用土地賠償協(xié)議2篇
- 2025年度古建筑修復(fù)裝修施工技藝傳承合同3篇
- 二零二五年度房屋抗震加固與維修施工協(xié)議3篇
- 二零二五年度社區(qū)車輛共享搭車安全免責(zé)協(xié)議3篇
- 二零二五年度生態(tài)農(nóng)業(yè)產(chǎn)品托管服務(wù)合同范本集3篇
- 二零二五年度物流行業(yè)授信與貸款協(xié)議3篇
- GB/T 43232-2023緊固件軸向應(yīng)力超聲測量方法
- GB/T 3519-2023微晶石墨
- (承諾書)變壓器售后服務(wù)承諾書
- 新產(chǎn)品的試制與導(dǎo)入
- 聚酰胺酰亞胺實驗報告
- 污水處理廠污泥處理處置投標(biāo)方案
- 智能包裝設(shè)計智慧樹知到課后章節(jié)答案2023年下湖南工業(yè)大學(xué)
- 人教版七年級上冊數(shù)學(xué)期末動點問題壓軸題專項訓(xùn)練(含答案)
- 上海市交大二附中2024屆數(shù)學(xué)七年級第一學(xué)期期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 豐田工作方法精髓-問題解決法(八步法)課件
- 安全生產(chǎn)費用提取及使用計劃
評論
0/150
提交評論