vfp_數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作_第1頁
vfp_數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作_第2頁
vfp_數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作_第3頁
vfp_數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作_第4頁
vfp_數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2022-4-22Visual FoxPro 6.0程序設(shè)計1學習要點學習要點1、數(shù)據(jù)的分類和索引;2、記錄的查找定位;3、數(shù)據(jù)的統(tǒng)計和計算;4、多工作區(qū)操作。第第第第第第4 4 4章章章章章章 數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作2022-4-22Visual FoxPro 6.0程序設(shè)計2第第第第第第4 4 4章章章章章章 數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作數(shù)據(jù)的

2、檢索、統(tǒng)計與多工作區(qū)操作數(shù)據(jù)的檢索、統(tǒng)計與多工作區(qū)操作4.1 數(shù)據(jù)分類排序數(shù)據(jù)分類排序 4.2 數(shù)據(jù)的索引數(shù)據(jù)的索引 4.3 數(shù)據(jù)的查詢數(shù)據(jù)的查詢 4.4 數(shù)據(jù)的統(tǒng)計數(shù)據(jù)的統(tǒng)計 4.5 多工作區(qū)操作多工作區(qū)操作 返回返回退出退出小結(jié)小結(jié)2022-4-22Visual FoxPro 6.0程序設(shè)計34.1 4.1 4.1 數(shù)據(jù)分類排序數(shù)據(jù)分類排序數(shù)據(jù)分類排序數(shù)據(jù)分類排序數(shù)據(jù)分類排序數(shù)據(jù)分類排序分類:分類:將關(guān)鍵字段值相同的記錄按順序存放在一起,生成一個新的表文件。格式:格式:SORT TO ON /A | /D /C , /A | /D /C . ASCENDING|DESCENDING FOR

3、 WHILE FIELDS | FIELDS LIKE | FIELDS EXCEPT 功能:功能:對當前選定的表排序,并將排序后的記錄輸出到新表中。參數(shù)描述:參數(shù)描述:指定經(jīng)過排序后所生成的新表的表文件名。 ON :在當前選定的、要排序的表中指定關(guān)鍵字段,字段的內(nèi)容和數(shù)據(jù)類型決定了記錄在新表中的順序。 /A | /D /C:指定排序順序(升序或降序)。/A指定為按升序排序,/D指定按降序排序。如果在字符型字段名后面包含/C,則忽略大小寫??梢园?C選項與/A或/D選項組合起來。返返 回回2022-4-22Visual FoxPro 6.0程序設(shè)計4ASCENDING:將所有不帶/D的字段指定

4、為升序排列。DESCENDING:將所有不帶/A的字段指定為降序排列。如果省略ASCENDING 和DESCENDING參數(shù),則排序默認為升序。:指定需要排序記錄的范圍。默認范圍為ALL。FOR :在當前表中指定排序中只包含邏輯條件為“真”的記錄。 WHILE :指定一個條件,在當前表中只要的計算值為“真”,則依據(jù)此條件,排序中包含這條記錄。FIELDS :指定用SORT命令排序時所創(chuàng)建的新表中要包含的原表中的字段。如果省略FIELDS子句,新表中將包含原表中的所有字段。FIELDS LIKE :在新表中包含那些與字段梗概框架相匹配的原表字段。FIELDS EXCEPT :在新表中包含那些不與

5、字段梗概框架相匹配的原表字段。 2022-4-22Visual FoxPro 6.0程序設(shè)計54.2 4.2 4.2 數(shù)據(jù)的索引數(shù)據(jù)的索引數(shù)據(jù)的索引數(shù)據(jù)的索引數(shù)據(jù)的索引數(shù)據(jù)的索引 索引文件有二種,單索引文件和復合索引文件,而復合索引文件又可分為結(jié)構(gòu)復合索引文件和非結(jié)構(gòu)復合索引文件兩種。VFP對結(jié)構(gòu)復合索引文件提供了四種類型:主索引、候選索引、唯一索引和普通索引 。主索引是指關(guān)鍵字段或索引表達式中不允許出現(xiàn)重復值的索引,主要用于主表或被引用的表,用來在一個永久關(guān)系中建立參照完整性。一個表而言,只能創(chuàng)建一個主索引。 候選索引是可以作主關(guān)鍵字的索引,因為它不包含Null值或重復值。在數(shù)據(jù)表和自由表中

6、均可以為每個表建立多個候選索引。唯一索引不允許兩個索引具有相同的索引值,這種要求與主索引相同。為了保持與早期版本的兼容性,可以建立一個唯一索引,以指定字段的首次出現(xiàn)值為基礎(chǔ),選定一組記錄,并對記錄進行排序。普通索引可以用來對記錄排序和搜索記錄,它不強迫記錄中的數(shù)據(jù)具有唯一性。在一個表中可以有多個普通索引。 2022-4-22Visual FoxPro 6.0程序設(shè)計6選擇合適的索引類型可以以下列準則作為依據(jù): 1、如果需要排序記錄,以便顯示、查詢或打印,可以使用普通索引、候選索引或主索引。2、如果要在字段中控制重復值的輸入并對記錄排序,則對數(shù)據(jù)表可以使用主索引或候選索引,對自由表可以使用候選索

7、引。3、如果準備設(shè)置關(guān)系,則可以依據(jù)表在關(guān)系中所起的作用來分別使用普通索引、主索引或候選索引。4.2.1 建立索引建立索引 1、單索引文件的建立、單索引文件的建立 格式:格式:INDEX ON TO UNIQUE FOR ADDITIVE 功能:功能:對當前表中滿足條件的記錄,按的值建立一個索引文件,并打開此索引文件,其缺省的文件擴展名為.IDX。參數(shù)描述:參數(shù)描述: 用以指定記錄重新排序的字段或表達式。2022-4-22Visual FoxPro 6.0程序設(shè)計7可以是字段名,也可以是含有當前表中字段的合法表達式。表達式值的數(shù)據(jù)類型可以是字符型、數(shù)值型、日期型、邏輯型。若在表達式中包含有幾種

8、類型的字段名,常常需要使用類型轉(zhuǎn)換函數(shù)將其轉(zhuǎn)換為相同類型的數(shù)據(jù)。 UNIQUE:指定UNIPUE子句時,若有多條記錄的的值相同時,則只把第一次遇到的記錄進行排序加入到索引文件中;省略該子句時,則把所有遇到的記錄值都加入到索引文件中。ADDITIVE:若省略ADDITIVE子句,當為一個表建立新的索引文件時,除結(jié)構(gòu)復合索引文件外,所有其它打開的索引文件都將會被關(guān)閉;若選擇此選擇項,則已打開的索引文件仍然保持打開狀態(tài)。FOR :指定一個條件,只顯示和訪問滿足這個條件的表達式的記錄,索引文件只為那些滿足條件的表達式的記錄創(chuàng)建索引關(guān)鍵字。 2022-4-22Visual FoxPro 6.0程序設(shè)計8

9、分類與索引的區(qū)別分類與索引的區(qū)別1、分類要生成一個新的表文件,記錄的物理順序發(fā)生了改變;2、分類生成的表可以單獨使用。3、索引它并不生成新的表文件,僅僅是表中記錄的邏輯順序發(fā)生了變化,但索引也要生成一個新的文件,即索引文件。4、索引文件不能單獨使用,它必須同表一起配合使用。單索引文件總是按升序的順序排列。對于一個表文件,允許建立多個索引文件。 USE STUDENTINDEX ON 學號 TO XHSYLIST當執(zhí)行上述命令后屏幕顯示結(jié)果按學號排序2022-4-22Visual FoxPro 6.0程序設(shè)計92、復合索引文件的建立、復合索引文件的建立復合索引文件是由索引標記組成的,每個復合索引

10、文件可包含多個索引標記,每個索引標記都有標記名,一個索引標記相當于一個單索引文件。 格式:格式:INDEX ON TAG OF FOR ASCENDING | DESCENDING UNIQUEADDITIVE 功能:功能:建立和修改復合索引文件,并打開此索引文件,其缺省的文件擴展名為.CDX。 參數(shù)描述:參數(shù)描述:、FOR 、ADDITIVE:與上相同。TAG OF :創(chuàng)建一個復合索引文件。在TAG 參數(shù)中不包含可選的OF 子句時,便可以創(chuàng)建結(jié)構(gòu)復合索引文件。 2022-4-22Visual FoxPro 6.0程序設(shè)計10如果在TAG 參數(shù)后包含可選項OF 子句,則可以創(chuàng)建非結(jié)構(gòu)復合索引文

11、件。 ASCENDING | DESCENDING:ASCENDING 指定復合索引文件為升序,這是默認值。DESCENDING 指定復合索引文件為降序。UNIQUE:對于一個索引關(guān)鍵值,只有第一個滿足該值的記錄包含在.IDX文件或.CDX標識中。利用UNIQUE子句可以避免顯示或訪問記錄的重復值。 說明:說明:執(zhí)行上述命令時,系統(tǒng)先檢查指定的復合索引文件是否存在,若存在,在此文件中增加一個索引標記,若不存在,則建立此索引文件。標記名的命名規(guī)則與變量名的命名規(guī)則相同。單索引文件只能按升序排列,而復合索引文件既可以按升序排列也可以按降序排列,選擇DESCENDING為降序,選擇ASCENDING

12、為升序,缺省時約定為升序。 2022-4-22Visual FoxPro 6.0程序設(shè)計11表的顯示和訪問順序只由一個索引文件(主控索引文件)和標識(主控標識)控制。有一些命令使用主控索引文件和標識搜索記錄,但是在修改表時,所有已打開的索引文件都將被更新。3、在項目管理器中建立索引(1)利用表設(shè)計器的字段選項卡建立索引文件 第一步:選擇【數(shù)據(jù)】選項卡第二步:選擇要建立索引的表第三步:單擊【修改】按鈕系統(tǒng)打開表設(shè)計器2022-4-22Visual FoxPro 6.0程序設(shè)計12第四步:選擇要建立索引的關(guān)鍵字段第五步:在“索引”下拉列表框中選擇“無”、“升序”、“降序”,建立索引第六步:單擊【確

13、定】按鈕索引選項卡2022-4-22Visual FoxPro 6.0程序設(shè)計13(2)利用表設(shè)計器的索引選項卡建立索引文件)利用表設(shè)計器的索引選項卡建立索引文件 索引選項卡移動按鈕排序按鈕在此框中輸入索引標記在此列表框中選擇索引類型在此文本框中輸入索引表達式在此輸入條件表達式表達式生成按鈕返返 回回2022-4-22Visual FoxPro 6.0程序設(shè)計144.2.2 4.2.2 4.2.2 使用索引使用索引使用索引使用索引使用索引使用索引 1、打開索引文件 (1)在打開表時打開索引文件復合索引文件在打開表時將自動被打開。格式:格式:USE INDEX ORDER / /TAG OF A

14、SCENDING/ DESCENDING 功能:功能:打開指定的表,并且打開由指定的所有索引文件。說明:說明:雖然可以同時打開多個索引文件,但同一時間只能有一個單索引文件或是復合索引文件中的一個索引標識作為主控索引,記錄的操作和顯示由主控索引來控制。如果中排在第一位的是單索引文件,則該單索引就是主控索引,如果排在第一位的是復合索引文件,則還需要用ORDER子句規(guī)定主控索引,如果不使用ORDER子句,記錄將仍然按記錄號的順序顯2022-4-22Visual FoxPro 6.0程序設(shè)計15示。2)在ORDER子句中也可以使用單索引文件名、索引標記或數(shù)值表達式來規(guī)定主控索引。如:使用ORDER 則

15、規(guī)定一個單索引文件作為主控索引。3)使用ORDER TAG OF 規(guī)定一個子索引文件作為主控索引,ORDER子句中的索引可以是結(jié)構(gòu)復合索引文件中的索引標記,也可以是已經(jīng)打開的非結(jié)構(gòu)復合索引文件中的索引標記。4)使用ORDER 規(guī)定主控索引,以的值作為索引文件的序號,根據(jù)序號來確定主控索引文件。系統(tǒng)給打開的單索引文件和復合索引文件的索引標記編號的方法是:首先按照打開索引文件時的單索引文件名的排列順序編號,再按照結(jié)構(gòu)復合索引文件中索引標記建立的順序編號,最后按照非結(jié)構(gòu)復合索引文件中的索引標記建立的順序編號。2022-4-22Visual FoxPro 6.0程序設(shè)計16(2) 在打開表后打開索引文

16、件在打開表后打開索引文件格式:格式:SET INDEX TO /? ORDER /TAG OF ASCENDING/DESCENDING ADDITIVE 功能:功能:打開指定的索引文件或關(guān)閉索引文件。省略所有選項為關(guān)閉當前工作區(qū)中除結(jié)構(gòu)復合索引文件外的所有索引文件。參數(shù)描述:參數(shù)描述:指定要打開的一個或多個索引文件。索引文件列表中可以包含多個單索引和復合索引文件。索引文件列表中,第一個索引文件成為主控索引,它控制記錄的顯示和訪問。?:?:顯示打開對話框,從這個對話框中,可以選擇和打開一個單索引文件。ORDER :指定一個索引文件或標識為主控索引文件,數(shù)值表達式指定在索引文件列表中出現(xiàn)的索引文

17、件。2022-4-22Visual FoxPro 6.0程序設(shè)計17首先,按索引文件列表中出現(xiàn)的順序給單索引文件編號;然后,按照創(chuàng)建標識的先后順序,對復合索引文件中的標識編號;最后,按照創(chuàng)建文件的順序?qū)Κ毩⒌膹秃纤饕募械臉俗R進行編號。如果數(shù)值表達式為0,表中記錄以物理順序顯示和訪問,而索引文件保持打開狀態(tài)。 ORDER :指定一個單索引文件為主控索引。ORDER TAG OF :指定復合索引文件中的一個標識作為主控標識。標識名來自結(jié)構(gòu)化復合索引文件或獨立的復合索引文件。在打開的獨立復合索引文件中,如果存在相同名稱的標識,則要使用OF 指定標識所在的復合索引文件。ASCENDING/ DES

18、CENDING:指定顯示和訪問表記錄時,是以升序還是以降序進行。ASCENDING/ DESCENDING子句要跟在ORDER子句的后面。ADDITIVE:指定以前打開的索引文件(除結(jié)構(gòu)化復合索引文件外),在發(fā)出SET INDEX命令打開另一個索引文件時,是否仍打開。如果沒有該子句,將會關(guān)閉所有前面打開的文件。 2022-4-22Visual FoxPro 6.0程序設(shè)計18說明:說明:在有索引文件的表中,記錄的顯示順序和訪問順序可以由某個索引文件來決定。使用SET INDEX命令可以打開單索引文件和復合索引文件。如果一個表有結(jié)構(gòu)化復合索引文件,打開表時該文件自動打開。執(zhí)行不帶參數(shù)的SET I

19、NDEX TO 命令,會關(guān)閉當前工作區(qū)中所有打開的索引文件(結(jié)構(gòu)化復合索引文件除外)。 2、設(shè)置主控索引 如果在打開索引文件時未指定主控索引,打開索引文件之后需要指定主控索引,或者希望改變主控索引,可使用下面的命令。 格式:格式:SET ORDER TO /TAG OF ASCENDING/DESCEN-DING 功能:功能:在打開的索引文件中指定主控索引。參數(shù)描述:參數(shù)描述: 2022-4-22Visual FoxPro 6.0程序設(shè)計19:指定主控索引或標識的編號。數(shù)值表達式指定的是在USE或SET INDEX中列出的索引文件或標識的序號。:指定作為主控索引文件的單索引文件名。TAG OF

20、 :指定復合索引文件中的一個索引標識為主控索引標識名來自結(jié)構(gòu)復合索引文件或任何打開的獨立復合索引文件。如果在各打開的獨立復合索引文件中存在相同的標識名,應(yīng)使用OF 來指定包含此標記的復合索引文件。ASCENDING/DESCENDING:該參數(shù)用法同前。說明:說明:如果命令中不使用任選項,只寫SET ORDER TO,那么不會指定主索引,記錄仍按照記錄號的順序顯示,但并未關(guān)閉索引文件。VFP允許在SET ORDER命令中使用ASCENDING和DESCENDING暫時轉(zhuǎn)換主控索引的順序,但它不同于SORT ON 命令中的ASCENDING和DESCENDING。2022-4-22Visual

21、FoxPro 6.0程序設(shè)計20當數(shù)值表達式的值為0時,或省略所有可選項,則恢復表文件的自然順序,但不關(guān)閉索引文件。在打開的索引文件中,只有主控索引文件是有效。3、索引文件的重建或更新、索引文件的重建或更新當表中的記錄當生變化時,如果未打開索引文件,索引文件(結(jié)構(gòu)復合索引文件除外)不會自動更新,要更新這些索引文件,可用下列命令: 格式:格式:REINDEX 功能:功能:重建當前打開的所有索引文件。說明:說明:使用REINDEX命令之前,必須首先打開需要重建索引的全部索引文件。對使用包含UNIQUE關(guān)鍵字的INDEX命令或SET UNIQUE ON命令創(chuàng)建的索引文件,在重建索引時,仍保持UNIQ

22、UE狀態(tài)。 返返 回回2022-4-22Visual FoxPro 6.0程序設(shè)計214.3 4.3 4.3 數(shù)據(jù)的查詢數(shù)據(jù)的查詢數(shù)據(jù)的查詢數(shù)據(jù)的查詢數(shù)據(jù)的查詢數(shù)據(jù)的查詢 4.3.1 直接查詢命令直接查詢命令 返返 回回退退退退退退 出出出出出出4.3.2 快速查詢命令快速查詢命令 4.3.3 對話查詢對話查詢 2022-4-22Visual FoxPro 6.0程序設(shè)計224.3.1 4.3.1 4.3.1 4.3.1 4.3.1 4.3.1 直接查詢命令直接查詢命令直接查詢命令直接查詢命令直接查詢命令直接查詢命令 直接查詢也叫順序查詢,是按照記錄的物理順序逐個比較,逐個查詢。1、LOCAT

23、E命令命令 格式:格式:LOCATE FOR WHILE 功能:功能:按順序搜索表,從而找到滿足指定邏輯表達式的第一個記錄。參數(shù)描述:參數(shù)描述:指定要定位的記錄范圍。只有在范圍內(nèi)的記錄才被定位。LOCATE命令的默認范圍是ALL。FOR :LOCATE命令按順序搜索當前表以找到滿足邏輯表達式的第一個記錄。若邏輯表達式是可優(yōu)化的表達式,則Rushmore優(yōu)化由LOCATE FOR 創(chuàng)建的查詢。為了獲得最佳執(zhí)行效果,可在FOR子句中使用可優(yōu)化的表達式。 2022-4-22Visual FoxPro 6.0程序設(shè)計23WHILE :指定一個條件,只要邏輯表達式計算值為真,就繼續(xù)查找記錄。說明:說明:

24、(1)被搜索的表不必有索引。(2)若LOCATE發(fā)現(xiàn)一個滿足條件的記錄,就將記錄指針定位在該記錄上??梢允褂肦ECNO()返回該記錄的記錄號,同時FOUND()函數(shù)返回“真”,EOF()函數(shù)返回“假”。如果沒有找到,則將記錄指針指向范圍的最后一個記錄,同時將FOUND()函數(shù)值置為“假”,屏幕上顯示“已到定位范圍末尾”。(3)如果執(zhí)行SET EXCAT OFF命令后,再用LOCATE命令查找字符型數(shù)據(jù)時,不要求字符型數(shù)據(jù)精確匹配。 (4)該命令只能查找第一條滿足條件的記錄。若表中有多條滿足條件的記錄,當已經(jīng)找到一條滿足條件的記錄后,還想繼續(xù)查找后面滿足條件的記錄時,可以使用 CONTINUE

25、命令繼續(xù)向后查找滿足條件的記錄。2022-4-22Visual FoxPro 6.0程序設(shè)計242、CONTINUE命令命令 格式:格式:CONTINUE 功能:功能:它使LOCATE命令從當前記錄開始繼續(xù)查找下一條滿足條件的記錄。說明:說明:CONTINUE是用在LOCATE之后繼續(xù)查找滿足同一條件的記錄的命令,它繼續(xù)LOCATE的操作。CONTINUE命令移動記錄指針到下一個與邏輯表達式相匹配的記錄上。CONTINUE命令能被重復執(zhí)行直到記錄指針到表的結(jié)尾或到指定范圍的尾部。如果CONTINUE命令成功地查找到了一條記錄,RECNO()函數(shù)將返回該記錄的記錄號,并且 FOUND()函數(shù)返回

26、邏輯“真”值和EOF()返回邏輯“假”值。如果CONTINUE命令沒有查找到滿足條件的記錄,RECNO()函數(shù)返回在table plus one中的記錄數(shù), FOUND()函數(shù)返回邏輯“假”值,并且EOF()函數(shù)返回邏輯“真”值。 返返 回回2022-4-22Visual FoxPro 6.0程序設(shè)計254.3.2 4.3.2 4.3.2 快速查詢命令快速查詢命令快速查詢命令快速查詢命令快速查詢命令快速查詢命令 用LOCATE命令查詢的優(yōu)點是不論表中的記錄是否有序都能進行查找,而其主要的缺點是查找速度慢。當表中的記錄較多,并且要查詢的記錄又在表的底部時,問題尤為突出。為了解決這一問題,VFP提

27、供了二條快速查詢命令:FIND和SEEK。1、FIND命令:命令: 格式:格式:FIND / 功能:功能:它在已經(jīng)建立索引并且表文件和索引文件均已打開的表中查找索引關(guān)鍵值與指定的字符串或數(shù)值型常量相匹配的第一條記錄。如果找到,則把記錄指針指向該記錄,并且將FOUND()函數(shù)的值置為“真”;如果沒有找到與其相符的記錄,則將記錄指針指向表的末尾,且將FOUND()函數(shù)的值置為“假”,將EOF()函數(shù)的值置為“真”。 說明:說明:FIND命令是在索引文件中查詢,找到后根據(jù)記錄號從表文2022-4-22Visual FoxPro 6.0程序設(shè)計26件中讀出相應(yīng)的記錄。因為一個表在同一時刻只能有一個索引

28、文件或一個索引標記為主控索引,因此,利用FIND命令來查找記錄時,只能查找主控索引字段的值。查詢的值可以是字符串,也可以是數(shù)值。通常字符串可以不用定界符括起來,但是當字符是以空格開始時,則必須用定界符括起來;如果要查找的字符串是以定界符開頭時,就必須用不同的定界符將其括起來。查詢的值如果是字符串,它可以是索引關(guān)鍵表達式值的全部或前幾個字符,但不能是中間的或是后面的字符。查找字符串時,只要索引表達式(建立索引文件時使用的索引表達式)是字符型的,就可以使用FIND命令查找,并要求組成索引表達式的字段必須是字符型的。執(zhí)行SET EXACT命令后,再用FIND命令查找字符串時,字符串可以是索引表達式值

29、的全部或是從首字符開始的一個子串。如果執(zhí)行了SET EXACT ON命令后再用FIND命令來查找字符串,則字符串只能和索引表達式的值精確匹配,即只能是2022-4-22Visual FoxPro 6.0程序設(shè)計27索引表達式的值的全部。建立索引文件時,索引表達式可以是多個字段組成的表達式,若字段之間用“+”連接,用FIND命令查詢時,查詢內(nèi)容應(yīng)當是包含空格符在內(nèi)的索引表達式值的全部或是從首字符開始的一個子串,究競是用哪一種,這取決于SET EXACT命令的設(shè)置;若字段之間用“-”號連接,用FIND查找時,查詢內(nèi)容應(yīng)當不包含空格符在內(nèi)的索引表達式值的全部或是從首字符開始的一個子串。FIND命令只

30、能使記錄指針定位于第一條符合條件的記錄,而CONTINUE命令又不能和FIND命令一起配合使用,當符合條件的記錄不止一條時,可用FIND先查到滿足條件的第一條記錄,因為記錄是根據(jù)索引關(guān)鍵表達式排序了的,因此符合條件的記錄是在一起的,因此可用SKIP命令配合DISP命令查找,直到發(fā)現(xiàn)某條記錄不滿足條件時為止,此記錄以后的記錄肯定不符合條件。 2022-4-22Visual FoxPro 6.0程序設(shè)計282、SEEK命令:命令: 格式:格式:SEEK ORDER / TAG OF ASCENDING/ DESCENDING 功能:功能:在打開的索引文件中快速查找與相匹配的第1 條記錄。參數(shù)描述:

31、參數(shù)描述:指定SEEK搜索的關(guān)鍵字??梢允强兆址RDER /TAG OF ASCENDING/DESCENDING:指定是以哪一個索引或索引標記為主控索引。其使用方法同設(shè)置主控索引。說明:說明:當省略所有的可選項時,SEEK命令與FIND命令的功能基本2022-4-22Visual FoxPro 6.0程序設(shè)計29相同,但SEEK命令的功能更強,SEEK命令不僅可以查找字符串和常數(shù),它還可以查找字符型、數(shù)值型、日期型或邏輯型表達式的值。用SEEK命令查找字符串常量時,字符串常量必須放在定界符中。SEEK命令中的表達式必須和索引表達式的類型相同。3、順序查詢和快速查詢比較、順序查詢和快速查

32、詢比較 LOCATE FIND SEEK 查詢內(nèi)容 可以是字符型、數(shù)值型、日期型、邏輯型表達式,還可以查找備注型字段 可以是字符型、數(shù)值型、日期型表達式或邏輯型字段 字 符 串 常量或常數(shù) 對表的要求 無論是否建立了索引文件均可方便地查詢 必須建立并打開索引文件,只能在主控索引文件中查詢 同左 命令特點 可使用子句限定查詢范圍, 可與 CONTINUE 命令配合使用,找出表中全部符合條件的記錄 在整個表中查詢,只能找出滿足條件的第一條記錄 同左 查詢速度 慢 快 快 返返 回回2022-4-22Visual FoxPro 6.0程序設(shè)計304.3.3 4.3.3 4.3.3 對話查詢對話查詢對

33、話查詢對話查詢對話查詢對話查詢 格式:格式:GETEXPR TO TYPE ; DEFAULT 功能:功能:通過命令GETEXPR啟動表達式生成器對話框,從中可以創(chuàng)建表達式,并把表達式存入內(nèi)存變量或數(shù)組元素中,然后通過LOCATE命令宏代換進行查詢,此命令常用于程序中。 參數(shù)描述:參數(shù)描述:指定在“表達式生成器”中顯示的標題,該標題可提示生成何種類型的表達式。TO :指定存儲表達式的內(nèi)存變量或數(shù)組元素。如果此內(nèi)存變量不存在,VFP將創(chuàng)建該變量。該命令不創(chuàng)建數(shù)組元素。如果按Esc鍵或選擇【取消】按鈕退出“表達式生成器”,將在內(nèi)存變量或數(shù)組元素中存儲空字符串。如果已經(jīng)用DEFAULT子句創(chuàng)建了某個

34、默認的表達式,在按Esc鍵或選擇2022-4-22Visual FoxPro 6.0程序設(shè)計31【取消】按鈕退出“表達式生成器”時,將把這個默認表達式存儲在內(nèi)存變量中。TYPE ;:指定表達式類型:C-字符型、N-數(shù)值型、D-日期型、L-邏輯型、T-日期時間型、F-浮點型、I-整型、B-雙精度型、Y-Currency(貨幣型)。:定義錯誤提示信息文本,如果是非法的,可以用指定要顯示的錯誤信息,和必須用分號分隔。、分號、的結(jié)合體必須用一對單引號或雙引號定界起來。DEFAULT :指定在“表達式生成器”中顯示初始的默認表達式。GETEXPR命令可以按受這個默認的表達式,該默認表達式也可用指定的表達

35、式改寫。如果調(diào)用GETEXPR命令而沒有輸入表達式,則該默認的表達式將作為輸入的表達式存儲到內(nèi)存變量中。 2022-4-22Visual FoxPro 6.0程序設(shè)計32例:通過GETEXPR獲取LOCATE命令中查詢條件,以實現(xiàn)任意條件的查詢。 GETEXPR 輸入查詢條件輸入查詢條件 TO CXTJ TYPE L;輸入條件錯;輸入條件錯誤誤 DEFAULT 性別性別=男男 啟動表達式生成器指定表達式框中的表達式為邏輯型,且當表達式不為邏輯型時提示“輸入條件錯誤”。指定保存表達式的內(nèi)存變量返返 回回2022-4-22Visual FoxPro 6.0程序設(shè)計334.4 4.4 4.4 數(shù)據(jù)的

36、統(tǒng)計數(shù)據(jù)的統(tǒng)計數(shù)據(jù)的統(tǒng)計數(shù)據(jù)的統(tǒng)計數(shù)據(jù)的統(tǒng)計數(shù)據(jù)的統(tǒng)計 4.4.1 求記錄個數(shù)的命令求記錄個數(shù)的命令 返返 回回退退退退退退 出出出出出出4.4.2 求和命令求和命令 4.4.3 求平均值命令求平均值命令 2022-4-22Visual FoxPro 6.0程序設(shè)計344.4.1 4.4.1 4.4.1 求記錄個數(shù)的命令求記錄個數(shù)的命令求記錄個數(shù)的命令求記錄個數(shù)的命令求記錄個數(shù)的命令求記錄個數(shù)的命令 格式:格式:COUNT FOR WHILE TO 功能:功能:統(tǒng)計當前表中指定范圍內(nèi)滿足條件的記錄個數(shù),并存于中。參數(shù)描述:參數(shù)描述:、子句的用法和前面所有命令的用法是一樣的。若使用、子句,可統(tǒng)計

37、出指定內(nèi)滿足的記錄個數(shù),否則統(tǒng)計表中的記錄的總數(shù)。對COUNT命令,默認的范圍是ALL。若使用任選項TO 可選項,可將統(tǒng)計的結(jié)果送到內(nèi)存變量中保存,否則將統(tǒng)計結(jié)果顯示在屏幕上(SET TALK ON)。 例:例:USE STUDENT SET EXACT OFF COUNT FOR 姓名=李.OR.姓名=王 TO RS返返 回回2022-4-22Visual FoxPro 6.0程序設(shè)計354.4.2 4.4.2 4.4.2 求和命令求和命令求和命令求和命令求和命令求和命令 格式:格式:SUM FOR WHILE TO /TO ARRAY 功能:功能:對當前表中指定范圍內(nèi)滿足條件的數(shù)值型字段或

38、是由字段組成的數(shù)值型表達式累加求和,并把結(jié)果存放在對應(yīng)的標識的變量中。若使用任選項,則只對中的各表達式累加求和,否則將對當前表中的所有數(shù)值型字段累加求和,數(shù)值型字段之間或表達式之間用逗號分隔開。若使用 TO ,可將求出的各表達式的值依次賦給各內(nèi)存變量,但要注意:表達式表中的表達式的個數(shù)應(yīng)該與內(nèi)存變量表中的變量個數(shù)相等,若省略,內(nèi)存變量的個數(shù)應(yīng)該與數(shù)值型字段的個數(shù)相等。也可將求出的各表達式的值存放于指定的數(shù)組中,一個數(shù)組元素等同于一個內(nèi)存變量。 返返 回回2022-4-22Visual FoxPro 6.0程序設(shè)計364.4.3 4.4.3 4.4.3 求平均值命令求平均值命令求平均值命令求平均

39、值命令求平均值命令求平均值命令 格式:格式:AVERAGE FOR WHILE TO | TO ARRAY 功能:功能:對當前表中指定范圍內(nèi)滿足條件的記錄的數(shù)值型字段求算術(shù)平均值,并把結(jié)果存入中或存入指定的數(shù)組中。 說明:說明:AVERAGE和SUM命令的不同之處僅僅在于前者是求數(shù)值型字段或數(shù)值型表達式的平均值,而后者是求和。 若省略,約定為ALL,若省略,約定為當前表中的所有的數(shù)值型和浮點型字段。若省略和,則不保留結(jié)果,若系統(tǒng)設(shè)置為SET TALK ON則只顯示,否則不顯示。返返 回回2022-4-22Visual FoxPro 6.0程序設(shè)計374.5 4.5 4.5 多工作區(qū)操作多工作區(qū)

40、操作多工作區(qū)操作多工作區(qū)操作多工作區(qū)操作多工作區(qū)操作 4.5.1 工作區(qū)與多個表工作區(qū)與多個表 返返 回回退退退退退退 出出出出出出4.5.2 表的關(guān)聯(lián)表的關(guān)聯(lián) 4.5.3 表的連接表的連接 2022-4-22Visual FoxPro 6.0程序設(shè)計384.5.1 4.5.1 4.5.1 工作區(qū)與多個表工作區(qū)與多個表工作區(qū)與多個表工作區(qū)與多個表工作區(qū)與多個表工作區(qū)與多個表 1、工作區(qū)號與別名、工作區(qū)號與別名 VFP6提供了多達32767個工作區(qū),每個工作區(qū)都有一個工作區(qū)號,分別用132767表示,其工作區(qū)110還分別對應(yīng)有別名AJ。系統(tǒng)規(guī)定,用工作區(qū)號作為各個工作區(qū)的標識符,即數(shù)字1-327

41、67;同時還規(guī)定,可以用工作區(qū)的別名作為工作區(qū)的標識符,A-J這10個字母是工作區(qū)的標識符,因此,單個字母A-J是不能用來作為表的文件名的,它是系統(tǒng)的保留字。 每個打開的表也都有一個別名,當用命令USE 打開表時,系統(tǒng)默認的表的別名就是該表的主文件名。如果在打開表時,在USE命令后面使用了ALIAS參數(shù)指定了表的別名,則可為表另外起一個別名,這時的表文件名就不再是表的別名。 打開表親為表指定一個別名打開表親為表指定一個別名命令:命令:USE ALIAS IN AGAIN 2022-4-22Visual FoxPro 6.0程序設(shè)計39功能:功能:在指定的工作區(qū)打開指定的表文件,并為該表文件起一

42、個別名。若省略可選項時,系統(tǒng)將取表的主文件名作為該表文件的別名,并且是在當前工作區(qū)中打開表文件。參數(shù)描述:參數(shù)描述:IN /:指定要選擇的工作區(qū)。其中:工件區(qū)號、工作區(qū)別名都是直接指定的工作區(qū),但不是直接指定的工作區(qū),而是通過在已打開表文件,且別名為的工作區(qū)中先將該表文件關(guān)閉,然后再打開指定的表文件。如果省略該選擇項,則為當前工作區(qū)。ALIAS :為要打開的表指定一個別名。AGAIN:若要在多個工作區(qū)中打開一個表,可以按以下方法操作:(1)選擇另一個工作區(qū),并執(zhí)行帶有表名和AGAIN子句的USE命令。(2)執(zhí)行帶有表名和AGAIN子句的USE命令,并且用IN子句指定一個不同的工作區(qū)。 2022

43、-4-22Visual FoxPro 6.0程序設(shè)計402、工作區(qū)的選擇與多表文件的打開與關(guān)閉、工作區(qū)的選擇與多表文件的打開與關(guān)閉 若想改變當前工作區(qū),則可使用SELECT命令來轉(zhuǎn)換當前工作區(qū)。 格式:格式:SELECT /0功能:功能:選擇一個工作區(qū)作為當前工作區(qū)。說明:說明:選擇一個工作區(qū)作為當前工作區(qū),使該工作區(qū)打開的表成為當前表,要選擇的工作區(qū),可使用工作區(qū)號作為標識符,也可以用工作區(qū)的別名來作為工作區(qū)的標識符。若選擇0,則系統(tǒng)自動選取當前未使用的最小工作區(qū)號作為當前的工作區(qū)。例如,輸入下列命令:SELECT 3USE STUDENT ALIAS XSSELECT 1USE SCORE

44、USE SCORE ALIAS CJ IN XS AGAIN 2022-4-22Visual FoxPro 6.0程序設(shè)計41使用使用CLOSE命令關(guān)閉打開的表文件命令關(guān)閉打開的表文件 格式格式1:CLOSE DATABASE 功能:功能:關(guān)閉當前打開的數(shù)據(jù)庫和所有打開的表文件,并使1號工作區(qū)成為當前工作區(qū)。 格式格式2:CLOSE TABLE 功能:功能:關(guān)閉當前打開的所有表,不改變當前工作區(qū)。 格式格式3:CLOSE ALL 功能:功能:關(guān)閉所在所有工作區(qū)中打開了的表、表和單索引文件并且選擇1號工作區(qū)為當前工作區(qū)。CLOSE ALL同時也關(guān)閉任何用 FCREATE()(該函數(shù)用于創(chuàng)建并且打

45、開一個低級文件)和FOPEN()打開的低級文件函數(shù)。但CLOSE ALL不關(guān)閉用SET PRINT命令打開的文件。 2022-4-22Visual FoxPro 6.0程序設(shè)計42使用使用USE命令關(guān)閉打開的表文件命令關(guān)閉打開的表文件 格式:格式:USE IN / 功能:功能:關(guān)閉指定工作區(qū)中的表文件。其中:其中:別名可以是工作區(qū)的別名,也可以是表的別名。在單工作區(qū)操作時,用戶只能操作當前工作區(qū)中的表,而在多工作區(qū)操作時,用戶除了可以操作當前工作區(qū)中的記錄外,還可以操作其它工作區(qū)中的表,實現(xiàn)多個表文件之間的數(shù)據(jù)處理。在當前工作區(qū)調(diào)用其它工作區(qū)的數(shù)據(jù)時,非當前工作區(qū)中的表文件的字段名前要加上該表

46、文件的和“-”符號,或者是和符號”.”。格式如下。 - 或. SELECT 2USE SCORE ALIAS CJSELECT 1USE STUDENTDISPLAY 學號,姓名,班級,CJ.高等數(shù)學,CJ.普通物理返返 回回2022-4-22Visual FoxPro 6.0程序設(shè)計434.5.2 4.5.2 4.5.2 表的關(guān)聯(lián)表的關(guān)聯(lián)表的關(guān)聯(lián)表的關(guān)聯(lián)表的關(guān)聯(lián)表的關(guān)聯(lián) 如果在多個工作區(qū)同時打開多個表文件,在當前工作區(qū)中移動表的記錄指針時,其它表的記錄指針是不會隨之移動 。如果要想其它表的記錄指針也隨之移動,則要建立表間的關(guān)聯(lián)。 關(guān)聯(lián)就在二個或二個以上的表之間建立某種聯(lián)接,使其表的記錄指針同

47、步移動。用來建立關(guān)聯(lián)的表稱為父表,被關(guān)聯(lián)的表稱為子表。 1、建立關(guān)聯(lián)、建立關(guān)聯(lián) 格式:格式:SET RELATION TO INTO / , INTO / IN /ADDITIVE 功能:功能:在兩個表之間建立關(guān)聯(lián)。參數(shù)描述:參數(shù)描述:指定用來在子表和父表之間建立關(guān)聯(lián)的關(guān)聯(lián)表達式。關(guān)聯(lián)表達式經(jīng)常是子表主控索引的索引表達式。2022-4-22Visual FoxPro 6.0程序設(shè)計44可以是下列三種參數(shù)之一:1、是記錄號函數(shù)RECNO()。此時,兩個或多個關(guān)聯(lián)表之間的聯(lián)系是根據(jù)記錄號來進行關(guān)聯(lián)的,關(guān)聯(lián)表與被關(guān)聯(lián)表之間當前記錄號保持相等。如果關(guān)聯(lián)表記錄的記錄號大于被關(guān)聯(lián)表的記錄總數(shù),則被關(guān)聯(lián)表的

48、當前記錄指針指向最后一條記錄的下一條記錄,EOF()函數(shù)值為.T.。 SELECT 2USE SCORE ALIAS CJSELECT 1USE STUDENTSET RELATION TO RECNO() INTO CJ 2、是數(shù)值型表達式。此時,在表達式中通常含有RECNO()函數(shù),每當關(guān)聯(lián)表的記錄指針重新定位時,被關(guān)聯(lián)表的記錄指針將重新定位于的值所對應(yīng)的記錄之上。如果的值大于被關(guān)聯(lián)表文件的記錄總數(shù),則被關(guān)聯(lián)表2022-4-22Visual FoxPro 6.0程序設(shè)計45文件的當前記錄指針指向最后一條記錄的下一條記錄,EOF()函數(shù)值為.T.。 SELECT 2USE SCORE ALI

49、AS CJSELECT 1USE STUDENTSET RELATION TO 3*RECNO()-2 INTO CJ 3、選擇二個表的公共字段建立關(guān)聯(lián),使用這種方法時,要求被關(guān)聯(lián)的表文件必須是按指定的公共關(guān)聯(lián)字段建立并打開了索引文件。 SELECT 2USE SCORE ALIAS CJINDEX ON 學號 TO XHSYSELECT 1USE STUDENT SET RELATION TO 學號 INTO CJ 2022-4-22Visual FoxPro 6.0程序設(shè)計46INTO /:指定被關(guān)聯(lián)表的工作區(qū)或別名,也可以是被關(guān)聯(lián)表的別名。ADDITIVE:建立關(guān)聯(lián)時,如果命令中不使用ADDITIVE子句,則父表以前建立的關(guān)聯(lián)將自動解除;若使用了ADDITIVE子句,則父表以前建立的關(guān)聯(lián)仍然保留。 說明:說明:在建立關(guān)聯(lián)之前,必須打開一個表(父表),而且還必須在另一個工作

溫馨提示

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

評論

0/150

提交評論