




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2023/7/231VisualFoxPro自由表2023/7/232
本章要點建立表結構輸入表記錄表的打開與關閉表字段的基本操作表結構的修改表記錄的基本操作表的復制表的排序與索引查詢數(shù)據(jù)統(tǒng)計與計算思考題2023/7/2333.1建立表結構1.命令方式【格式】CREATE[<表文件名>|?]【功能】建立一個新的、擴展名為.DBF的表文件。【說明】<表文件名>指定生成的表文件名,若缺省擴展名,則默認為.DBF。如果使用“?”或末指定表文件名,VisualFoxPro系統(tǒng)會彈出創(chuàng)建對話框,以便用戶輸入表名。2023/7/2342.菜單方式選擇【文件】|【新建】打開新建對話框,選擇“表”,單擊“新建文件”出現(xiàn)創(chuàng)建對話框,確定需要建立表的路徑和表名,按“保存”按鈕后,出現(xiàn)“表設計器”對話框。以下步驟同命令方式。確定表中每個字段的字段名、字段類型、字段寬度和小數(shù)位數(shù)等。2023/7/235●字段名:是某字段的名字。在表中必須為唯一的,字段名必須以漢字、字母和下劃線開頭,由漢字、字母、數(shù)字和下劃線組成,對于數(shù)據(jù)庫表支持長字段名,字段名最多為128個字符,自由表不支持長字段名,字段名最多為10個字符。當數(shù)據(jù)庫表轉化為自由表時截去超長部分的字符。字段名不能使用系統(tǒng)的保留字。●字段類型:表示該字段中存放數(shù)據(jù)的類型。一個字段即二維表中的一列,其中的數(shù)據(jù)應具有共同的屬性。●字段寬度:表示該字段所允許存放數(shù)據(jù)的最大寬度。●小數(shù)位數(shù):只對數(shù)值型字段和浮點型字符等數(shù)值類型有效,允許最大寬度20。在計算數(shù)值型字段和浮點型字段的寬度時,小數(shù)點本身也算作一個字符。數(shù)值型字段的小數(shù)位數(shù)由數(shù)據(jù)的精度決定位數(shù)。
2023/7/2361.命令方式【格式】APPEND[BLANK]【功能】在當前已打開表的末尾追加一條或多條記錄。【說明】BLANK:表示在表末尾追加一條空記錄,并自動返回命令窗口,此時系統(tǒng)并不彈出編輯窗口。例如:在命令窗口輸入命令
USESTUD&&打開表
APPE&&或EDIT
注意:輸入邏輯值時只輸入T或F,定界符系統(tǒng)自動生成輸入日期值時只輸入數(shù)碼,分隔符系統(tǒng)自動生成輸入備注值時,光標位于MEMO上時,按CTRL+PgDn進入編輯窗口,完成后按CTRL+W返回下一個字段繼續(xù)輸入。3.2輸入表記錄2023/7/2372.菜單方式(1)首先打開表STUD.DBF。(2)選擇【顯示】|【瀏覽】命令。(3)選擇【表】|【追加新記錄】命令,用戶可以輸入追加記錄的各個字段。2023/7/2381.表的打開表文件建好后,以文件的形式保存在磁盤上,在進行各種操作之前,首先必須打開表。打開表的過程實質上就是將表從磁盤調入內存,這樣就可以對表中的數(shù)據(jù)進行各種操作。系統(tǒng)在任何時刻都只能對內存中的表進行訪問。(1)命令方式【格式】USE[[<盤符>][<路徑>]<表文件名
|?>【功能】打開指定磁盤的指定路徑下的表和相關的索引文件。【說明】<盤符>和<路徑>:指定表文件所在的驅動器及路徑,若省略盤符和路徑參數(shù),則打開當前盤、當前路徑下的表文件。3.3表的打開與關閉2023/7/239如果表文件中含有通用型、備注型字段,同名的.FPT文件也同時打開。若不指定表文件名而使用“?”,系統(tǒng)會彈出“使用”對話框,以便用戶指定打開表的文件名。【例3-1】打開在E盤VFP子目錄中STUD.DBF表。
USEE:\VFP\STUD(2)用項目管理器打開表在項目管理器中選中需要打開的表,選擇“瀏覽”或“修改”都能直接打開表且進行瀏覽或修改,關閉瀏覽或修改窗口后,該表仍處于打開狀態(tài)。2023/7/23102.表的關閉(1)打開另一個表文件如果工作區(qū)中已打開有表文件,打開另一表文件時,系統(tǒng)將自動將先前打開的表文件關閉。(2)使用不帶任何選項的USE命令【格式】USE【功能】關閉當前已打開的表文件。(3)使用CLEAR命令【格式】CLEARALL2023/7/2311【功能】關閉所有工作區(qū)中已打開的表文件、索引文件、格式文件及備注文件等,同時釋放所有的內存變量。并選擇工作區(qū)1為當前工作區(qū)。(4)使用CLOSE命令【格式1】CLOSEALL【功能】關閉各種類型文件,并選擇工作區(qū)1為當前工作區(qū)。【格式2】CLOSEDATABASES【功能】關閉所有已打開的數(shù)據(jù)庫文件、表文件、索引文件、格式文件及備注文件等,并選擇工作區(qū)1為當前工作區(qū)。(5)退出VisualFoxPro系統(tǒng)
QUIT【功能】退出VisualFoxPro系統(tǒng),并關閉所有打開的文件,返回操作系統(tǒng)。2023/7/2312(6)在數(shù)據(jù)工作窗口中關閉在數(shù)據(jù)工作窗口中選擇要關閉的表文件,然后選擇“關閉”按鈕,系統(tǒng)將關閉所選擇的表文件。2023/7/23131.表結構的顯示【格式】LIST|DISPLAYSTRUCTURE[TOPRINT[PROMPT]|TO[FILE][<文件名>]]【功能】顯示或打印當前表文件的結構。在執(zhí)行以上命令時,如果系統(tǒng)中沒有已打開的表文件,系統(tǒng)提示輸入文件名。用LIST命令,所有信息連續(xù)顯示,信息較多時,屏幕停止在最后一屏;用DISPLAY命令,如果信息較多則分屏顯示,敲任意鍵繼續(xù)顯示下一屏。【例3-2】顯示表STUD.DBF的結構。USESTUDLISTSTRUCTURE
需要指出的是,最后一行顯示出的記錄字節(jié)數(shù)是所有字段寬度之和再加1。這額外的一個字節(jié)是用來存放記錄的刪除標記(*)的。
3.4表字段的基本操作
2023/7/2314
表結構的改變有時會引起表記錄的變化,所以在一般情況下不輕易進行修改。但在確實需要時也可以進行修改。無論進行何種修改,使用的命令都是一個。1.命令方式【格式】MODIFYSTRUCTURE【功能】將當前已打開的表文件的表設計器打開進行修改。【說明】要修改表結構必須要先打開需要修改結構的表文件。如果當前工作區(qū)中沒有已打開的數(shù)據(jù)庫,執(zhí)行此命令時系統(tǒng)會彈出“打開”對話框,以便用戶選擇需要修改表結構的文件名及路徑等信息,用戶選擇完成后,系統(tǒng)將彈出表設計器對話框。3.5表結構的修改2023/7/2315一、表記錄的顯示1.命令方式【格式】LIST|DISPLAY[FIELDS<字段名表>][<范圍>][FOR<條件表達式>][TOPRINTER|TOFILE<文件名>][OFF][NOCONSOLE]【功能】將當前表文件的記錄按照指定的選項進行顯示。3.6表記錄的基本操作
2023/7/2316【說明】DISPLAY命令與LIST命令的功能相似,當表文件的數(shù)據(jù)記錄較多時,用DISPLAY命令較為方便。還有一點不同之處就是,如果同時缺省<范圍>和
<條件>子句,DISPLAY命令只顯示當前的一條記錄,而LIST命令則是取默認值ALL而顯示全部記錄。FIELDS<字段名表>:用來指定顯示的字段。<范圍>:用來指定顯示哪些記錄。“范圍”有以下四種表示方法:●ALL:所有記錄。●NEXTN:從當前記錄開始,后面的N條記錄(包括當前記錄)●RECORDN:第N條記錄。●REST:當前記錄后的全部記錄(包括當前記錄)。
2023/7/2317FOR<條件表達式>:指定對表文件中指定范圍內滿足條件的記錄進行操作。WHILE<條件表達式>:也是指定對表文件中指定范圍內滿足條件的記錄進行操作,但是,當?shù)谝淮斡龅讲粷M足條件的記錄時,停止繼續(xù)往后搜索。WHILE<條件表達式>若與FOR<條件表達式>同時使用,則WHILE項優(yōu)先;若兩者都不選用,則顯示<范圍>中指定的全部記錄。
OFF:表示不顯示記錄號;若不選此項,則在各記錄前顯示記錄號。
【例3-3】顯示表STUD.DBF的全部記錄。
USESTUDLIST
2023/7/2318【例3-4】顯示男生的記錄。
USESTUDDISPLAYFOR性別=’男’
FIELDS學號,姓名,性別,班級名,系別代號【例3-5】顯示表中所有記錄的學號、姓名和性別。
USESTUD
LISTFIELDS學號,姓名,性別
【例3-6】顯示表中1985年出生的同學的學號、姓名、性別及出生日期。
USESTUDLISTFIELDS學號,姓名,性別,出生日期FORYEAR(出生日期)=1985
2023/7/23192.菜單方式(1)打開表。(2)選擇【顯示】|【瀏覽】命令,系統(tǒng)彈出記錄瀏覽窗口,顯示當前表中的記錄。這時還可以選擇【顯示】|【瀏覽】或【編輯】來改變顯示方式。3.利用項目管理器在項目管理器中,選擇需要顯示的表文件,單擊“瀏覽”按鈕或選擇主菜單中【項目】|【瀏覽】命令,系統(tǒng)彈出記錄瀏覽窗口,顯示當前表中的記錄。2023/7/2320二、記錄指針的定位記錄號用于標識數(shù)據(jù)記錄在表文件中的物理順序。記錄指針是一個指示器,它始終指向當前表中正在操作處理的那條記錄,此記錄被稱為當前記錄。如果要對某條記錄進行處理,必須移動記錄指針,使其指向該記錄。在任意時刻指針只能指向唯一的一條記錄。2023/7/2321
記錄指針定位有絕對定位、相對定位和查詢定位三種。在這里暫時只講前二種,查詢定位在講到查詢時再詳細介紹。1.絕對定位【格式】[GO|GOTO]<[RECORD]<數(shù)值表達式>【功能】將記錄指針絕對定位到<數(shù)值表達式1>指定的記錄上。<數(shù)值表達式1>:記錄的物理記錄號。IN<數(shù)值表達式2>|IN<字符表達式>:指定操作表所在的工作區(qū);若缺省,則對當前工作區(qū)表操作。工作區(qū)的概念在后面再詳細介紹。絕對定位與是否打開索引文件沒有關系。
2023/7/23222.相對定位【格式1】SKIP[<數(shù)值表達式1>]【功能】記錄指針從當前記錄向前(或向后)移動若干個記錄。【說明】<數(shù)值表達式1>:表示移動的記錄個數(shù)。若數(shù)值表達式的值為負值,表示向前移動記錄;否則,表示向后移動記錄。如果缺省此項,則表示向后移動1個記錄。如果記錄指針已經(jīng)移過文件的最后一個記錄,則RECNO()
函數(shù)返回的值等于文件中的記錄總數(shù)加
1,EOF()函數(shù)返回邏輯真(.T.)值。【格式2】GO|GOTO<|TOP|BOTTOM>【功能】將記錄指針移動到表文件的首記錄或尾記錄TOP:將記錄指針移動到表文件的首記錄。BOTTOM:將記錄指針動到表文件的最后一條記錄。2023/7/2323
相對定位與是否打開索引文件有關。如果打開有索引,記錄指針按索引文件中順序移動。否則按表文件中物理順序移動。
【例3-7】絕對定位命令的用法。
USESTUDGOTO2GO3【例3-8】相對定位的用法。
USESTUDSKIP4&&系統(tǒng)主窗口顯示為5SKIP–3 &&系統(tǒng)主窗口顯示為2SKIP8 &&超出了記錄總數(shù)6gotop
&&系統(tǒng)主窗口顯示為12023/7/2324三、記錄的追加1.從另一個表文件中追加記錄【格式】APPENDFROM<文件名
|?>[FIELDS<字段名表>][FOR<邏輯表達式>]【功能】從指定的表文件中讀入數(shù)據(jù),并添加到當前表文件的末尾。【說明】數(shù)據(jù)的追加是從命令中指定的表文件追加到當前表文件中,所以,應先將需要追加記錄的表文件打開,設置為當前表,然后再使用該命令進行追加。2023/7/23252.插入記錄【格式】INSERT[BEFORE][BLANK]【功能】在當前表文件的指定位置插入新記錄或空記錄。【說明】INSERT是在當前記錄之后插入新記錄,INSERTBEFORE是在當前記錄之前插入新記錄,INSERTBLANK是在當前記錄之后插入空記錄。若表文件建立了索引,則插入的新記錄按索引值進行排列。
2023/7/2326【例3-9】在表STUD.DBF的第2號記錄前插入一條新記錄,在第4號記錄后插入一條新記錄。
USESTUDGOTO2INSERTBEFORE&&在2號記錄前插入一條新記錄
GOTO5&&因已插入了一條新記錄,原4號現(xiàn)為5號
INSERT&&在4號記錄后插入一條新記錄2023/7/2327四、刪除記錄
表記錄的刪除也是表維護的一項經(jīng)常性的工作,因為刪除意味著數(shù)據(jù)的消失,所以對記錄的刪除操作比較慎重,刪除可分為邏輯刪除和物理刪除兩種操作。邏輯刪除還可以恢復,而物理刪除則不可恢復。1.邏輯刪除記錄邏輯刪除就是給指定的記錄作刪除標記“*”。(1)命令方式【格式】DELETE[<范圍>][FOR<條件>]【功能】對當前表中指定范圍內滿足條件的記錄作刪除標記“*”。【說明】DELETE命令僅僅是在要刪除的記錄前加上一個刪除標記“*”,并不是真正地從表文件中將該記錄刪除掉。可以用LIST或DISP命令顯示帶刪除標記的記錄。2023/7/2328<范圍>,F(xiàn)OR<條件>、WHILE<條件>等各項選項意義同前;如果同時缺省<范圍>和
<條件>子句,則僅僅刪除當前的記錄。【例3-10】刪除STUD.DBF中所有男同學的記錄。USESTUDDELETEFOR性別="男"LISTFIELDS學號,姓名,性別,班級名,系別代號,地址,出生日期,是否團員(2)菜單方式利用菜單方式邏輯刪除記錄的具體操作步驟如下:①首先打開表文件②選擇【顯示】|【瀏覽】命令,系統(tǒng)彈出記錄瀏覽窗口,顯示當前表中的記錄。主菜單上增加【表】菜單項。
2023/7/2329③選擇【表】|【刪除記錄】命令,出現(xiàn)圖3-11所示的“刪除”對話框。④單擊刪除對話框中的For…按鈕或While…按鈕,系統(tǒng)彈出表達式生成器,用戶可以在表達式框中輸入一個邏輯表達式,如性別=”男”,單擊【確定】按鈕完成條件表達式的輸入。⑤在“作用范圍”下拉列表框中選擇范圍,如ALL。⑥單擊“刪除”對話框中的“刪除”按鈕,系統(tǒng)將完成對指定范例內滿足指定條件的記錄的邏輯刪除。2.隱藏邏輯刪除記錄【格式】SETDELETEDON|OFF【功能】將表文件中已邏輯刪除的記錄隱藏,仿佛真正刪除一樣。
2023/7/2330【說明】表文件中被邏輯刪除的記錄只是在該記錄上加一個刪除標記,當SETDELETED設置為OFF時,對該表文件的各種操作,對被刪除的記錄同樣有效。當SETDELETEDON時,可使對表文件中數(shù)據(jù)的各種操作,一般均不包括有刪除標記的記錄,但下列情況例外:命令的記錄范圍是當前記錄或RECORD(n)時;INDEX或REINDEX命令不受SETDELETED的影響,始終處理帶刪除標記的記錄。SETDELETED的缺省狀態(tài)是OFF。【例3-11】隱藏上題中STUD.DBF的標記刪除記錄。
USESTUDSETDELETEDON3.恢復邏輯刪除記錄恢復邏輯刪除是將被邏輯刪除的記錄恢復為正常記錄。即去掉“*”號。2023/7/2331(1)命令方式【格式】RECALL[<范圍>][FOR<條件>][WHILE<條件>][NOOPTIMIZE]【功能】將當前表文件中指定范圍內滿足條件的已作刪除標記“*”的記錄恢復,即去掉這些刪除記錄的刪除標記,使之成為正常記錄。【說明】RECALL命令與DELETE命令相對應,它可以去掉被邏輯刪除記錄的刪除標記“*”。<范圍>,F(xiàn)OR<條件>、WHILE<條件>等各項選項意義同前;如果同時缺省<范圍>和
<條件>子句,則僅僅恢復當前記錄。【例3-12】恢復STUD.DBF中刪除的所有記錄。
USESTUDRECALLALL2023/7/2332(2)菜單方式①首先打開表文件②選擇【顯示】|【瀏覽】命令。③選擇【表】|【恢復記錄】命令,出現(xiàn)類似圖3-11所示對話框。余下操作與“刪除”對話框的操作相同。4.物理刪除記錄物理刪除是將當前表文件中被邏輯刪除的記錄全部清除。(1)命令方式【格式】PACK[MEMO][DBF]【功能】將當前表文件中所有帶刪除標記(*)的記錄全部真正地刪除掉。【說明】若選用MEMO選項,PACKMEMO將壓縮與表文件同名的備注文件中的無用空間,但并不刪除表文件中作了刪除標記的記錄。2023/7/2333若選用DBF選項,而不用MEMO選項,則只刪除表文件中作了刪除標記的記錄,而不壓縮相應的備注文件。若不帶任何選項,PACK命令將刪除數(shù)據(jù)庫文件中作了刪除標記的記錄,同時壓縮相應的備注文件。注意:執(zhí)行該命令后被刪除的記錄將不能被恢復,因此使用時應特別小心。【例3-13】將STUD.DBF中的學號為“021405”的記錄進行物理刪除。
USESTUDDELETEFOR學號=”021405”
PACK2023/7/2334(2)菜單方式利用菜單方式物理刪除表記錄的具體步驟如下:①首先打開表文件②選擇【顯示】|【瀏覽】命令,系統(tǒng)彈出記錄瀏覽窗口,顯示當前表中的記錄。主菜單上增加【表】菜單。③選擇【表】|【徹底刪除】命令,出現(xiàn)“確認”對話框。④單擊“是”按鈕,完成物理刪除過程。注意:用戶也可以在EDIT、CHANGE、BROWSE窗口中,按Ctrl+T鍵對當前記錄作(或取消)刪除標記,也可以用鼠標單擊記錄最左邊的刪除標記欄作(或取消)刪除標記。
2023/7/23355.刪除全部記錄【格式】ZAP【功能】將當前打開的表文件中的所有記錄完全刪除掉。【說明】執(zhí)行該命令之后,將只保留表文件的結構,而不再有任何數(shù)據(jù)存在。這種刪除無法恢復,因此,為防止用戶發(fā)生錯誤操作而刪除有用的表文件記錄,執(zhí)行該命令時,系統(tǒng)會彈出ZAP提示窗口,以確認是否刪除全部記錄,單擊“是”按鈕清除所有記錄,單擊“否”按鈕放棄ZAP操作。2023/7/2336五、修改記錄
在表的使用維護過程中,有大量的工作是對數(shù)據(jù)記錄的修改、編輯與更新,通常可以采用編輯修改、瀏覽修改和替換修改三種方式。1.編輯修改【格式】EDIT/CHANGE [FIELDS<字段名表>][<范圍>][FOR<邏輯表達式1>]【功能】按照給定條件編輯修改當前打開的表文件的記錄。【說明】[FIELDS<字段名表>]:若選擇此選項,則只列出字段名表中的字段,且顯示順序同字段名表中的順序;若未選擇此選項,將顯示表中的所有字段,顯示順序同表中的字段順序。2023/7/2337[<范圍>]:若未選擇此選項,則EDIT/CHANGE命令的范圍為全部記錄。[FOR<邏輯表達式1>]和[WHILE<邏輯表達式2>]:同前面其他命令所述,在此不再重復敘述。【例3-14】修改STUD.DBF中計0121班學生的學號、姓名和性別等信息。
USESTUDEDITFIELDS學號,姓名,性別
FOR班級名=”計0121”全部修改完畢,使用
Ctrl+End或
Ctrl+W鍵保存所有修改的結果。
2023/7/23382.瀏覽修改(1)命令方式【格式】BROWSE[FIELDS<字段名表>][FOR<邏輯表達式1>]【功能】顯示當前表的記錄內容,以供編輯修改。【說明】編輯結束后,按Ctrl+W或Ctrl+End存盤退出BROWSE編輯窗口,或者按Ctrl+Q或Esc鍵放棄存盤退出BROWSE窗口。(2)菜單方式利用菜單方式進行瀏覽修改的操作步驟如下:①打開表。②選擇【顯示】|【瀏覽】命令,系統(tǒng)彈出記錄瀏覽窗口。③在編輯修改窗口中編輯修改數(shù)據(jù)內容,完成后按Ctrl+W鍵存盤退出Browse窗口。2023/7/23393.替換修改(1)命令方式【格式】REPLACE<字段名1>WITH<表達式1>[ADDITIVE][,<字段名2>WITH<表達式2>[ADDITIVE]]...[<范圍>][FOR<邏輯表達式1>]【功能】用指定表達式的值替換當前表中滿足條件記錄的指定字段的值。【說明】:該命令適合對當前表進行成批地、有規(guī)律地修改。缺省范圍、條件時,僅替換當前記錄。該命令回車后,數(shù)據(jù)修改自動完成。適用于程序設計。
ADDITIVE只對備注型字段修改有效。(選擇:表示添加內容;不選擇:表示替換內容)表達式的類型必須與字段類型一致。表達式的值不能超出字段寬度,否則,數(shù)據(jù)無效。2023/7/2340【例3-15】修改STUD.DBF中的“學號”字段數(shù)據(jù),。
USESTUDREPLACE學號
WITH”20”+學號
ALL(2)菜單方式①打開表文件。選擇【顯示】|【瀏覽】命令。
②選擇【表】|【替換字段】命令,彈出圖3-16所示的“替換字段”對話框。③單擊字段下拉按鈕選擇要進行替換操作的字段名,在“替換為”顯示欄中輸入替換表達式,再選擇“替換條件”顯示框中的范圍、條件。④單擊“替換”按鈕,系統(tǒng)將自動完成替換操作。
2023/7/23411.表結構的復制【格式】COPYSTRUCTURETO<文件名>[FIELDS<字段名表>]【功能】復制當前表文件的結構作為新表文件的結構。【說明】命令執(zhí)行前,需復制的表文件必須是打開的。
執(zhí)行后,生成的新表文件只有結構。3.7表的復制2023/7/2342
【例3-16】用復制命令將STUD.DBF中的學號、姓名、性別、出生日期等四個字段,構成一個新表結構。
USESTUDCOPYSTRUCTURETOSTUD1FIELDS學號,姓名,性別,出生日期2023/7/23432.表文件的復制【格式】COPYTO<文件名>[FIELDS<字段名表>][<范圍>][FOR<邏輯表達式1>][WHILE<邏輯表達式2>]【功能】將當前打開的表文件全部或部分復制到一個新生成的表文件中。【說明】新生成表文件中的字段順序由FIELDS選擇項<字段名表>確定,缺省表示新表的結構與原表的結構完全相同,新表文件中的記錄由<范圍>選擇項以及<條件>選擇項確定。同時缺省<范圍>、<條件>表示將原表的全部記錄都復制到新表中。
2023/7/2344【例3-17】復制STUD.DBF中所有女同學的記錄到STUD2.DBF中。
USESTUD
COPYTOSTUD2FOR性別=“女”
【例3-18】復制STUD.DBF中的記錄內容復制到SSTUD。
USESTUDCOPYTOSSTUD2023/7/2345一.表的排序【格式】SORTON<字段1>[/A|/D|/C][,<字段2>[/A|/D|/C]...][<范圍>][ASCENDING|DESCENDING][FOR<邏輯表達式1>][FIELDS<字段名表>]TO<新文件名>【功能】對當前打開的表,按指定的字段進行排序,生成新的表文件。【例3-19】將STUD.DBF按性別進行降序排列
USESTUD
SORTTOSTUD2ON性別/D
3.8表的排序與索引2023/7/2346二.表的索引1.索引及索引文件的概述
VisualFoxPro系統(tǒng)中支持兩種不同的索引文件類型,即單索引文件和復合索引文件。單索引文件是根據(jù)一個索引關鍵字表達式(或關鍵字)建立的索引文件,文件擴展名為.IDX,它可用INDEX命令的各種形式建立。單索引文件分為標準和壓縮兩種類型。復合索引文件,文件擴展名為.CDX,分為兩種:一種是獨立復合索引文件;另一種是結構復合索引文件。2023/7/2347索引可分為下列四種類型:(1)主索引主索引是一個永遠不允許在指定字段和表達式中出現(xiàn)重復值的索引。它也是在數(shù)據(jù)庫表的永久關聯(lián)中創(chuàng)建參照完整性時主表和被引用表使用的索引。每一個表只能建立一個主索引,只有數(shù)據(jù)庫表才能建立主索引。(2)侯選索引侯選索引也是一個不允許在指定字段和表達式中出現(xiàn)重復值的索引。數(shù)據(jù)庫表和自由表都可以建立侯選索引,一個表可以建立多個侯選索引。主索引和侯選索引都存儲在.CDX結構復合索引文件中,不能存儲在獨立復合索引文件和單索引文件中,因為主索引和侯選索引都必須與表文件同時打開和同時關閉。2023/7/2348(3)唯一索引系統(tǒng)只在索引文件中保留第一次出現(xiàn)的索引關鍵字值。數(shù)據(jù)庫表和自由表都可以建立唯一索引(4)普通索引是一個最簡單的索引,允許關鍵字值的重復出現(xiàn),適合用來進行表中記錄的排序和查詢,也適合于一對多永久關聯(lián)中“多”的一邊(子表)的索引。數(shù)據(jù)庫表和自由表都可以建立普通索引。普通索引和唯一索引可以存儲在.CDX獨立復合索引文件和.IDX單索引文件中。2023/7/2349
2.索引文件的建立(1)命令方式【格式】INDEXON<索引關鍵字表達式>TO<單索引文件>TAG<標識名>[OF<獨立復合索引文件名>][FOR<邏輯表達式>][COMPACT][ASCENDING|DESCENDING][UNIQUE][ADDITIVE]【功能】對當前表文件按指定的關鍵字建立索引文件。【說明】<索引關鍵字表達式>:指定建立索引文件的關鍵字表達式,可以是單一字段名,也可以是多個字段組成的字符型表達式,表達式中各字段的類型只能是數(shù)值型、字符型和日期型和邏輯型。2023/7/2350
當表達式是單個字段名時,字段類型不用轉換;當表達式是多個字段名時,應轉換成同一類型的表達式。TAG<標識名>:此選項只對建立復合索引文件時有效,指定建立或追加索引標識的標識名。OF<獨立復合索引文件>:指定獨立復合索引文件名。若有此選項,表示在指定的獨立復合索引文件中追加一個索引標識,若指定的獨立復合索引文件不存在,系統(tǒng)將自動建立指定的文件。若沒有此選項,表示在結構復合文件中追加一個索引標識,若結構復合索引文件不存在,系統(tǒng)將自動建立結構復合索引文件。FOR<邏輯表達式>:表示只對滿足條件的記錄建立索引。COMPACT:此選項只對單索引文件有效,表示建立壓縮索引文件。ASCENDING|DESCENDING:
ASCENDING表示按升序建立索引,DESCENDING表示按降序建立索引。缺省時,按升序建立索引。單索引文件不能選用DESCENDING選項。2023/7/2351UNIQUE:表示建立的是唯一索引。ADDITIVE:表示保留以前打開的索引文件。否則,除結構復合索引文件外,以前打開的其他索引文件都將被關閉。新建的索引文件自動打開,并開始起作用。【例3-20】對STUD.DBF表文件建立出生日期單索引文件STUD.IDX。
USESTUDINDEXON出生日期
TOSTUD【例3-21】對表文件STUD.DBF,建立一個基于出生日期字段的結構復合索引文件。
USESTUDINDEXON出生日期
TAG出生日期
DESCENDING2023/7/2352【例3-22】在表文件STUD.DBF的結構復合索引文件中,按學號和姓名各追加一個標識。
USESTUDINDEXON學號
TAG學號【例3-23】在表文件STUD.DBF的結構復合索引文件中,先按性別再按學號追加一個標識。
USESTUDINDEXON性別+學號
TAG性別學號【例3-24】在表文件STUD.DBF中,先按性別再按是否團員建立一個獨立復合索引文件SXBTY.CDX。
USESTUDINDEXON性別+IIF(是否團員,’團員’,’非團員’)TAG性別團員
OFSXBTY2023/7/23533.索引文件的打開【格式1】USE<文件名>[INDEX<索引文件名表>]【功能】打開指定的表文件及相關的索引文件【說明】:INDEX<索引文件名表>:表示打開的索引文件;2023/7/2354【格式2】SETINDEXTO[<索引文件名表>]【功能】在已打開表文件的前提下,打開相關索引文件。【說明】ADDITIVE:表示保留以前打開的索引文件。否則,除結構復合索引文件外,以前打開的其他索引文件都將被關閉。2023/7/23554.索引文件的關閉【格式1】USE【功能】關閉當前工作區(qū)中打開的表文件及所有索引文件。【格式2】SETINDEXTO【功能】關閉當前工作區(qū)中打開的所有單索引文件和獨立復合索引文件。【格式3】CLOSEINDEXS【功能】關閉當前工作區(qū)中打開的所有單索引文件和獨立復合索引文件。注意:結構復合索引文件不能用以上命令關閉,它隨表文件的打開而打開,隨表文件的關閉而關閉。2023/7/23565.改變主索引【格式】SETORDERTO[<數(shù)值表達式1>|<單索引文件名>]【功能】重新指定打開的索引文件中的主索引。【說明】<數(shù)值表達式1>的值為指定主索引的編號。2023/7/2357
如果<數(shù)值表達式1>的值為0或缺省,則恢復表文件的原始順序,使所有打開的索引文件都無效。【例3-25】打開STUD.DBF表文件及其相關索引文件,并指定結構復合索引文件中的姓名為主控索引。
USESTUDINDESTUD.IDXORDERTAG姓名【例3-26】打開STUD.DBF表及其相關索引文件,改變主索引文件。
USESTUDINDEXSTUD.IDXSETORDERTO4SETORDERTO&&使所有索引均無效
2023/7/2358(1)命令方式【格式】REINDEX[COMPACT]【功能】重新建立已索引過的索引文件。【說明】COMPACT:表示將標準的單索引文件變?yōu)閴嚎s的單索引文件。【例3-27】將表STUD.DBF的索引文件重新索引。
USESTUDSETINDEXTOSTUD.IDXREINDEX(2)菜單方式①打開表文件。②選擇【顯示】|【瀏覽】命令。③選擇【表】|【重新建立索引】命令,系統(tǒng)自動根據(jù)各索引表達式重新建立索引。2023/7/2359
在數(shù)據(jù)資源的管理過程中,使用最頻繁的操作莫過于查詢滿足一定條件的一系列數(shù)據(jù),從而為日常決策提供足夠的判斷依據(jù)。對表記錄的查詢系統(tǒng)提供了兩類查詢命令:順序查詢和索引查詢。在前面介紹定位時,省略了條件定位,查詢操作實際上就是起到了條件定位的作用。
3.9查詢2023/7/2360一、順序查詢1.命令方式【格式】LOCATEFOR<邏輯表達式1>[<范圍>][WHILE<邏輯表達2>]【功能】在表指定范圍中查找滿足條件的記錄。【說明】LOCATE命令在表指定范圍中查找滿足條件的第一條記錄。<邏輯表達式1>:表示所需滿足的條件。
<范圍>:指定查找范圍,缺省時為ALL,即在整個表文件中查找。
2023/7/2361【格式】CONTINUECONTINUE命令:LOCATE找到第一條滿足條件的記錄可以用CONTINUE繼續(xù)查找下一個滿足條件的記錄。
CONTINUE命令必須在LOCATE命令之后使用,否則出錯。在CONTINUE命令中實際隱含了前一個LOCATE命令中的條件。【例3-28】在STUD.DBF中查找學號前四位為0111的同學記錄。
USESTUDLOCATEFOR學號="0111"2023/7/23622.索引查詢(FIND、SEEK)
LOCATE命令用于按條件進行順序定位,無論索引文件是否打開都可使用。在打開索引文件后,還可以用FIND、SEEK命令進行快速檢索。(1)FIND命令【格式】FIND<字符串>/<數(shù)值常量>【功能】在表文件的主控索引中查找關鍵字值與<字符串>或<數(shù)值常量>相匹配的第一個記錄。【說明】必須打開相應的庫文件、主索引文件。【例3-29】打開表文件STUD.DBF,查找姓“趙”的記錄。
USESTUDSETORDERTO姓名
FIND趙2023/7/2363(2)SEEK命令【格式】SEEK<表達式>【功能】在表文件的主索引中查找關鍵字值與<表達式>值相匹配的第一個記錄。【說明】SEEK命令可以查找字符型、數(shù)值型、日期型、邏輯型表達式的值。【例3-30】用SEEK命令在STUD.DBF中查找記錄。
USESTUDINDEXON是否團員
TAG是否團員
SETORDERTO姓名
SEEK"孫"2023/7/23641.統(tǒng)計記錄數(shù)【格式】COUNT[<范圍>][FOR<邏輯表達式1>][WHILE<邏輯表達式2>][TO<內存變量>]【功能】用于統(tǒng)計當前表中指定范圍內滿足條件的記錄個數(shù)。【說明】除非指定了<范圍>或
FOR/WHILE<條件>,否則將計算所有記錄個數(shù),如選擇了
TO<內存變量>,則可將計算結果保存在<內存變量>中,否則統(tǒng)計結果只在屏幕上顯示。若選擇了SETTALKOFF將不顯示統(tǒng)計結果。若SETDELETEOFF,則加刪除標志的記錄將被計算。3.10數(shù)據(jù)統(tǒng)計與計算2023/7/2365【例3-31】統(tǒng)計STUD.DBF中的男同學記錄個數(shù)和表記錄總數(shù)。
USESTUDCOUNTFOR性別="男"TOACOUNTTOB2023/7/23662.求和【格式】SUM[<表達式表>][<范圍>][FOR<條件>][WHILE<條件>][TO<內存變量表>|TOARRAY<數(shù)組>][NOOPTIMIZE]【功能】對指定范圍內、滿足條件的記錄按指定的各個表達式分別求和。【說明】缺省范圍、條件表示全部記錄。缺省數(shù)值型表達式表,表示對庫中所有數(shù)值型字段求和。數(shù)值型表達式表中表達式的個數(shù)應與內存變量的個數(shù)一致。2023/7/2367【例3-32】有一表文件GZGL.DBF內容如下,Record#姓名
性別
車間
基本工資
崗位工資
獎金
工資總額
1張小紅
女
金工一
64534012011052李建軍
男
金工一
69037013011903孫愛國
男
金工一
58034012010404吳曉英
女
金工一
54036011010105張
斌
男
金工二
67040014012106趙
娜
女
金工二
57033011010107趙明明
男
金工二
560300100960
8李
菲
女
機修
6503501501
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025電信行業(yè)150:《最有價值和最強大的電信品牌的年度報告》
- 2025至2030年中國氣門修整磨具數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國氣動長套筒組市場現(xiàn)狀分析及前景預測報告
- 2025至2030年中國橡膠線行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國橢圓手柄套市場分析及競爭策略研究報告
- 2025至2030年中國棉層高度自停裝置行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國桂碎行業(yè)發(fā)展研究報告
- 2025至2030年中國標識帶市場調查研究報告
- 2025至2030年中國柚木拼接地板數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國殺毒先鋒行業(yè)投資前景及策略咨詢報告
- 湖南省炎德英才名校聯(lián)考聯(lián)合體2024-2025學年高二下學期3月月考-數(shù)學+答案
- (3月省質檢)福建省2025屆高三畢業(yè)班適應性練習卷英語試卷(含答案)
- 專業(yè)網(wǎng)格員測試題及答案
- 2025年上半年貴州黔東南州各縣(市)事業(yè)單位招聘工作人員1691人筆試易考易錯模擬試題(共500題)試卷后附參考答案
- 湖南省長沙市雅禮教育集團2024-2025學年高一上學期期末考試英語試卷含答案
- 2025年廣東深圳高三一模英語試題及詞匯解析
- 電力應急物資儲備與管理
- 釹鐵硼項目可行性分析報告(模板參考范文)
- 【語文】第三單元整本書閱讀《駱駝祥子》圈點、批注、做筆記課件-2024-2025學年統(tǒng)編版語文七年級下冊
- 儲能項目竣工報告
- 甘肅開放大學2024年《信息技術與信息管理》形考作業(yè)1-4答案
評論
0/150
提交評論