VF二級(jí)考試資料_第1頁(yè)
VF二級(jí)考試資料_第2頁(yè)
VF二級(jí)考試資料_第3頁(yè)
VF二級(jí)考試資料_第4頁(yè)
VF二級(jí)考試資料_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第一章 表的基本操作命令1.1表的基本概念關(guān)系數(shù)據(jù)模型:用一張二維表來(lái)表示實(shí)體及實(shí)體之間聯(lián)系的數(shù)據(jù)模型。VFP是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(數(shù)據(jù)庫(kù)管理系統(tǒng):DBMS).三種關(guān)系運(yùn)算:1、 選擇:選擇所要操作的記錄(元組)范圍。如VF中的all,rest,next,record,for,while,set filter to 等。2、 投影:選擇所要操作字段(屬性)對(duì)象。如VF中的field字段名列表。3、 聯(lián)接:多表間操作。如在VF中如下命令: Set relation to, join with , update from ,append from一個(gè)關(guān)系就是一張二維表。記錄:元組字段:屬性字段的

2、屬性:字段名、字段類(lèi)型、字段寬度、小數(shù)位數(shù)、索引(升序、降序)、空值(字段或變量還沒(méi)有確定值)1.2 表的基本操作命令1、命令格式:create 表文件名 功能:打開(kāi)表設(shè)計(jì)器,完成新表結(jié)構(gòu)(主要是字段)的定義。 例如:create xs.dbf 或者 create xs 注意:1)表文件名不能用單個(gè)字母AJ作為表文件的主文件名。因AJ已作為工作區(qū)別名。 2)一個(gè)表文件不管有多少個(gè)備注型和通用性字段,均只有一個(gè)備注型文件。備注型和通用型字段的內(nèi)容都保存在備注文件中。 如:表文件 xs.dbf 中有備注字段 自動(dòng)產(chǎn)生 備注文件 xs.fpt 3)一個(gè)表文件不能有兩個(gè)完全相同的字段名。 4)如cea

3、te后面的表文件已經(jīng)存在,則系統(tǒng)會(huì)覆蓋原有文件。 5)字段的數(shù)據(jù)類(lèi)型共13種:字段型(C)、數(shù)值型(N)、貨幣型(Y)、日期型(D)(8)、日期時(shí)間型(T)(8)、邏輯型(L)(1)、備注型(M)(4)、通用型(G)(4)、字符型(二進(jìn)制)、備注型(二進(jìn)制)。2、use 1)格式1:use 表文件名 功能:打開(kāi)當(dāng)前目錄下指定表文件,如果當(dāng)前目錄中沒(méi)有此表,則會(huì)彈出“文件××不存在”的錯(cuò)誤提示。 2)格式2:use 功能:關(guān)閉當(dāng)前表文件。4、 命令格式:modify structure 功能:打開(kāi)表設(shè)計(jì)器,對(duì)當(dāng)前表結(jié)構(gòu)進(jìn)行修改。 如:use xs Modify structu

4、re5、 命令格式:append blank功能:在當(dāng)前表文件的末尾追加(空)記錄。如:use xsAppend 補(bǔ)充1:設(shè)計(jì)文件默認(rèn)目錄 【工具】菜單【選項(xiàng)】-【文件位置】-【默認(rèn)目錄】-【使用默認(rèn)目錄】-【設(shè)置默認(rèn)目錄】-【確定】。 命令窗口中輸入命令:set default to d:201201016、命令:go 或者 goto 功能:指針的絕對(duì)定位,跳到某條記錄上。 格式:go n|top|bottom 其中:n表示記錄號(hào);top表示頂部;bottom表示底部。注意:go 1+1 = go 2 Go 1.9 GO后面如果是小數(shù),則小數(shù)部分被忽略(即不進(jìn)行四舍五入)。補(bǔ)充2:當(dāng)前指針:

5、bof位置(第一條記錄之前的位置),eof位置(最后記錄的后面位置)補(bǔ)充3:記錄號(hào):表建好后輸入記錄后,每條記錄系統(tǒng)將自動(dòng)給該記錄編號(hào),即用戶(hù)輸入記錄的物理順序進(jìn)行編號(hào)。6、 命令格式: skip ±n 功能:以當(dāng)前記錄作為參考,向上(-)或向下(+)移動(dòng)指針。其中n代表移動(dòng)的記錄數(shù)。注意:1)如果skip命令后的數(shù)大于該表中的記錄數(shù),則執(zhí)行命令后,指針指向EOF. 2) skip后不加任何數(shù),相當(dāng)于skip 1. 3)skip后面如果是小數(shù),則小數(shù)部分被忽略(即不進(jìn)行四舍五入)。例如:表xs.dbf只有三條記錄。則:use xs (打開(kāi)表xs,指針指向第一條記錄) Go 2 (跳到

6、第2條) Skip 2 (當(dāng)前記錄向下跳2條記錄,指向第4條記錄) ?bof(),eof() 7、 命令格式:display 范圍 for 條件表達(dá)式功能:在指定的范圍內(nèi)將滿(mǎn)足for表達(dá)式的記錄顯示出來(lái)。注意:范圍可以省略,表示顯示當(dāng)前記錄。但只要帶for表達(dá)式,則表示范圍為all。補(bǔ)充5:范圍:1)all:表示全部記錄。 2)next n:n表示就記錄數(shù),表示從當(dāng)前記錄(包括當(dāng)前記錄)開(kāi)始往下數(shù)共n條記錄。例如:學(xué)生表 xs.dbf共有4條記錄。則: Use xs 注:打開(kāi)表,記錄指針指向第一條。 Go 3 Display Display all Go 2 Display next 2 3)

7、record n:表示記錄為n的那條記錄。與當(dāng)前記錄無(wú)關(guān)。例如:go 2 Disp record 3 4)rest:表示從當(dāng)前記錄(包括當(dāng)前記錄)開(kāi)始,向下到最后一條記錄。例如: go 2 Disp rest注意:在VF中,不管是哪條命令,只要用了范圍ALL或者是rest這兩個(gè)范圍,則執(zhí)行完該命令后,指針指向eof。8、 命令格式:list 范圍 for表達(dá)式功能:在指定范圍內(nèi)將滿(mǎn)足for表達(dá)式的記錄顯示出來(lái)。范圍 for表達(dá)式都省略,表示顯示全部記錄。例如: use xs Go 2 List ?recno( ) 注:recno( )測(cè)試當(dāng)前的記錄號(hào)注意:list和display區(qū)別:1) l

8、ist滾屏顯示,display分屏顯示。2) display默認(rèn)范圍是當(dāng)前記錄;而lsit默認(rèn)范圍是all。3) list next 1 = display9、 browse :以瀏覽方式打開(kāi)瀏覽窗口。10、 edit:以編輯方式打開(kāi)瀏覽窗口。11、 命令格式:insert before blank功能:插入記錄。加上before表示在當(dāng)前記錄之前插入(空)記錄。Blank表示空記錄。12、 命令格式:delete 范圍 for 條件表達(dá)式功能:邏輯刪除,即給記錄添加刪除標(biāo)記。注:范圍 for 條件表達(dá)式都省略,表示只針對(duì)當(dāng)前記錄邏輯刪除;如果加上for子句 表示對(duì)滿(mǎn)足條件的記錄邏輯刪除。13

9、、 命令格式:recall 范圍 for 條件表達(dá)式功能:在指定范圍內(nèi),將對(duì)滿(mǎn)足for條件的記錄恢復(fù)成正常記錄。注:范圍 for 條件表達(dá)式都省略,表示恢復(fù)當(dāng)前記錄。如果加上for子句,表示對(duì)滿(mǎn)足條件的所有記錄恢復(fù)。例如: use xs Go 2 Delete next 2 Recall record 2 List14、 pack:將帶有刪除標(biāo)記的記錄徹底刪除,即物理刪除。15、 zap::清空表中的全部記錄,表的結(jié)構(gòu)沒(méi)有影響。不管記錄是否帶有刪除標(biāo)記,zap均是物理刪除,不可恢復(fù)。16、 命令格式:copy 范圍 to 新表名 for 表達(dá)式fields 字段名列表功能:將當(dāng)前表中指定范圍內(nèi)

10、滿(mǎn)足for條件的記錄復(fù)制到新表文件。其中新的表文件包含的字段由fields后面的字段列表決定。fields 字段名列表如果省略,表示所有子都。例如: use xs Go 2 Delete next 2 Copy to a:xs1.dbf for deleted( ) 17、 命令格式:copy structure to 表文件 fields 字段名表功能:將當(dāng)前表的結(jié)構(gòu)復(fù)制到新的表文件,生成一個(gè)空表。18、 命令格式:append form 表文件 for 條件表達(dá)式 或append from array 數(shù)組名 for 條件表達(dá)式功能:將另一個(gè)表中滿(mǎn)足條件的記錄追加到當(dāng)前表中?;蛘邔⒁粋€(gè)數(shù)組

11、中滿(mǎn)足for條件的數(shù)據(jù)添加到當(dāng)前表。例如:use aaa.dbf Append from bbb.dbf第二章 表達(dá)式與函數(shù)2.1 表達(dá)式內(nèi)存變量的賦值常量:值永遠(yuǎn)不會(huì)變化的這么一個(gè)符號(hào)。變量:值會(huì)隨時(shí)間變化而編號(hào)。變量名必須以漢字、英文字母開(kāi)頭,后面跟漢字、英文字母、數(shù)字、下劃線(xiàn)來(lái)命名。 變量分為:內(nèi)存變量、字段變量、系統(tǒng)變量1、 內(nèi)存變量共有:C、N、Y(貨幣型)、L、D、T、S(屏幕型)2、 內(nèi)存變量和字段變量同名時(shí),默認(rèn)為字段變量,若要引用內(nèi)存變量需要在該變量之前加上M.(M->)。例如:姓名=“王五” ?姓名,M.姓名 &&前面姓名是輸出字段姓名的值,后面是內(nèi)存

12、變量姓名的值內(nèi)存變量賦值有兩種:1) 內(nèi)存變量=表達(dá)式2) Store 表達(dá)式 to 內(nèi)存變量表說(shuō)明:(1)格式1是用一個(gè)表達(dá)式的值給一個(gè)內(nèi)存變量賦值,格式2用一個(gè)值給一個(gè)或多個(gè)內(nèi)存變量賦值。 (2)表達(dá)式是常量、變量、函數(shù)及其組合,其中的變量已經(jīng)賦值(變量是字段名須打開(kāi)數(shù)據(jù)表,是內(nèi)存變量要先賦值)。內(nèi)存變量的顯示與清除1、 顯示:格式1:list memory like 通配符to printer | to file 文件名 格式2:display memory like 通配符to printer | to file 文件名2、清除:格式1:clear memory 或者 release

13、all extended 格式2:選擇清除內(nèi)存變量 release 內(nèi)存變量1,內(nèi)存變量2,。 Release like 通配符to printer | to file 文件名一、算術(shù)表達(dá)式 算式表達(dá)式中的數(shù)據(jù)必須是數(shù)值型,結(jié)果也為數(shù)值型。 優(yōu)先級(jí)運(yùn)算符說(shuō) 明1()形成表達(dá)式內(nèi)的子表達(dá)式2*或乘方運(yùn)算3*、/、%乘、除運(yùn)算、求余運(yùn)算4+、-加、減運(yùn)算例如:?3+5,5+4*3,3*2,53,10%3,40.5,9*1/2 二、字符表達(dá)式 字符表達(dá)式由字符串運(yùn)算符將字符型數(shù)據(jù)連接起來(lái)形成,結(jié)果也是字符型數(shù)據(jù)。 字符串定界符共有3個(gè):” ”, , 字符串定界符的使用規(guī)則:(1)字段名不能加定界符;

14、(2)字符串本身已包括某一個(gè)定界符,則不能再用該符號(hào)作為整個(gè)字符串的定界符; 例如:“張三說(shuō):“你好!” 錯(cuò)誤 張三說(shuō):“你好!”(3)定界符在操作字符串時(shí)使用,但操作結(jié)果中不顯示。 字符運(yùn)算符:+ :將“+”后的字符串連接到“+”號(hào)前面的字符串的后面形成一個(gè)新的字符串。 - :若“-”前面的字符串末尾有空格,則先將第一個(gè)字符串尾隨空格移動(dòng)到第二個(gè)字符串尾部后,再連接兩個(gè)字符串。若第一個(gè)字符串尾部無(wú)空格,則前后兩個(gè)字符串尾直接連接。例如:?“張三”+“李四” 結(jié)果: ?“張三”-“李四” 結(jié)果:三、關(guān)系表達(dá)式:運(yùn)算結(jié)果為邏輯型數(shù)據(jù)。運(yùn)算符說(shuō) 明運(yùn)算符說(shuō)明<小于<=小于等于>大

15、于>=大于等于=等于= =字符串精確比較<>、#或!=不等于$子串包含測(cè)試:右邊的是否包含左邊的串注意:精確等于符(=) 和包含運(yùn)算符($): 只能用于字符串的比較中。例如:? “dabc”$ “ab” 結(jié)果為:.T . ?“ ab”$ “abcf” 結(jié)果為:.F . 字符串=運(yùn)算符:左右兩邊字符串完全相同,結(jié)果就為.T.。運(yùn)算符=:如果用于字符串比較時(shí),要看set exact off|on (模糊或精確比較)設(shè)置。例如:set exact off 設(shè)置模糊比較,系統(tǒng)默認(rèn)的 ?“中國(guó)你好”=“中國(guó)” 結(jié)果:.T. ?“你好中國(guó)”=“中國(guó)” 結(jié)果:.F. ?“中國(guó)”=“中國(guó)你好

16、” 結(jié)果:.F. Set exact on 精確比較 = 等價(jià)于 =四、邏輯表達(dá)式:運(yùn)算結(jié)果仍是邏輯性數(shù)據(jù)。 邏輯運(yùn)算符:邏輯非 .not. 邏輯與:.and. 邏輯或:.or. 優(yōu)先級(jí)順序:not、and、or 邏輯值:邏輯真(.T.、.t.、.Y,、.y.) 和 邏輯假(.F.、.f.、.N.、.n.) 五、日期時(shí)間表達(dá)式:日期型常量的定界符是一對(duì)花括號(hào)。日期型常量的格式有兩種: 傳統(tǒng)的日期格式 系統(tǒng)默認(rèn)的日期型數(shù)據(jù)為“MM/DD/YY”(月/日/年),其中年份可以是2位數(shù)字,也可以是4位數(shù)字,如:10/11/01、1011-01、10 11 2001等。這種格式的日期型常量要受到命令語(yǔ)句

17、SET DATE TO和SET CENTURY on/off設(shè)置的影響。Set century on|off :設(shè)置年份是4位或2位Set mark to “.”或者 “-”或者 “/” 設(shè)置間隔符為:- . /Set date to ymd|mdy|dmy 設(shè)置日期輸出的格式 嚴(yán)格的日期格式 嚴(yán)格格式的日期型數(shù)據(jù)為yyyy-mm-dd,它不受SET DATE等語(yǔ)句設(shè)置的影響。例如:?11/20/1998 結(jié)果: ?1998-11-20 結(jié)果:日期表達(dá)式運(yùn)算符為:+和-格式結(jié)果及類(lèi)型<日期>+<天數(shù)>日期型。指定日期若干天后的日期<天數(shù)>+<日期>

18、;日期型。指定日期若干天后的日期<日期>-<天數(shù)>日期型。指定日期若干天前的日期<日期>-<日期>數(shù)值型。兩個(gè)指定日期相差的天數(shù)<日期時(shí)間>+<秒數(shù)>日期時(shí)間型。指定日期時(shí)間若干秒后的日期時(shí)間<秒數(shù)>+<日期時(shí)間>日期時(shí)間型。指定日期時(shí)間若干秒后的日期時(shí)間<日期時(shí)間>-<秒數(shù)>日期時(shí)間型。指定日期時(shí)間若干秒前的日期時(shí)間<日期時(shí)間>-<日期時(shí)間>數(shù)值型。兩個(gè)指定日期時(shí)間相差的秒數(shù)2.2函數(shù)1、數(shù)學(xué)函數(shù) 函數(shù) 用途 ABS(<數(shù)值表達(dá)式>) 絕

19、對(duì)值,|x| CEILING(<數(shù)值表達(dá)式>) >=自變量的最小整數(shù) EXP(<數(shù)值表達(dá)式>) 對(duì)基E的冪,e=2.71828 FLOOR(<數(shù)值表達(dá)式>) <=自變量的最大整數(shù) INT(<數(shù)值表達(dá)式>) 取整(舍尾)自變量 LOG(<數(shù)值表達(dá)式>) 自變量的自然對(duì)數(shù),ln x LOG10(<數(shù)值表達(dá)式>) 自變量的普通對(duì)數(shù),lg x MAX(<表達(dá)式1>,<表達(dá)式2>,<表達(dá)式3>) 多個(gè)值的最大值 例如:max(5,3*2,32) max(“飛機(jī)”,“汽車(chē)”,“火車(chē)”)

20、結(jié)果:汽車(chē)MIN(<表達(dá)式1>,<表達(dá)式2>,<表達(dá)式3>) 多個(gè)值的最小值 MOD(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>) 求余數(shù) 注意:如果除數(shù)和被除數(shù)同號(hào),得出結(jié)果Y,如果除數(shù)與被除數(shù)異號(hào),則求余的最后結(jié)果為Y+除數(shù)。例如:mod(-10,3)=2 mod(10,3)=1RAND(<數(shù)值表達(dá)式1>) 返回偽隨機(jī)數(shù) ROUND(<數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>) 四舍五入第一個(gè)自變量例如:round(214.87932,2)=214.88 Round(214.87932,0)=215 Round

21、(214.87932,-2)=200SIGN(<數(shù)值表達(dá)式>) 自變量的符號(hào) SQRT(<數(shù)值表達(dá)式>) 平方根(正根) 2、字符串操作函數(shù) &<內(nèi)存變量>: 用于代替內(nèi)存變量?jī)?nèi)容 例如:x=“4“ y=”5” ?&x+&y 結(jié)果為9LEN(<字符串表達(dá)式>):測(cè)試字符串的長(zhǎng)度,即返回字符串表達(dá)式的字符個(gè)數(shù) 。SPACE(<數(shù)值表達(dá)式>): 生成空格。 SUBSTR(<字符串表達(dá)式>,子串起始位置,子串的長(zhǎng)度L): 求子字符串,從指定的子串起始位置,總長(zhǎng)為L(zhǎng)的字符串 ;如果<子串的長(zhǎng)度L>

22、;省略,則函數(shù)從指定位置一直取道最后一個(gè)字符串。例如1:substr(“數(shù)據(jù)庫(kù)語(yǔ)言”,1,4)=“數(shù)據(jù)” substr(“數(shù)據(jù)庫(kù)語(yǔ)言”,4)=“庫(kù)語(yǔ)言”例如2:disp all for substr(姓名,1,2)=黃AT(<字符串表達(dá)式1>,<字符串表達(dá)式2>):字符串表達(dá)式1在字符串表達(dá)式2中的起始位置;函數(shù)返回值類(lèi)型:數(shù)值型例如:AT(“師專(zhuān)”,“阿壩師專(zhuān)”)=5 AT(“阿師專(zhuān)”,“阿壩師專(zhuān)”)=0 AT(“ab”,”ABC”)=0 注意:區(qū)分大小寫(xiě),大小寫(xiě)是不同的字符。ATC(<字符串表達(dá)式1>,<字符串表達(dá)式2>):與AT()功能相同

23、,但是不區(qū)分大小寫(xiě)。例如:AT(“ab”,”ABC”)=1 TYPE(“表達(dá)式”):測(cè)試表達(dá)式值的數(shù)據(jù)類(lèi)型 ,如果表達(dá)式是字符串,則返回字符串變量的值,如果該變量沒(méi)定義,則返回U;如果表達(dá)式是數(shù)值內(nèi)容,則返回N。例如:x=2013/07/11 Type(“x”)= D TYPE(x) 錯(cuò)誤:該函數(shù)要求表達(dá)式外必修有定界符。 Type(“xy”)=U TYPE(“123”)=NVARTYPE(變量名):測(cè)試變量的數(shù)據(jù)類(lèi)型,返回一個(gè)大寫(xiě)字母。例如:x=2013/07/11 x=2013/07/11 3:40:40 Vartype(x)=D vartype(x)=T Vartype(“x”)=C v

24、artype(“123”)=CLTRIM(<字符串表達(dá)式>): 刪除字符串左部空格 RTRIM|TRIM(<字符串表達(dá)式>): 刪除字符串右部空格Alltrim (<字符串表達(dá)式>): 刪除字符串左右部空格LEFT(<字符串表達(dá)式>,<數(shù)值表達(dá)式n>) :取一個(gè)字符串的左字串。例如:left(“abcdef”,2)=“ab”RIGHT(<字符串表達(dá)式>,<數(shù)值表達(dá)式n>) :取一個(gè)字符串的右字串。例如:right(“abcdef”,2)=“ef”字符串匹配函數(shù) 格式:LIKE(<字符表達(dá)式1>,&l

25、t;字符表達(dá)式2>) 功能:測(cè)試字符表達(dá)式2是否包含字符表達(dá)式1所指定的字符通配表示方式,其中可用通配符有兩個(gè),即*和?,*代表任意多個(gè)字符,?代表所在位置1個(gè)字符。函數(shù)返回類(lèi)型:邏輯型。例如:list for like(”張*”,姓名) 顯示姓張的所有人 List for Like(“張?”,姓名) 顯示姓張的姓名中只有2個(gè)字的人3、表(.dbf)操作函數(shù) 函數(shù) 用途 BOF(<工作區(qū)號(hào)或別名>): 測(cè)試當(dāng)前表文件記錄指針是否指向開(kāi)始位置函數(shù),是就返回邏輯真(.T.),否則返回邏輯假(.F.),結(jié)果為邏輯值。EOF(<工作區(qū)號(hào)或別名>):測(cè)試當(dāng)前表文件記錄指針是

26、否指向結(jié)束位置函數(shù) ,是就返回邏輯真(.T.),否則返回邏輯假(.F.),結(jié)果為邏輯值RECNO(<工作區(qū)號(hào)或別名>): 測(cè)試當(dāng)前或指定工作區(qū)表的當(dāng)前記錄號(hào) ,結(jié)果為數(shù)值型RECCOUNT(<工作區(qū)號(hào)或別名>):測(cè)試當(dāng)前表中記錄總的個(gè)數(shù),結(jié)果為數(shù)值型。DELETED(<工作區(qū)號(hào)或別名>):測(cè)試當(dāng)前表的記錄是否帶有刪除標(biāo)記。返回值為邏輯型。例如:use aaa Copy to bbb for deleted()=.t.FILE(<"字符串">) 測(cè)試文件是否存在函數(shù) DBF(<工作區(qū)號(hào)或別名>) 檢測(cè)表的文件名函數(shù)

27、4、日期、時(shí)間函數(shù)DATE():返回系統(tǒng)當(dāng)前日期;函數(shù)返回值類(lèi)型:日期型TIME() :返回系統(tǒng)當(dāng)前時(shí)間;函數(shù)返回值類(lèi)型:字符型YEAR(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>) :返回日期(時(shí)間)表達(dá)式的年份;函數(shù)返回值類(lèi)型:數(shù)值型MONTH(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>):返回日期(時(shí)間)表達(dá)式的月份;函數(shù)返回值類(lèi)型:數(shù)值型DAY(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>) :返回日期(時(shí)間)表達(dá)式的天數(shù);函數(shù)返回值類(lèi)型:數(shù)值型 DOW(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>,<數(shù)

28、值表達(dá)式>)由日期查星期函數(shù) CDOW(<日期型表達(dá)式>|<日期時(shí)間型表達(dá)式>) 從日期查星期名函數(shù) CTOT(<字符串表達(dá)式>) 返回日期時(shí)間值函數(shù) TTOC(<日期時(shí)間型表達(dá)式>) 返回字符值 轉(zhuǎn)換函數(shù):1、STR(<數(shù)值表達(dá)式>,寬度,小數(shù)位數(shù)>): 將數(shù)值轉(zhuǎn)換為字符串型數(shù)據(jù)。注:1)如果未指定寬度,默認(rèn)寬度為10位例如:str(123.78)=” 124”2)如果實(shí)際寬度小于指定寬度,則轉(zhuǎn)換的結(jié)果在字符串的左邊用空格補(bǔ)足指定的寬度。例如:str(123.45,8)=“ 123.45”3)如果指定的寬度小于給定數(shù)據(jù)的

29、整數(shù)位數(shù),則轉(zhuǎn)換的結(jié)果為指定寬度個(gè)數(shù)的*。例如:str(12345,3)=“*”4)例如:str(1234.5678,4,1)=“1235” str(1234.56,5,1)=”1235” Str(1234.56,8,1)=” 1234.6”2、VAL(<字符串表達(dá)式>):將一個(gè)字符型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù)。從字符串最左邊向右逐一轉(zhuǎn)換,直到碰到第一個(gè)不能轉(zhuǎn)換的字符為止,結(jié)果默認(rèn)保留2位小數(shù)。結(jié)果數(shù)據(jù)類(lèi)型:數(shù)值型。例如: VAL(“123”)=123.00 VAL(“3+4”)=3.00 VAL(“12a34”)=12.00 VAL(“AB12”)=0.003、LOWER(<字符

30、串表達(dá)式>):將字符串字母轉(zhuǎn)換成小寫(xiě)字母 4、UPPER(<字符串表達(dá)式>):將字符串字母轉(zhuǎn)換成大寫(xiě)字母 5、ASC(<字符串表達(dá)式>): 返回字符串表達(dá)式最左邊的第一個(gè)字符的ASCII碼 6、CHR(<數(shù)值表達(dá)式>): 將數(shù)值表達(dá)式轉(zhuǎn)換成字符 7、DTOC(日期型表達(dá)式,1):將日期轉(zhuǎn)換為字符數(shù)據(jù)。如果使用選項(xiàng)1,表示字符串的格式為YYYYMMDD共8個(gè)字符。函數(shù)返回?cái)?shù)據(jù)類(lèi)型:字符型。例如:?DTOC(2013-7-6 ) && 結(jié)果為:07/06/13 ?DTOC(2013-7-6,1 ) && 結(jié)果為:201307

31、068、CTOD(<字符串表達(dá)式>):將日期格式的字符數(shù)據(jù)轉(zhuǎn)換為日期數(shù)據(jù)。函數(shù)返回?cái)?shù)據(jù)類(lèi)型:日期型。例如:CTOD(“07/06/2013”)=2013/07/06 5、顯示、打印位置函數(shù) ROW() 判斷光標(biāo)行位置函數(shù) COL() 判斷光標(biāo)列位置函數(shù) INKEY(<數(shù)值表達(dá)式>) 檢測(cè)用戶(hù)所擊鍵對(duì)應(yīng)的ASCII碼函數(shù),數(shù)值表達(dá)式以秒為單位等待擊鍵的時(shí)間 6、其他函數(shù) 函數(shù) 用途 1)空值(NULL值)測(cè)試函數(shù)(ISNULL()格式:ISNULL(表達(dá)式)功能:判斷一個(gè)表達(dá)式的運(yùn)算結(jié)果是否為NULL值,若是NULL值返回邏輯真(.T.),否則返回邏輯假(.F.)。返回值

32、類(lèi)型:邏輯型。只有當(dāng)參數(shù)是.NULL.或NULL時(shí),結(jié)果才為.T.,否則為.F.。例如:ISNULL(.t.)=F Isnull(.f.)=F isnull(null)=.t. isnull(.null.)=.t.2)“空”值測(cè)試函數(shù)(EMPTY())格式:EMPTY(表達(dá)式)功能:根據(jù)指定表達(dá)式的運(yùn)算結(jié)果是否為“空”值,返回邏輯真(.T.)或邏輯值(.F.);函數(shù)返回值類(lèi)型:邏輯型。只有當(dāng)參數(shù)是:數(shù)值型的0、字符型的空串、空格字符串、邏輯型的.F.、備注和通用字段無(wú)內(nèi)容、日期或日期時(shí)間型內(nèi)容為空時(shí),均為“空”值,即結(jié)果都為.T.,否則都為.F.。例如: empty(0)=.t. empty(

33、“”)=.t. empty(space(0)=.t. empty(“ ”)=.T. Empty(.f.)=.t. empty(-)=.t. empty()=.t. Empty(.t.)=.f. empty(null)=.f. empty(.null.)=.f.3)值域測(cè)試函數(shù) 格式:BETWEEN(<表達(dá)式1>,<表達(dá)式2>,<表達(dá)式3>)功能:測(cè)試表達(dá)式1是否在表達(dá)式2和表達(dá)式3之間,包括表達(dá)式2和表達(dá)式3的值。例如:between(35,35,50)=.t. 4)條件測(cè)試函數(shù) 格式:IIF(<邏輯表達(dá)式>,<表達(dá)式1>,<表

34、達(dá)式2>) 功能:測(cè)試<邏輯表達(dá)式>的值,表達(dá)式邏輯若為真,函數(shù)返回<表達(dá)式1>的值,若為邏輯假,函數(shù)返回<表達(dá)式2>的值,<表達(dá)式1>和<表達(dá)式2>表達(dá)式類(lèi)型不要求相同。 例如:X=100;Y=300 IIF(X>100,X-50,X+50)=150;IIF(Y>100,Y-50,Y+50)=250 5)子串替換函數(shù) 格式:STUFF( <字符表達(dá)式1>,<起始位置>,<長(zhǎng)度>,<字符表達(dá)式2>) 功能:用<字符表達(dá)式2>的值替換<字符表達(dá)式1>

35、;中由<起始位置>和<長(zhǎng)度>指明的一個(gè)子串。 例如: S1=GOOD BYE! S2 =MORNING?STUFF(S1,6,3,S2) 結(jié)果:GOOD MORNING! ?STUFF(S1,1,4,S2) 結(jié)果:MORNING BYE! 6)計(jì)算子串出現(xiàn)次數(shù)函數(shù) 格式:OCCURS(<字符表達(dá)式1>,<字符表達(dá)式2>) 功能:返回第一個(gè)字符串在第二個(gè)字符串中出現(xiàn)的次數(shù)。如果第一個(gè)字符串不是第二個(gè)字符串的子串,則返回0。函數(shù)返回值類(lèi)型:數(shù)值型。 例如: S=abracadabraOCCURS(a,S)=5, OCCURS(b,S)=2, OCCU

36、RS(c,S)=1, OCCURS(e,S)=0 第三章 數(shù)據(jù)計(jì)算3.1數(shù)據(jù)計(jì)算命令1、格式:sum 范圍 關(guān)鍵字 to 內(nèi)存變量 for 表達(dá)式功能:對(duì)當(dāng)前表中選中記錄的全部或指定的數(shù)值字段或由指定字段組成的數(shù)值表達(dá)式累加求和。2、AVERAGE 格式:AVERAGE <范圍> 數(shù)值<表達(dá)式> TO <內(nèi)存變量名表> FOR <條件>功能:對(duì)當(dāng)前表中選中記錄的全部或部分?jǐn)?shù)值型字段及其組成的表達(dá)式求平均值并顯示。 范圍省略,表示所有記錄。下面是xscj.dbf學(xué)號(hào)姓名性別數(shù)學(xué)物理英語(yǔ)2010110001王小明男7888902010110002陳鋼

37、男8967872010110003李花女6774772010110004劉民男7767702010110005張小莉女8066682010110006李紅女7877662010110007金陽(yáng)男678090例1:use xscj Sum 數(shù)學(xué) to xszf 例2:求出所有數(shù)學(xué)成績(jī)>=80的考試的數(shù)學(xué)總分 Use xscj Sum 數(shù)學(xué) to xszf for 數(shù)學(xué)>=80 ?xszf例3:求出所有男生的英語(yǔ)總分 Use xscj Sum 英語(yǔ) to yyzf for 性別=”男” ?xszf例4:求出所有姓劉的學(xué)生的數(shù)學(xué)平均分 Use xscj Average 數(shù)學(xué) to sxp

38、j for left(姓名,2)=“劉“ ?xspj3、COUNT 格式:COUNT <范圍> FOR <條件> TO <內(nèi)存變量名> 功能:統(tǒng)計(jì)當(dāng)前表文件中符合條件的記錄數(shù)。 說(shuō)明:內(nèi)存變量名可用除參數(shù)外的任意字符。例1:統(tǒng)計(jì)數(shù)學(xué)在大于等于70小于等于80之間學(xué)生人數(shù)。 Use xscj Count to rs for 數(shù)學(xué)>=70 and 數(shù)學(xué)<=80 ?rs 4、REPLACE格式:REPLACE 范圍 <字段1> WITH <表達(dá)式1>, <字段2> WITH <表達(dá)式2> FOR <

39、條件> 作用:在指定范圍內(nèi),將滿(mǎn)足FOR條件的記錄進(jìn)行替換操作,用表達(dá)式1的值填入字段1中。 說(shuō)明:當(dāng)范圍省略時(shí),表示替換當(dāng)前記錄字段的內(nèi)容。學(xué)號(hào)姓名性別數(shù)學(xué)物理英語(yǔ)平均分2010110001王小明男78889002010110002陳鋼男89678702010110003李花女67747702010110004劉民男77677002010110005張小莉女80666802010110006李紅女78776602010110007金陽(yáng)男6780900例1:計(jì)算機(jī)每個(gè)學(xué)生的平均分,并填入平均分字段中。Use xscjReplace all 平均分 with (數(shù)學(xué)+物理+英語(yǔ))/3例2:

40、給所有女生的平均分加上5分Use xscjReplace 平均分 with 平均分+5 for 性別=”女”例3:假如xscj表中加上“民族“和”優(yōu)秀畢業(yè)生”字段,所有少數(shù)民族優(yōu)秀畢業(yè)生加12分,普通優(yōu)秀畢業(yè)生叫10分,少數(shù)民族畢業(yè)生加5分。Replace 數(shù)學(xué) with 數(shù)學(xué)+iif(民族 # “漢“ and 優(yōu)秀畢業(yè)生=.f., 5,iif(優(yōu)秀畢業(yè)生=.t. and 民族=”漢” ,10,iif(民族 # “漢” and 優(yōu)秀畢業(yè)生=.t. ,12 ,0 )5、total分類(lèi)匯總命令:TOTAL ON 分組字段 TO 新表名 FIELDS<數(shù)值型字段名表> <范圍>

41、; FOR<條件>功能:對(duì)數(shù)值型字段按照分組字段分類(lèi)求和。例如:對(duì)xscj表中分別求出所有男生和所有女生的的數(shù)學(xué)、英語(yǔ)總成績(jī) Use xscj Index on 性別 tag xb Total 性別 to xbzf fields 數(shù)學(xué),英語(yǔ) Use xbzf List 注意:字段“性別”是分類(lèi)(分組)字段,字段“數(shù)學(xué)”“英語(yǔ)”為匯總字段,匯總字段必須是數(shù)值型字段。在total命令之前,先要對(duì)分組字段進(jìn)行索引,否則操作失效。第四章 數(shù)據(jù)排序4.1 索引命令1、分類(lèi)排序的命令如下:命令格式:SORT TO <新表文件名> ON <排序字段名1> /A/D/C ,

42、<排序字段名2>/A/D FOR<條件> FIELDS<字段名表>功能:對(duì)當(dāng)前表按照排序字段進(jìn)行升序或降序重新排列,并生成一個(gè)新表存放排序結(jié)果。例如: use xscj Sort to sxpx on 數(shù)學(xué)/d fields 學(xué)號(hào),姓名,數(shù)學(xué) Use sxpx List注意:1)sort生成一個(gè)新表文件,如果該表文件已經(jīng)存在,則系統(tǒng)會(huì)出現(xiàn)一個(gè)“文件已經(jīng)存在,是否要覆蓋?”提示框。 2)sort生成的表文件不會(huì)自動(dòng)打開(kāi),如需對(duì)新表操作,必須用use打開(kāi)該表。 3)sort命令能排序的字段有C、N、D、T型。 4)on后面是一個(gè)字段名,不能是表達(dá)式,否則系統(tǒng)出現(xiàn)

43、錯(cuò)誤提示信息。 5)/A:表示升序;/D:表示降序;/C:表示排序不區(qū)分大小寫(xiě)。(不加任何排序默認(rèn)升序) 6)對(duì)多個(gè)字段進(jìn)行排序時(shí),中間用逗號(hào)分隔。表示先按第一個(gè)字段進(jìn)行排序,當(dāng)值相同時(shí),再按第二字段進(jìn)行排序。例如:use xscj Sort to sxyypx on 數(shù)學(xué)/d,英語(yǔ) Use sxyypx List2、建立索引索引:?jiǎn)嗡饕↖DX)和復(fù)合索引(CDX);復(fù)合索引分結(jié)構(gòu)復(fù)合索引文件和獨(dú)立(非結(jié)構(gòu))復(fù)合索引文件。格式1:INDEX ON 索引表達(dá)式 TO <文件名> :建立單索引,默認(rèn)升序,不能降序格式2:INDEX ON 索引表達(dá)式 TAG <標(biāo)識(shí)名> A

44、SCENDING|DESCENDING UNIQUE|CANDIDATE :建立結(jié)構(gòu)復(fù)合索引。格式3:INDEX ON 索引表達(dá)式 TAG <標(biāo)識(shí)名> OF <索引文件名> ASCENDING|DESCENDING UNIQUE :建立獨(dú)立(非結(jié)構(gòu))復(fù)合索引。注意:1)結(jié)構(gòu)復(fù)合索引文件:和表文件的主文件同名,擴(kuò)展名為CDX,該文件在表打開(kāi)時(shí)自動(dòng)打開(kāi),表關(guān)閉時(shí)自動(dòng)關(guān)閉,一個(gè)表最多只有一個(gè)結(jié)構(gòu)復(fù)合索引。 2)非結(jié)構(gòu)(獨(dú)立)復(fù)合索引:和表文件的主文件名不同,打開(kāi)表時(shí)不會(huì)自動(dòng)打開(kāi),需要用命令。 命令:set index to 索引文件名表 功能:打開(kāi)索引文件(單索引和非結(jié)構(gòu)復(fù)合

45、索引文件) 命令:set order to 索引標(biāo)識(shí) 功能:指定主控索引標(biāo)識(shí)。 命令:delete tag 索引標(biāo)識(shí) 功能:刪除當(dāng)前打開(kāi)的索引文件中的索引標(biāo)識(shí)。3)單索引(IDX):一個(gè)索引文件只有一個(gè)索引標(biāo)識(shí)。不能實(shí)現(xiàn)降序索引。4)UNIQUE:建立唯一索引;CANDIDATE:建立候選索引。只有結(jié)構(gòu)復(fù)合索引文件才能建立主索引和候選索引。例如: use xs Index on 學(xué)號(hào) tag xh of ab candidate (×) index on 學(xué)號(hào) tag xh candidate 建立候選索引 ()索引類(lèi)型: 1)主索引:選作主索引的字段是主關(guān)鍵字,不允許字段有重復(fù)值,

46、一個(gè)表只能有一個(gè)主索引。只有數(shù)據(jù)庫(kù)表可選主索引。 2)候選索引:數(shù)據(jù)庫(kù)表和自由表都可以建立候選索引;一個(gè)表可以有一個(gè)或多個(gè)候選索引;字段不允許有重復(fù)值,也不能為空值。3)唯一索引:選作唯一索引的字段允許有重復(fù)值,其唯一性是指索引文件中索引項(xiàng)的值是唯一的,若表有重復(fù)字段值,索引文件只保留該字段值前面的一條記錄。4)普通索引:允許有重復(fù)的值,即一個(gè)表可選多個(gè)普通索引。一般用在建立一對(duì)多表間關(guān)系時(shí)的“多方”。Sort(排序)和index(索引)的主要區(qū)別:1) sort 命令是一個(gè)物理排序,生成一個(gè)新的表文件,所生成的表文件可以獨(dú)立使用,不依賴(lài)于原來(lái)的表文件。而index命令是一種索引(即邏輯排序)

47、,它生成的是一個(gè)索引文件,不能獨(dú)立使用,必修依賴(lài)于原表文件。2) sort命令在對(duì)多個(gè)字段的排序時(shí)比較方便,就用on 字段1,on 字段2即可,而index不能這么做,只能用表達(dá)式,如“on 字段1+字段2”,這樣就必修注意數(shù)據(jù)類(lèi)型的問(wèn)題。a) 數(shù)據(jù)查詢(xún)4.1 查詢(xún)命令1、查詢(xún)命令 命令:locate 范圍 for 條件表達(dá)式 順序查找(物理查找) 功能:在指定的范圍內(nèi)查找滿(mǎn)足for條件的記錄。如能找到,指針定位到第一條滿(mǎn)足條件的記錄;否則,指針指向EOF。該命令不管當(dāng)前記錄在哪兒,總是從首記錄開(kāi)始向下查找。范圍省略時(shí)相當(dāng)于all。 2、命令:continue (必修和locate for 聯(lián)

48、用) 功能:從當(dāng)前記錄的下一條記錄開(kāi)始往下查找,如能找到,指針定位到第一條滿(mǎn)足條件的記錄,否則,指針指向EOF。 例如: LOCATE與CONTINUE命令的應(yīng)用。use 學(xué)生成績(jī) loca for 姓名”李紅”disploca for 數(shù)學(xué)>=60dispcontdisp3、快速查找(索引查找) 1)命令:FIND <數(shù)值常量>/<字符常量>/<&字符變量>功能:在索引文件中查找對(duì)應(yīng)的數(shù)據(jù)。如果查找字符常量,不需要定界符。2)SEEK命令命令:SEEK <表達(dá)式>功能:以索引方式查詢(xún)表中的數(shù)據(jù)。說(shuō)明:(1)SEEK命令和FIND命

49、令功能相似,但比FIND更為靈活,SEEK查找的是表達(dá)式,可以是C、N、D、L型的常量、變量及其組合。(2)查找的字符串常量必需用定界符,字符串變量不用”&”。 (3)兩個(gè)命令用之前都必須按查詢(xún)的字段建立索引。學(xué)號(hào)姓名性別出生年月入??偡秩蒙?010110007金陽(yáng)男1992-3-18300TRUE2010110004劉民男1991-10-2570FALSE2010110002陳鋼男1993-3-24573TRUE2010110006李紅女1990-3-12578TRUE2010110003李花女1991-9-29585FALSE2010110001王小明男1992-8-13590F

50、ALSE2010110005張小莉女1992-3-1595FALSE例如: use 學(xué)生index on 學(xué)號(hào) tag xhindex on 入校總分 tag rxzffind 585dispseek 585dispset order to tag xhfind 2010110003dispseek '2010110003'dispset order to tag rxzffind 300+285 &&定位到入??偡譃?00分的記錄dispseek 300+285 &&定位到入校總分為585分的記錄。disp第五章 多表間操作5.1工作區(qū)基本感念

51、1、工作區(qū)的感念(1)工作區(qū)是為打開(kāi)表文件在內(nèi)存中開(kāi)辟的區(qū)域,VFP提供32767個(gè)工作區(qū),各工作區(qū)相互獨(dú)立,互不干擾。(2)一個(gè)工作區(qū)只能打開(kāi)一個(gè)表文件,當(dāng)新的表打開(kāi),在這個(gè)區(qū)以前打開(kāi)的表自動(dòng)關(guān)閉。一個(gè)表一般只能在一個(gè)工作區(qū)打開(kāi),當(dāng)這個(gè)表未關(guān)閉又在另外的工作區(qū)打開(kāi),會(huì)出現(xiàn)“文件正在使用”的提示。(3)可在工作區(qū)打開(kāi)一個(gè)表的同時(shí),打開(kāi)與表相關(guān)的備注文件和索引文件(多個(gè))。 (4)工作區(qū)編號(hào)1、2、3.10對(duì)應(yīng)用字母表示的工作區(qū)別名A、B、CJ,用戶(hù)根據(jù)需要選擇工作區(qū)編號(hào)或別名來(lái)打開(kāi)表。若未選擇工作區(qū)時(shí),系統(tǒng)默認(rèn)在1號(hào)區(qū)打開(kāi)表文件。2工作區(qū)的選擇命令:SELECT <工作區(qū)號(hào)>|&l

52、t;工作區(qū)別名>|<表別名>功能:選擇要打開(kāi)表的工作區(qū)。說(shuō)明:(1)所選擇工作區(qū)可用工作區(qū)編號(hào)1、2、3,或者工作區(qū)別名A、B、C,或者表的別名來(lái)標(biāo)記。(2)“表別名”是在打開(kāi)表時(shí),由“USE表文件名ALIAS表別名”命令指定,如果沒(méi)有用“ALIAS<表別名>”指定,可認(rèn)為<表文件名>就是<表別名>。(3)最后用SELETE命令選擇的工作區(qū)叫做當(dāng)前工作區(qū),其中的表文件叫做當(dāng)前表。(4)對(duì)當(dāng)前工作區(qū)中表的數(shù)據(jù)的訪問(wèn)直接使用字段名(也可加上別名),對(duì)其他工作區(qū)數(shù)據(jù)的訪問(wèn),就要在字段名前必須加上別名,調(diào)用格式:工作區(qū)別名->字段名| 表別名->字段名| 工作區(qū)別名.字段名| 表別名.字段名 (5)select 0 :選擇未被使用的最小工作區(qū)號(hào)。例如:select 1 Use 學(xué)生 Select 2 Use 課程 use 學(xué)生 alias xs in 3 again &&在3工作區(qū)再次打開(kāi)“學(xué)生”表同時(shí)取表的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論