版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Visual FoxPro程序設(shè)計(jì)教程,教師:徐紅波 E-mail: x_h_,第2章 表的操作,表是Visual FoxPro的基本內(nèi)容 數(shù)據(jù)庫(kù)的管理是對(duì)表的管理 表能夠?qū)崿F(xiàn)對(duì)數(shù)據(jù)的管理和加工 表中的數(shù)據(jù)可以供多個(gè)程序共享 VFP中的表分為自由表和數(shù)據(jù)庫(kù)表,2.1 表的建立,在VFP中表的建立方式有多種,本節(jié)只介紹用可視化的界面建立表和用命令建立表兩種方式。建表過程一般可分為三步: 確定表的結(jié)構(gòu) 用界面或命令建表 輸入表的內(nèi)容,表2.1 學(xué)生自然情況表,2.1.1 確定表的結(jié)構(gòu),一個(gè)二維表格是由列行組成,表的列稱為字段,表的行稱為記錄。字段是一種變量。字段變量類型可為表1.1數(shù)據(jù)類型中的所有
2、數(shù)據(jù)類型。由表2.1確定學(xué)生自然情況表的結(jié)構(gòu): 學(xué)號(hào)C(9)、姓名C(6)、性別C(2)、出生D、 團(tuán)否L、入學(xué)成績(jī)N(3)、近照G、備注M。,2.1.2 表的建立、修改、顯示,一個(gè)表的建立應(yīng)確定表建立在磁盤中的位置,這樣,在建立表后,需要打開表時(shí),按表在磁盤中的位置找到表將表打開。 用VFP可以建立默認(rèn)路徑,一旦默認(rèn)路徑建好,當(dāng)打開VFP時(shí)它自動(dòng)在默認(rèn)路徑上。,建立默認(rèn)路徑的方法:,通過界面建立 通過命令建立 SET DEFAULT TO f:table,1、建表,(1)用界面建表 1)用菜單打開表設(shè)計(jì)器 2)用命令打開表設(shè)計(jì)器 格式:CREATE 功能:打開表設(shè)計(jì)器創(chuàng)建表 3)用向?qū)?chuàng)建表
3、,(2)用命令創(chuàng)建表,格式: CREATE TABLE|DBF ( (), () ) 功能:創(chuàng)建表 說明:寬度對(duì)于數(shù)值型可以包括小數(shù)的位數(shù)。 如學(xué)生成績(jī)字段的寬度為5位,其中小數(shù)占2位,寫成N(5, 2),例2.1 用命令方式創(chuàng)建學(xué)生自然情況表,create table 學(xué)生 (學(xué)號(hào) C(9), 姓名 C(6), 性別 C(2), 出生 D,團(tuán)否 L,入學(xué)成績(jī) N(3),近照 G,備注 M),2、顯示表的結(jié)構(gòu),1)用界面顯示表的結(jié)構(gòu) 2)用命令顯示表的結(jié)構(gòu) 格式:LIST|DISPLAY STRUCTURE 功能:顯示當(dāng)前表的結(jié)構(gòu),例2.2 顯示學(xué)生表的結(jié)構(gòu) use 學(xué)生 list struc
4、ture,3、修改表的結(jié)構(gòu),一個(gè)表在建立以后,由于實(shí)際需要發(fā)生變化,或在建表時(shí)表的結(jié)構(gòu)就不對(duì),需要對(duì)已存在的表結(jié)構(gòu)進(jìn)行修改,VFP提供了界面與命令兩種方式。 (1)用界面修改表的結(jié)構(gòu) 1)用菜單打開表設(shè)計(jì)器修改表結(jié)構(gòu) 2)用命令打開表設(shè)計(jì)器修改表結(jié)構(gòu) 格式:MODIFY STRUCTURE 功能:打開表設(shè)計(jì)器。,例2.3 修改學(xué)生表的結(jié)構(gòu),將入學(xué)成績(jī)字段改為N(6,2),在備注字段前插入個(gè)人簡(jiǎn)歷字段,類型為M。,例2.4 將表的結(jié)構(gòu)回復(fù)為表2.1所示的結(jié)構(gòu),(2)用命令修改,格式: ALTER TABLE ADD ( , ) | ALTER ( , ) | RENAME TO | DROP 功
5、能:修改表的結(jié)構(gòu) 說明: 1、ADD子句增加新字 2、ALTER子句修改原有字段 3、DROP子句刪除字段 4、RENAME子句將字段2改名為字段2,例2.5,對(duì)學(xué)生表增加愛好字段C(20) 將愛好字段的類型改為C(30) 將愛好字段改名為特長(zhǎng) 刪除特長(zhǎng)字段 alter table 學(xué)生 add column 愛好 c(20) alter table 學(xué)生 alter column 愛好 c(30) alter table 學(xué)生 rename 愛好 to 特長(zhǎng) alter table 學(xué)生 drop 特長(zhǎng),2.1.3 表的打開、關(guān)閉及相關(guān)操作,1、表的打開 (1)用界面打開表 (2)用命令打開
6、表 格式:USE 功能:打開表,例2.6 用命令開打?qū)W生表,USE 學(xué)生,2、關(guān)閉表,(1)用界面關(guān)閉表 (2)用命令關(guān)閉表 格式:USE 功能:關(guān)閉當(dāng)前表,3、表的復(fù)制,1)文件的復(fù)制命令 格式:COPY FILES TO 功能:將文件1復(fù)制為文件2 在使用命令前文件1必須關(guān)閉 例2.7 將學(xué)生表復(fù)制成學(xué)生1表 copy files 學(xué)生.* to 學(xué)生1.* 2)顯示文本文件內(nèi)容命令 格式:TYPE 功能:顯示文本文件內(nèi)容,3)表文件的復(fù)制命令,COPY TO FOR WHILE FIELDS | FIELDS LIKE | FIELDS EXCEPT TYPE SDF|XLS| DELI
7、MITED WITH | WITH BLANK | WITH TAB 功能:將當(dāng)前表復(fù)制成一個(gè)由文件名指定的新表或其它類型的文件 說明: 1)VFP的范圍有4種:ALL表示所有記錄,NEXT N表示從當(dāng)前記錄算起N條記錄,RECORD 表示第N條記錄,REST從當(dāng)前記錄開始到表的最后一條記錄。若無(wú),系統(tǒng)默認(rèn)范圍為ALL。 2)FOR 、 WHILE 都為條件,但FOR與WHILE是有區(qū)別的,F(xiàn)OR是在指定范圍內(nèi)進(jìn)行判斷條件是否成立,而WHILE是當(dāng)在指定范圍中若遇到一個(gè)條件不滿足的就停止操作。當(dāng)FOR與WHILE同時(shí)存在,WHILE優(yōu)先。,3)FIELDS 用字段名表中的字段形成新文件 4)F
8、IELDS LIKE 用符合通配符的字段形成新文件。通配符可為*與?,*代表任意多個(gè)任意字符,?代表一個(gè)任意字符。 5)FIELDS EXCEPT 用除了符合通配符的字段形成新文件。 6)TYPE子句,當(dāng)形成新文件為文本文件時(shí),子句取SDF,數(shù)據(jù)之間無(wú)定界符和分隔符。當(dāng)取DELIMITED WITH BLANK時(shí)空格作為分隔符,無(wú)定界符。取DELIMITED WITH TAB時(shí),制表符作為分隔符,雙引號(hào)為定界符。當(dāng)形成文件為Excel文件時(shí),子句必須取XLS。,例2.8 將學(xué)生表中性別為男的復(fù)制為文本文件學(xué)生.txt,use 學(xué)生 copy to 學(xué)生.txt for 性別=男 type sd
9、f type 學(xué)生.txt,4)表結(jié)構(gòu)的復(fù)制,格式: COPY STRUCTURE TO FIELDS 功能:將當(dāng)前表復(fù)制為文件名指定的表且只復(fù)制結(jié)構(gòu)不復(fù)制數(shù)據(jù),例2.9 將學(xué)生表的結(jié)構(gòu)復(fù)制成學(xué)生2,use 學(xué)生 copy structure to 學(xué)生2 use 學(xué)生2 list structure,2.2 表的基本操作,2.2.1 記錄的顯示、追加、刪除、修改、插入 2.2.2 記錄指針的移動(dòng) 2.2.3 內(nèi)存變量與表之間的數(shù)據(jù)傳遞 2.2.4 記錄的篩選與排序 2.2.5 索引文件的建立 2.2.6 統(tǒng)計(jì)與計(jì)數(shù) 2.2.7 工作區(qū)與多表使用,2.2.1 記錄的顯示、追加、刪除、修改、插入
10、,1、記錄的顯示 (1)用界面顯示記錄 (2)用命令顯示記錄 格式1:BROWSE FIELDS ,格式2: LIST|DISPLAY FIELDS FOR WHERE OFF TO PRINT PROMPT | TO FILE 功能:按范圍與條件要求顯示記錄內(nèi)容。 說明: 1)LIST是滾動(dòng)顯示,即使?jié)M屏也不停止;DISPLAY是分屏顯示。 2)當(dāng)省略范圍子句時(shí)LIST默認(rèn)范圍為ALL,而DISPLAY默認(rèn)范圍是當(dāng)前記錄,即NEXT 1。 3)若使用OFF子句,記錄號(hào)不顯示。 4)TO PRINT子句,結(jié)果輸出到打印機(jī),若再用PROMPT在打印前會(huì)出現(xiàn)打印機(jī)設(shè)置對(duì)話框,可對(duì)打印機(jī)進(jìn)行相應(yīng)的設(shè)
11、置。 5)TO FILE 子句,結(jié)果輸出到由文件名指定的文件,文件的擴(kuò)展名默認(rèn)為.txt。,例2.10 顯示學(xué)生表:顯示全部?jī)?nèi)容,顯示性別為男的學(xué)生,顯示性別為女且輸出到g1.txt文件中,use 學(xué)生 browse browse fields 學(xué)號(hào), 姓名, 性別, 出生 list for 性別=男 list for 性別=女 to file g1.txt type g1.txt,2、追加記錄,(1)用界面追加記錄 (2)用命令追加記錄 格式1:APPEND BLANK 功能:向當(dāng)前表中追加記錄。若選BLANK是追加一條空白記錄,此空白記錄當(dāng)時(shí)不可編輯,用REPLACE等命令可對(duì)其進(jìn)行編輯。
12、,格式2: APPEND FROM FIELDS FOR 功能:從文件名指定的表文件中將符合條件的記錄追加到當(dāng)前表的尾部。,例2.11 在學(xué)生2表中追加一條空記錄。將學(xué)生1表中性別為男的學(xué)生記錄追加到表學(xué)生2中,use 學(xué)生2 append append from 學(xué)生1 for 性別=男,3、刪除表中記錄,刪除表中的記錄: 1、邏輯刪除:只是將記錄加了刪除標(biāo)記 2、物理刪除:將具有刪除標(biāo)記的記錄真正從表中刪除 (1)邏輯刪除與恢復(fù) 1)用界面為記錄加刪除標(biāo)記或去掉刪除標(biāo)記 2)用命令為記錄加刪除標(biāo)記與去掉刪除標(biāo)記,邏輯刪除命令格式: DELETE 范圍 FOR 功能:對(duì)滿足條件的記錄加刪除標(biāo)
13、記,若范圍省略,默認(rèn)范圍為當(dāng)前記錄即NEXT 1. 記錄恢復(fù)命令格式: RECALL 范圍 FOR 功能:為符合條件的記錄去掉刪除標(biāo)記,若范圍省略,默認(rèn)范圍為當(dāng)前記錄即NEXT 1.,(2)物理刪除記錄: 1)用界面進(jìn)行物理刪除 2)用命令進(jìn)行物理刪除 格式:PACK 功能:將帶有刪除標(biāo)記的記錄,從表中真正刪除 3)物理刪除表中所有記錄 格式:ZAP 功能:將表中所有記錄刪除,只保留表的結(jié)構(gòu),例2.12 將學(xué)生2表中性別為女的記錄邏輯刪除,物理刪除,將學(xué)生2表中的記錄全部物理刪除,use 學(xué)生2 delete all for 性別=女 list pack list zap list list
14、structure,4、修改記錄,(1)用界面修改記錄 1)顯示-瀏覽 2)在命令窗口上用命令EDIT或CHANGE,(2)用命令修改記錄,格式: REPLACE WITH , WITH FOR WHILE 功能:在指定范圍內(nèi)將符合條件的記錄中的相關(guān)字段用相關(guān)表達(dá)式來(lái)替換。若省略范圍,默認(rèn)范圍為NEXT 1,例2.13 將學(xué)生1表中入學(xué)成績(jī)?cè)?00500分之間的加10分,replace all 入學(xué)成績(jī) with 入學(xué)成績(jī)+10 for 入學(xué)成績(jī)=400 and 入學(xué)成績(jī)=500,5、插入記錄,格式:INSERT BEFORE BLANK 功能:插入一條記錄,若無(wú)BEFORE字符,則在當(dāng)前記錄
15、后插入一條新紀(jì)錄;當(dāng)有BEFORE子句時(shí)在當(dāng)前記錄之前插入一條新紀(jì)錄。當(dāng)有BLANK子句時(shí)插入一條空白記錄,當(dāng)時(shí)不能編輯,可用REPLACE、EDIT、CHANGE等命令進(jìn)行編輯,2.2.2 記錄指針的移動(dòng),1、用界面方式移動(dòng)記錄指針 2、用命令方式移動(dòng)記錄指針 1)絕對(duì)移動(dòng): 格式:GO | 功能:實(shí)現(xiàn)記錄指針的絕對(duì)移動(dòng)。當(dāng)用TOP子句時(shí)指針指向第一條記錄;當(dāng)用BOTTOM子句時(shí)指針指向最后一條記錄。當(dāng)用記錄號(hào)子句時(shí)指針指向記錄號(hào)確定的記錄,2)相對(duì)移動(dòng): 格式:SKIP +|-N 功能:N可為正、負(fù)整數(shù),當(dāng)N為正數(shù)時(shí)指針從當(dāng)前記錄向表尾方向移動(dòng)N條記錄。當(dāng)N為負(fù)數(shù)時(shí),指針從當(dāng)前記錄向表頭方
16、向移動(dòng)N條記錄,當(dāng)省略N時(shí),默認(rèn)N為1.,例2.14 go與skip的應(yīng)用,clear use 學(xué)生 go top go bottom go 2 skip 1 skip -1,2.2.3 內(nèi)存變量與表之間的數(shù)據(jù)傳遞,1、單條記錄與內(nèi)存變量的數(shù)據(jù)傳遞 (1)將當(dāng)前記錄字段數(shù)據(jù)傳送給內(nèi)存變量 SCATTER FIELDS |FIELDS LIKE |FIELDS EXCEPT MEMO TO |MEMVAR,例2.15 表與變量數(shù)據(jù)的傳送應(yīng)用,clear dimension a(8) use 學(xué)生2 go 3 scatter memvar ?m.學(xué)號(hào), m.姓名, m.性別, m.出生, m.團(tuán)否
17、, m.入學(xué)成績(jī) go 5 scatter to a ?a(1), a(2), a(3), a(4), a(5), a(6), a(7), a(8),(2)將內(nèi)存變量數(shù)據(jù)傳給當(dāng)前記錄 GATHER FROM | MEMVAR FIELDS | FIELDS LIKE | FIELDS EXCEPT MEMO,例2.16 內(nèi)存變量與表之間數(shù)據(jù)傳送的應(yīng)用,use 學(xué)生2 append from 學(xué)生1 append blank dimenson a(8) a(1)=105010106 a(2)=王小麗 a(3)=女 a(4)=1980-10-2 a(5)=.t. a(6)=100 gather f
18、rom a list append blank 學(xué)號(hào)=105010107 姓名=劉麗華 性別=女 出生=1981-10-3 gather memvar list,2、將多條記錄與數(shù)組傳送 (1)將多條記錄數(shù)據(jù)傳送給數(shù)組 COPY TO ARRAY FIELDS FOR WHILE ,例2.17 多條記錄數(shù)據(jù)傳送給數(shù)組,use 學(xué)生2 dimension b(2, 8) copy to array b ?b(1, 1), b(1, 2), b(1, 3), b(1, 4), b(1, 5), b(1, 6), b(1, 7), b(1, 8) ?b(2, 1), b(2, 2), b(2, 3)
19、, b(2, 4), b(2, 5), b(2, 6), b(2, 7), b(2, 8),(2)將數(shù)組數(shù)據(jù)追加到表中 APPEND FROM ARRAY FOR FIELDS ,例2.18 數(shù)組數(shù)據(jù)追加給表,use 學(xué)生2 append from array b list,2.2.4 記錄的篩選與排序,1、記錄的篩選 (1)設(shè)置篩選記錄條件命令 1)用界面方式 2)用命令方式 格式:SET FILTER TO 功能:設(shè)置訪問當(dāng)前表中記錄的條件。當(dāng)省略時(shí),取消所有條件。,例2.19 過濾器命令應(yīng)用,use 學(xué)生1 set filter to 性別=女 list set filter to li
20、st,(2)查找定位命令,格式:LOCATE FOR 功能:查找符合條件第一個(gè)記錄的位置,指針指向該記錄。若表中無(wú)符合條件的記錄,指針指向表尾。 說明:若符合條件的記錄有多條,可用CONTINUE繼續(xù)查找下一個(gè)符合條件的記錄。,例2.20 locate命令應(yīng)用,use 學(xué)生2 locate for 性別=男 ?found() display continue display,2、排序,在建表時(shí)沒有按一定順序建或者按某個(gè)字段的順序建表。在實(shí)際應(yīng)用中需要對(duì)字段的順序加以改變,或需要按另外一種或多種字段進(jìn)行有序排列的表。如何解決這類問題,VFP用sort排序命令來(lái)解決。 VFP中的排序是指根據(jù)條件,
21、由已存在表的內(nèi)容,產(chǎn)生另一個(gè)新的排序表,而原表不變。,格式: SORT TO ON /A|/D/C , /A|/D/D 范圍 FOR WHILE FIELDS | FIELDS LIKE | FIELDS EXCEPT 功能:在指定范圍內(nèi)將符合條件的記錄,按字段的升序或降序進(jìn)行排序,將排序的結(jié)果形成一個(gè)新的表。 說明:1)ON子句中為第1排序字段, 為第2排序字段。/A/B表示升序或降序排序,默認(rèn)為升序。/C不區(qū)分字段中的大小寫字母。2)M,G字段不能用于排序字段。,例2.21 sort命令應(yīng)用,use 學(xué)生1 sort to 學(xué)生3 on 出生 use 學(xué)生3 list,排序命令解決對(duì)已存在
22、表按實(shí)際需要,按某一個(gè)字段或多個(gè)字段排序的問題。由于它使原表不變而又形成了一個(gè)新表,這樣就在磁盤中造成了很大的冗余,浪費(fèi)了存儲(chǔ)空間。如何解決這樣的問題,VFP用索引文件來(lái)解決。,2.2.5 索引文件的建立1、索引的概念,索引是根據(jù)表中一個(gè)或多個(gè)字段建立的邏輯順序的文件。 索引不生成表文件,并不改變表的物理位置。 建立索引的字段稱為關(guān)鍵字。 索引文件的內(nèi)容只是關(guān)鍵字與記錄號(hào),占用存儲(chǔ)空間與排序表相比要小得多,存儲(chǔ)的是索引與表的映射關(guān)系。 它就像一本書的目錄一樣,由標(biāo)題查到在書中的頁(yè)碼,查找的速度很快。 當(dāng)對(duì)表記錄進(jìn)行增、刪、改操作時(shí),索引文件會(huì)隨著表而更新。,索引文件分類:,單索引文件: 只存儲(chǔ)
23、一個(gè)索引的索引文件,擴(kuò)展名為.IDX 標(biāo)準(zhǔn)單索引文件 壓縮單索引文件 復(fù)合索引文件 存儲(chǔ)多個(gè)索引的索引文件,擴(kuò)展名為.CDX 結(jié)構(gòu)化復(fù)合索引文件 非結(jié)構(gòu)化復(fù)合索引文件,索引方式:,主索引: 關(guān)鍵字不可重復(fù) 候選索引:關(guān)鍵字不可重復(fù) 唯一索引:關(guān)鍵字可重復(fù),與舊版本兼容 普通索引:關(guān)鍵字可重復(fù),2、建立索引,用界面建立結(jié)構(gòu)化復(fù)合索引 單字段索引 復(fù)合字段索引 用命令建立索引 INDEX ON TO | TAG OF FOR COMPACT ASCENDING|DESCENDING UNIQUE|CANDICATEADDITIVE 功能:建立索引文件或增加索引標(biāo)識(shí),說明: 1)索引關(guān)鍵字可以是單個(gè)
24、字段名,或用字段名組成的表達(dá)式。 2)TO子句是建立單索引文件。 3)TAG是建立復(fù)合索引標(biāo)識(shí),當(dāng)不選OF子句時(shí)建立的是與表同名的結(jié)構(gòu)化復(fù)合索引文件,當(dāng)選OF子句時(shí)建立的是非結(jié)構(gòu)化復(fù)合索引文件。 4)COMPACT用來(lái)指定單索引文件是壓縮的。復(fù)合索引總是壓縮的。 5)ASCENDING、DESCENDING子句表示升、降序,默認(rèn)為升序。 6)UNIQUE子句建立唯一索引。 7)CANDIDATE子句建立候選索引。 8)ADDITIVE子句建立該索引文件是不關(guān)閉以前打開的索引文件,默認(rèn)是關(guān)閉以前打開的索引文件。,例2.22 索引的應(yīng)用,use 學(xué)生 index on 學(xué)號(hào) to x1 uniqu
25、e list index on 性別+str(入學(xué)成績(jī)) to x2 list index on 入學(xué)成績(jī) tag s1 descending list index on 姓名 tag s2 candidate index on 姓名 tag s3 of x3,3、索引的使用,(1)打開索引文件 格式1:SET INDEX TO ADDITIVE 功能:打開當(dāng)前表索引 說明: 1)在中第一個(gè)為主控索引文件 2)省略ADDITIVE子句關(guān)閉當(dāng)前工作區(qū)除結(jié)構(gòu)化復(fù)合索引以外的所有索引文件 格式2:USE INDEX 功能:打開表與相應(yīng)的索引文件,例2.23 打開索引文件應(yīng)用,use 學(xué)生 set i
26、ndex to x1.idx, x2.idx, x3.cdx,(2)設(shè)置主控索引 格式: SET ORDER TO | | TAG OF ASCENDING | DECENDING 功能:設(shè)置主控索引文件 1)是指定主控索引文件或索引標(biāo)識(shí)編號(hào)。先按USE或INDEX出現(xiàn)順序打開的單索引文件,然后按創(chuàng)建順序指定結(jié)構(gòu)化復(fù)合索引表示的編號(hào),最后按創(chuàng)建順序指定非結(jié)構(gòu)化復(fù)合索引的編號(hào)。 2)是指定此索引文件為主控索引 3)TAG OF 指定結(jié)構(gòu)化、非結(jié)構(gòu)化復(fù)合索引文件中的索引標(biāo)識(shí)為主控索引。OF 適用于打開非結(jié)構(gòu)化復(fù)合索引文件。 4)無(wú)任何選項(xiàng)或SET ORDER TO 為取消主控索引 5)ASCEND
27、ING、DESCENDING用于重新設(shè)置主控索引文件升或降序。,例2.24 set order to應(yīng)用,set index to x1.idx, x2.idx, x3.cdx list set order to s1 list set order to s3 of x3.cdx list set order to use,(3)刪除索引 格式: DELETE TAG ALL | , 功能:刪除打開的復(fù)合索引文件的索引標(biāo)識(shí),例2.25 DELETE TAG應(yīng)用,use 學(xué)生1 index on 學(xué)號(hào) to x4 index on 性別 tag x5 delete tag all use,(4)
28、索引的更新 格式:REINDEX COMPACT 功能:重建當(dāng)前打開的索引文件。COMPACT子句可將已打開的.IDX索引文件轉(zhuǎn)為壓縮單索引文件,4、索引中的查詢命令,索引應(yīng)用于對(duì)關(guān)鍵字的快速查詢,VFP中有兩個(gè)索引查詢命令,F(xiàn)IND與SEEK (1)FIND命令 格式:FIND | 功能:在索引關(guān)鍵字中查找與指定的字符串或數(shù)值相匹配的第一條記錄。若找到,指針指向此記錄,否則指針指向表尾。用FOUND()函數(shù)判斷是否查找到。若用字符變量查找必須用&運(yùn)算符。若要查找下一個(gè)匹配記錄可用SKIP命令。字符串可不用定界符,但字符串若有前導(dǎo)與尾部空格要加定界符。,例2.26 find應(yīng)用,use 學(xué)生
29、index on 姓名 to x6 find 李立明 ?found() display x=劉美文 find &x ?found() display index on 入學(xué)成績(jī) to x7 find 620 ?found() display use,(2)SEEK命令 格式:SEEK 功能:在索引關(guān)鍵字中查找與表達(dá)式相匹配的第一條記錄。當(dāng)查找與之匹配的下一條記錄時(shí)可用SKIP命令。當(dāng)表達(dá)式為字符串時(shí)要求用定界符。表達(dá)式可為關(guān)鍵字所能取得任何一種類型。,例2.27 seek的應(yīng)用,use 學(xué)生 index on 性別 to x6 seek “男” ?found() display index o
30、n 出生 tag s3 seek 1979-3-21 ?found() display use,2.2.6 統(tǒng)計(jì)與計(jì)數(shù),1、計(jì)數(shù)命令 格式: COUNT FOR TO 功能:計(jì)算當(dāng)前表中指定范圍內(nèi)滿足條件的記錄個(gè)數(shù),且存于中。缺省范圍是指表的所有記錄,例2.28 count應(yīng)用,use 學(xué)生 count to x1 count for 性別=女 to x2 ?x1, x2 use,2、求和命令 格式: SUM FOR TO |ARRAY 功能:在當(dāng)前表中在指定范圍內(nèi)對(duì)符合條件的數(shù)值表達(dá)式表中的各表達(dá)式求和,且將結(jié)果一次存入內(nèi)存變量表中的變量或數(shù)組中。缺省范圍是指表的所有記錄。,例2.29 建立
31、學(xué)生成績(jī)表、學(xué)生成績(jī)F表,并統(tǒng)計(jì)各科成績(jī)的總分,create 學(xué)生成績(jī) index on 學(xué)號(hào) tag a1 sum 數(shù)學(xué),VFP,英語(yǔ) to x1, x2, x3 ?x1, x2, x3 create 學(xué)生成績(jī)F sum 原理,網(wǎng)絡(luò),C to array a ?a(1),a(2),a(3) use,3、求平均值命令 格式: AVERAGE FOR TO | ARRAY 功能:在當(dāng)前表中在指定范圍內(nèi)對(duì)符合條件的數(shù)值表達(dá)式表中的各表達(dá)式求平均值,且將結(jié)果依次存入內(nèi)存變量表中的變量或數(shù)組中。缺省范圍是指表的所有記錄。,例2.30 對(duì)學(xué)生成績(jī)、學(xué)生表中各數(shù)值字段求平均值,clear use 學(xué)生成績(jī)
32、 average 數(shù)學(xué), VFP, 英語(yǔ) to y1, y2, y3 ?y1, y2, y3 average 數(shù)學(xué), VFP, 英語(yǔ) to array b ?b(1), b(2), b(3) use 學(xué)生 average 入學(xué)成績(jī) to z1 ?z1,4、計(jì)算命令 格式: CALCULATE FOR TO | ARRAY 功能:在當(dāng)前表的指定范圍內(nèi)對(duì)符合條件的數(shù)值表達(dá)式表中的各數(shù)值表達(dá)式進(jìn)行計(jì)算。,例2.31 求學(xué)生成績(jī)表中數(shù)學(xué)、VFP的總分,VFP最高與最低分,clear use 學(xué)生成績(jī) calculate sum(數(shù)學(xué)), sum(VFP) to z1, z2 ?z1, z2 calcu
33、late min(VFP), max(VFP) to array a ?a(1), a(2) use,5、分類匯總命令 格式: TOTAL TO ON FIELDS FOR 功能:對(duì)已排序或已索引過的表,在指定范圍內(nèi)符合條件的記錄,按指定關(guān)鍵字相同的那些記錄進(jìn)行分組并對(duì)數(shù)值字段列向求和,對(duì)于非數(shù)值字段取組內(nèi)第一個(gè)記錄中的字段的值,每組形成一個(gè)新紀(jì)錄,將這些記錄按原來(lái)的順序形成由文件名指定的新表。,例2.32 建一個(gè)學(xué)生成績(jī)表1,內(nèi)容在表2.4基礎(chǔ)上增加姓名與性別字段,該兩個(gè)字段內(nèi)容參照表2.1建立。將學(xué)生成績(jī)表1按性別索引分類匯總,create 學(xué)生成績(jī)1 index on 性別 to x9
34、total to 學(xué)生成績(jī)h on 性別 use 學(xué)生成績(jī)h list use,2.2.7 工作區(qū)與多表使用,在實(shí)際應(yīng)用中很多情況都需要多表同時(shí)打開操作,同時(shí)從多表中獲取有價(jià)值的數(shù)據(jù)。這類問題VFP用工作區(qū)方式給予解決 一個(gè)工作區(qū)只能打開一個(gè)表,但VFP提供32767個(gè)工作區(qū),因此可以打開多個(gè)表。,1、工作區(qū),(1)指定表所在的工作區(qū) USE IN 工作區(qū)號(hào) 1)工作區(qū)號(hào)取值可為1-32767,若取0,則選擇一個(gè)未使用的最小編號(hào)工作區(qū)為當(dāng)前工作區(qū)。工作區(qū)號(hào)1-10也可用A-J字母表示。 2)SELECT()函數(shù)可以返回當(dāng)前工作區(qū)號(hào)。,(2)指定工作區(qū)命令 格式:SELECT 功能:由工作區(qū)號(hào)指
35、定一個(gè)當(dāng)前工作區(qū) (3)關(guān)閉工作區(qū)中的表 格式:CLOSE ALL 功能:關(guān)閉所有工作區(qū)打開的表,選擇工作區(qū)1為當(dāng)前工作區(qū),例2.34 select的應(yīng)用,select 1 use 學(xué)生專業(yè) index on 學(xué)號(hào) to xs1 list select 0 use 校專業(yè) list index on 專業(yè)號(hào) tag xs2 select 3 use 課程 list close all,(4)工作區(qū)字段互訪 格式:-字段名 | .字段名 功能:在當(dāng)前工作區(qū)訪問非當(dāng)前工作區(qū)中的字段,例2.35 工作區(qū)字段訪問應(yīng)用,select 1 use 學(xué)生專業(yè) use 校專業(yè) in 2 use 課程 in 3 select 1 list 學(xué)號(hào), 姓名, 專業(yè)號(hào),
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026中交新疆交通投資發(fā)展有限公司運(yùn)營(yíng)人員招聘27人備考考試試題及答案解析
- 2026廣東廣州南沙人力資源發(fā)展有限公司招聘地理教師備考考試題庫(kù)及答案解析
- 2026廣西柳州市融安縣公安局招聘警務(wù)輔助人員50人考試參考題庫(kù)及答案解析
- 2026遼寧省文物考古研究院招聘3人備考考試試題及答案解析
- 2026山東臨沂高新區(qū)部分事業(yè)單位招聘綜合類崗位工作人員5人考試備考題庫(kù)及答案解析
- 鄉(xiāng)村數(shù)字政務(wù)服務(wù)平臺(tái)搭建建設(shè)方案
- 化學(xué)分析技術(shù)文獻(xiàn)
- 2026年護(hù)理繼續(xù)教育移動(dòng)學(xué)習(xí)平臺(tái)高效應(yīng)用
- 2026年兒科過敏性鼻炎護(hù)理干預(yù)與家庭指導(dǎo)
- 游戲鍵盤介紹
- 會(huì)下金蛋的鵝課件
- GB/T 11880-2024模鍛錘和大型機(jī)械鍛壓機(jī)用模塊
- GB/T 43934-2024煤礦土地復(fù)墾與生態(tài)修復(fù)技術(shù)規(guī)范
- GB/T 13077-2024鋁合金無(wú)縫氣瓶定期檢驗(yàn)與評(píng)定
- 食品殺菌原理培訓(xùn)課件
- GB/T 10739-2023紙、紙板和紙漿試樣處理和試驗(yàn)的標(biāo)準(zhǔn)大氣條件
- 神經(jīng)內(nèi)科練習(xí)題庫(kù)及答案
- GB/T 42973-2023半導(dǎo)體集成電路數(shù)字模擬(DA)轉(zhuǎn)換器
- 肝性腦病教學(xué)查房課件
- 膜式壁制造及檢驗(yàn)工藝演示文稿
- 紅壤區(qū)貧瘠農(nóng)田土壤快速培肥技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論