表的建立與基本操作_第1頁
表的建立與基本操作_第2頁
表的建立與基本操作_第3頁
表的建立與基本操作_第4頁
表的建立與基本操作_第5頁
已閱讀5頁,還剩68頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 第三章第三章表的建立與基本操作第三章表的建第三章表的建集合,數(shù)據(jù)庫的操作實質(zhì)上是表的操作。Visual FoxPro中表一般包含在數(shù)據(jù)庫中,稱為數(shù)據(jù)庫表。表也可以脫離數(shù)據(jù)庫獨立存在,稱為自由表。從數(shù)據(jù)庫內(nèi)部創(chuàng)建的表,總是數(shù)據(jù)庫表;直接創(chuàng)建的表是自由表。自由表可以隨時添加到數(shù)據(jù)庫中,成為數(shù)據(jù)庫表;數(shù)據(jù)庫表也可以隨時移出數(shù)據(jù)庫,成為自由表。第三章表的建ro建立一個新表之前,應(yīng)當(dāng)先分析和設(shè)計表,了解表中記錄要表示怎樣的信息以及表的目的,據(jù)此設(shè)計表中的字段,從而確定表的結(jié)構(gòu)。l對學(xué)生檔案數(shù)據(jù)庫,建立“學(xué)生”表來存儲學(xué)生的個人信息,包括學(xué)號、姓名、性別、出生日期、簡歷等,這些內(nèi)容是相對獨立的,應(yīng)由不同

2、的字段來表示。而關(guān)于學(xué)生的成績與每人選修的課程相關(guān),VF中建立的表是二維關(guān)系表,“學(xué)生”表如果太復(fù)雜不利于操作,所以成績和課程需要另外建表來處理。如果想知道學(xué)生的總體信息,只要將幾個相關(guān)表中的數(shù)據(jù)組合,即可得到。據(jù)此,建立表3.1、表3.2、表3.3三個表分別表示學(xué)生個人信息、課程信息和成績信息。第三章表的建其表文件最多可由255個字段組成。在設(shè)計表結(jié)構(gòu)時,應(yīng)遵循Visual FoxPro系統(tǒng)對字段名、類型、寬度和小數(shù)位的規(guī)定。l(1)字段名l字段名又稱字段變量,它的命名規(guī)則與內(nèi)存變量相同,最長為10個字符,允許由字母、漢字、數(shù)字和下劃線組成,但必須以字母或漢字開頭,中間不能有空格。l(2)字

3、段類型l表中的每一個字段由于其數(shù)據(jù)代表的意義不同,因而都有特定的數(shù)據(jù)類型,例如姓名、成績、出生日期這3個字段的類型是各有相同的,在Visual FoxPro中,分別用字符型、數(shù)值型或整型、日期型來表示的。熟悉各種數(shù)據(jù)類型可以幫助我們更方便地對表進行操作。第三章表的建要確定其寬度,字段寬度表示字段中可以存放數(shù)據(jù)的最大字符數(shù)。l各種數(shù)據(jù)類型的字段寬度如表3.4所示,除字符型、二進制字符型、數(shù)值型和浮動型外,其它9種字段寬度是固定不變的。第三章表的建數(shù)據(jù)類型 符 號 默認(rèn)寬說 明 字符型 C 4 可表示 1254 個字符 貨幣型 Y 8 貨幣數(shù)量 數(shù)值型 N 8 包括數(shù)字和小數(shù)點,正()負(fù)號包括在字

4、段寬度內(nèi) 浮動型 F/n 8 同數(shù)值型 整型 I/n 4 整型數(shù)據(jù) 雙精度型 B/n 8 用于精確計算的數(shù)值 日期型 D 8 日期 日期時間型 T 8 日期和時間 邏輯型 L 1 邏 輯真 (.T.)和邏 輯 假(.F.) 備注型 M 4 任何長度的正文 通用型 G 4 OLE 對象 二進制字符型 C 4 最多達 254 個字符的正文或二進制數(shù)據(jù) 二進制備注型 M 4 任何長度的正文或二進制數(shù)據(jù) 第三章表的建幣型字段有小數(shù)位。只有在需要設(shè)計時才規(guī)定小數(shù)位,否則這個規(guī)定可以省略。小數(shù)位的最大寬度必須小于字段寬度減2,即要留出小數(shù)點前的0和小數(shù)點。l另外,Visual FoxPro的表文件是真正含

5、義的數(shù)據(jù)庫表文件,所以在設(shè)計自由表結(jié)構(gòu)時,還需要考慮字段是否支持空值(NULL)、如何建立索引等。第三章表的建表設(shè)計器來建立,一種是通過表向?qū)г谝延械谋淼幕A(chǔ)上建立一個新表。本節(jié)主要說明表設(shè)計器的建表步驟。一、用表設(shè)計器建表l1、表設(shè)計器第一步:指定表名及保存位置l在圖3.1的新建對話框中,選擇表,單擊“新建文件”,打開創(chuàng)建新文件的對話框,圖3.2所示,選定保存位置,輸入表文件名(如本例中“學(xué)生”),可以不輸擴展名,系統(tǒng)會自動加上擴展名.dbf,單擊“保存”按鈕。l2、表設(shè)計器第二步:在表設(shè)計器中輸入各字段名,設(shè)置各字段的數(shù)據(jù)類型、寬度、小數(shù)位數(shù)。l在圖3.3(a)剛剛打開的表設(shè)計器中,輸入表

6、3.5中給定的內(nèi)容,逐次輸入字段名、類型、寬度及小數(shù)位數(shù),輸入完畢的表結(jié)構(gòu)如圖3.3(b)所示。第三章表的建第三章表的建中各個字段值的設(shè)置之后,按“確定”按鈕,系統(tǒng)顯示如圖3.4的對話框,單擊“是”,打開圖3.5輸入記錄窗口,表示立即輸入記錄值;如果單擊“否”,結(jié)束表結(jié)構(gòu)的設(shè)計,以后再錄入數(shù)據(jù)。在圖3.5中,各條記錄之間用橫線隔開,左邊顯示字段的名稱,用顏色塊標(biāo)識當(dāng)前字段的輸入?yún)^(qū)的大小。用戶輸完一條記錄后,系統(tǒng)自動定位到下一條記錄。全部記錄輸入完畢后,關(guān)閉編輯窗口,完成記錄的錄入操作,表創(chuàng)建完成。第三章表的建打開表設(shè)計器創(chuàng)建表。l命令格式:lCREAT表文件名.DBFl如果要建立課程表,則在命

7、令窗口鍵入命令:lCREAT課程.DBFl回車之后,系統(tǒng)同樣打開圖3.3的表設(shè)計器窗口,再按照前面同樣的步驟就可以建立課程表。l另外,還可以用表向?qū)Ы⒈?,利用Visual FoxPro提供的樣本表,選擇樣本表中的結(jié)構(gòu)和字段,構(gòu)成所需的表結(jié)構(gòu)。用向?qū)?chuàng)建的表也可以在保存之后再使用表設(shè)計器修改。3.1建建第三章表的建立之后,隨著對表的操作和情況的變化,有時需要修改表結(jié)構(gòu)。例如,增加字段、刪除字段,修改字段名、字段類型寬度、小數(shù)位、是否允許空值等,學(xué)習(xí)索引之后還要添加、修改或刪除索引標(biāo)識等。通常打開表設(shè)計器來修改表結(jié)構(gòu),也可以命令方式來修改表結(jié)構(gòu)。例如,在“學(xué)生”表增加“年齡”字段,將獎學(xué)金改為數(shù)

8、值型。第三章表的建開”對話框中選擇要打開的表,如雙擊打開“學(xué)生”表。l在“顯示”菜單中選擇“瀏覽學(xué)生”命令,打開“學(xué)生”表瀏覽窗口。l再次選擇“顯示”菜單,選擇“表設(shè)計器”命令,打開表設(shè)計器,如圖3.6選中“簡歷”字段,單擊“插入”按鈕,則在“簡歷”字段前插入“新字段”,修改字段名稱為“年齡”,字段類型為“整型”,然后單擊“確定”彈出圖3.7示“是否永久修改”,單擊“是”。l注意:修改表結(jié)構(gòu)同設(shè)計表結(jié)構(gòu)類似,但在修改時要注意防止數(shù)據(jù)的丟失。第三章表的建開表設(shè)計器修改表結(jié)構(gòu)。l說明:在打開表以后,執(zhí)行MODIFY STRUCTURE命令,將打開表設(shè)計器對表結(jié)構(gòu)進行修改。l注意:l修改字段類型時,

9、并不完全轉(zhuǎn)換字段的內(nèi)容,或者根本不轉(zhuǎn)換。例如,如果將日期類型的字段轉(zhuǎn)換成數(shù)值類型,字段內(nèi)容是不轉(zhuǎn)換的。l在更改表結(jié)構(gòu)之前,Visual FoxPro自動備份當(dāng)前表。在修改完以后,將備份表中包含的數(shù)據(jù)追加到新修改的表結(jié)構(gòu)中。如果表中有一個備注字段,也將創(chuàng)建一個備注備份文件。表備份文件的擴展名為.BAK,備注備份文件的擴展名是.TBK。l當(dāng)修改一個具有備注字段的表結(jié)構(gòu)時,備注文件的塊大小設(shè)置為當(dāng)前的塊大小。可以用SET BLOCKSIZE命令指定備注文件的塊大小。第三章表的建TURE IN /l格式2:LIST STRUCTURE IN /l功能:兩條命令的功能相同,都是顯示當(dāng)前打開的表文件的結(jié)構(gòu)

10、,只是DISPLAY STRUCTURE分頁顯示,而LIST STRUCTURE連續(xù)滾動顯示。l命令說明:l顯示當(dāng)前打開的表的字段結(jié)構(gòu),包括每個字段的名稱、類型和寬度。如果字段是數(shù)值型、雙精度型、浮點型或貨幣型的,還將顯示小數(shù)點在字段中放置的位數(shù),也支持顯示空值。l顯示表中當(dāng)前的記錄數(shù)和最近更新的日期。如果表中有一個相關(guān)備注字段,則顯示備注字段塊的大小。l顯示所有字段的總寬度和表的代碼頁。l如果建立了結(jié)構(gòu)復(fù)合索引文件,則在字段名同行顯示該索引的排列順序。第三章表的建E 學(xué)生lDISPLAY STRUCTUREl在圖3.8中,總計的字節(jié)數(shù)為38,比各字段寬度之和多1個字節(jié),用來存放刪除標(biāo)記“*”

11、。第三章表的建只有剛剛創(chuàng)建的表是自動打開的,否則任何對表的操作,首先應(yīng)當(dāng)打開表。在結(jié)束對表的操作后,應(yīng)及時關(guān)閉表文件,將內(nèi)存中的數(shù)據(jù)存回磁盤。如果沒有及時關(guān)閉文件,由于人為的誤操作或突然停電等因素,有可能造成數(shù)據(jù)的破壞或損失。第三章表的建令方式。1、菜單方式。l選擇“文件”菜單,單擊“打開”命令。l單擊“打開”按鈕。l選擇“窗口”菜單,選擇“數(shù)據(jù)工作期”命令,在“數(shù)據(jù)工作期”對話框中,單擊“打開”按鈕。采用上述幾種菜單方式后,均會出現(xiàn)“打開”對話框,雙擊要打開的表名后,即可打開表文件。2、命令方式。l格式:USE l功能:打開表文件名。第三章表的建l選擇“窗口”菜單,選擇“數(shù)據(jù)工作期”命令,在

12、“數(shù)據(jù)工作期”對話框中,選擇表的別名后,單擊“關(guān)閉”按鈕。2、命令方式。l使用不加表名的USE 命令,在當(dāng)前工作區(qū)中關(guān)閉一個已打開的表文件。l在一個工作區(qū)中打開另一個表時,原來在該工作區(qū)中打開的表自動關(guān)閉。lCLOSE TABELS命令關(guān)閉在所有工作區(qū)打開的自由表。lCLEAR ALL、CLOSE ALL等命令也將關(guān)閉表文件。l正常退出Visual FoxPro將關(guān)閉一切文件。第三章表的建文件lUSE &不帶任何選項的USE命令關(guān)閉當(dāng)前工作區(qū)打開的學(xué)生.DBF文件lUSE課程&打開課程.DBF表文件lUSE成績&在打開成績.DBF時自動關(guān)閉原先打開的課程.DBF表文件第三章表的建ual Fox

13、Pro主窗口沒有任何顯示信息,此時應(yīng)當(dāng)打開瀏覽窗口才能查看表內(nèi)容。打開瀏覽窗口有以下幾種方式:l在“項目管理器”中選定表后,單擊“瀏覽”按鈕。l在“數(shù)據(jù)工作期窗口”中選定表后,單擊“瀏覽”按鈕。l打開表后,在命令窗口中輸入命令:BROWSE或BROWSELASTl打開表后,選擇“顯示”菜單命令,在下拉菜單中選擇瀏覽命令。第三章表的建中選擇“追加新記錄”或在“顯示”菜單中選擇“追加方式”,瀏覽窗口尾部會增加一條空白記錄,光標(biāo)此時定位在空白記錄的第一個字段,在此空白記錄處輸入新的記錄值(圖3.9(b)。第三章表的建+PageDown、Ctrl+PageUp命令,就會打開備注字段的編輯窗口,圖3.1

14、1所示。編輯完后,關(guān)閉該窗口,此時memo的第一個字母變成大寫,即Memo。l(2)修改記錄l在瀏覽窗口中,單擊要修改的字段就可以了。l(3)刪除記錄、lVisual FoxPro中的刪除記錄分為邏輯刪除和物理刪除兩種,邏輯刪除只是將記錄加上刪除標(biāo)記,并未真正刪除,還可以恢復(fù);物理刪除是從表中真正刪除記錄,無法恢復(fù)。第三章表的建入記錄,也可以不輸入記錄。沒有記錄的表叫空表,可以隨時向空表追加記錄,也可以向已有記錄的表追加記錄。l一、創(chuàng)建時輸入記錄l見表設(shè)計器第三步,圖3.5輸入記錄窗口。l二、添加記錄l1、追加記錄lAPPEND命令可以在表的末尾增加一條或多條記錄。l命令格式:lAPPEND

15、BLANK IN 工作區(qū)號|別名NOMENUl參數(shù)說明:lBLANK:在當(dāng)前表的末尾增加一條空白記錄。第三章表的建的別名l忽略該選項,新記錄添加到當(dāng)前工作區(qū)的表中l(wèi)NOMENU:禁止在系統(tǒng)菜單條上顯示“表”菜單,防止用戶對表的格式進行編輯l2、添加備注字段lAPPEND命令可以把文本文件的內(nèi)容復(fù)制到備注字段中。l命令格式:APPEND MEMO FROM OVERWRITE l參數(shù)說明:lOVERWRITE:如無,文件內(nèi)容將追加到指定備注字段中;如有,用文件的內(nèi)容替換備注字段當(dāng)前的內(nèi)容。第三章表的建字段中。lUSE 學(xué)生lAPPEND MEMO 簡歷FROM stud.txtlMODIFY M

16、EMO 簡歷lUSE第三章表的建添加新記錄。l命令格式:INSERT BEFOREBLANKl參數(shù)說明:lBLANK:同APPEND命令,用來插入一個空記錄lBEFORE:打開瀏覽窗口,在當(dāng)前表的當(dāng)前記錄后插入一個新記錄,無該選項,在當(dāng)前表的當(dāng)前記錄前插入一條空記錄。第三章表的建還可以通過命令設(shè)置條件,有選擇地顯示表中的記錄。命令1:連續(xù)滾動顯示LIST命令l格式:LIST OFF FOR WHILEFIELDS lTO PRINTER PROMPT/TO NOCONSOLENOOPTIMIZE命令2:分屏顯示DISPLAY 命令l格式:DISPLAY OFF FOR WHILEFIELDS

17、lTO PRINTER PROMPT/TO NOCONSOLENOOPTIMIZE第三章表的建行操作的記錄范圍,一般有4種選擇:lALL:對表文件所有的記錄進行操作。lNEXT n:只對從當(dāng)前記錄開始的連續(xù)若干個指定數(shù)目的記錄進行操作。lRECORD n:只對第n個記錄進行操作。lREST:只對從當(dāng)前記錄開始到表文件尾為止的所有記錄進行操作。l其中,n為數(shù)值表達式的值。第三章表的建句:lFOR:在指定的范圍內(nèi),按條件逐個檢查所有記錄,直到該范圍內(nèi)的最后一條記錄為止。lWHILE :在指定的范圍內(nèi),按條件逐個檢查所有記錄,一旦遇到第一個不滿足條件的記錄(即邏輯表達式計算結(jié)果為.F.)時,就停止查

18、找并結(jié)束該命令的執(zhí)行。3、FIELDS子句。l該子句用于規(guī)定當(dāng)前處理的字段和表達式。它有三種格式:l該子句實現(xiàn)對表的字段篩選,完成關(guān)系的投影運算。4、OFF子句。l不顯示記錄號。如果省略了OFF,就在每個記錄前顯示記錄號。第三章表的建ushmore優(yōu)化無效。6、O PRINTER PROMPT子句。l將命令的結(jié)果定向輸出到打印機。7、TO FILE子句。l將命令的結(jié)果輸出定向到指定的文件中。另有某些命令帶有下列子句,其功能簡述如下:lNOCONSOLE:不向Visual FoxPro 主窗口或活動的用戶自定義窗口輸出。lIN /:處理非當(dāng)前工作區(qū)中的表,即用或指出的非當(dāng)前工作區(qū)中的表。第三章表

19、的建改表記錄外,還可以用EDIT或CHANGE命令全屏幕編輯修改表記錄。此外,經(jīng)常使用REPLACE命令在程序中動態(tài)更新表記錄。l命令格式:lREPLACE WITH ADDITIVEl, WITH ADDITIVE lFOR WHILElIN / NOOPTIMIZEl參數(shù)說明:l WITH ADDITIVE, WITH :指定用的值來代替中的數(shù)據(jù),用的值來代替中的數(shù)據(jù),依此類推。第三章表的建采用以下方法來處理數(shù)據(jù):lREPLACE截短表達式的小數(shù)位,然后取整剩余部分。l如果此時數(shù)值字段仍然放不下表達式的值,用科學(xué)計數(shù)法在字段中保存表達式的值。l若仍放不下表達式的值,用星號代替字段內(nèi)容(數(shù)據(jù)

20、溢出)。lADDITIVE:把對備注字段的替代內(nèi)容追加到備注字段的后面。ADDITIVE只對替換備注字段有用,如果省略ADDITIVE,則用表達式的值改寫備注字段原有內(nèi)容。lREPLACE命令的默認(rèn)范圍是當(dāng)前記錄(NEXT 1)。lNOOPTIMIZE:使該命令的Rushmore優(yōu)化無效。第三章表的建輯刪除,只是給記錄加上刪除標(biāo)記,這些作了刪除標(biāo)記的記錄仍保留在表文件中。用LIST命令顯示時,仍然可以看到這些記錄,邏輯刪除的記錄在記錄號后用“*”表示。l命令格式:DELETE FOR WHILE IN /NOOPTIMIZEl命令說明:l根據(jù)SET DELETED ON/OFF設(shè)置的不同,操作

21、時將產(chǎn)生不同結(jié)果。lSET DELETED ON:刪除標(biāo)記有效,處理記錄時忽略有刪除標(biāo)記的記錄。lSET DELETED OFF(默認(rèn)值):刪除標(biāo)記失效,處理記錄時可以訪問標(biāo)有刪除標(biāo)記的記錄。lFOR WHILE子句用于指定一個條件,僅給滿足邏輯條件的記錄做刪除標(biāo)記。l標(biāo)有刪除標(biāo)記的記錄可以用RECALL恢復(fù)(清除標(biāo)記)。l不帶選項的DELETE命令,其默認(rèn)范圍是當(dāng)前記錄(NEXT 1)。第三章表的建標(biāo)記的記錄。l命令格式:RECALL FOR WHILE NOOPTIMIZEl命令說明:l缺省范圍為當(dāng)前記錄(NEXT 1)l一旦對表文件使用了PACK命令或ZAP命令,帶刪除標(biāo)記的記錄將永遠(yuǎn)消

22、失,無法恢復(fù)。第三章表的建表中永久刪除,減少與該表相關(guān)的備注文件所占用的空間。l命令格式:PACK MEMO DBFl參數(shù)說明:lMEMO:從備注文件中刪除未使用的空間,但不從表中刪除標(biāo)有刪除標(biāo)記的記錄。備注字段的信息保存在一個相關(guān)的備注文件內(nèi)。lDBF:從表中刪除標(biāo)有刪除標(biāo)記的記錄,但不影響備注文件。l如果不帶MEMO和DBF子句發(fā)出PACK命令,PACK命令將同時作用于表和備注文件。第三章表的建的結(jié)構(gòu)。l命令說明:lZAP命令等價于DELETE ALL和PACK聯(lián)用,但ZAP速度更快。如果SET SAFETY為ON,Visual FoxPro會提示是否要從當(dāng)前表中刪除記錄。lZAP命令只用

23、來刪除表的記錄,表結(jié)構(gòu)仍然存在。而刪除文件的命令是刪除整個文件,將記錄與結(jié)構(gòu)全部刪除。第三章表的建定位的,它是一種內(nèi)部標(biāo)志,用來指出表文件的當(dāng)前記錄。對表文件的許多操作都是對當(dāng)前記錄進行的。在打開表文件時,記錄指針指向第一個記錄。隨著命令的執(zhí)行,記錄指針會發(fā)生移動。有時也需要人為移動記錄指針,稱為記錄指針的定位。在表的索引文件未打開的情況下,記錄指針是按表的物理順序移動的。而在表的索引文件打開的情況下,記錄指針一般是按表的邏輯順序移動的。第三章表的建 IN /l格式2:GO/GOTO TOP/BOTTOM IN /l命令說明:lRECORD 指定一個物理記錄號,記錄指針將移至該記錄。你可以省略

24、GO或GOTO命令而只指定記錄號,但如果僅指定記錄號,則只能在當(dāng)前工作區(qū)中移動記錄指針。該命令所指的物理記錄號是記錄在表中的物理順序,執(zhí)行格式1這條絕對移動命令,無論索引文件是否打開,均移到物理記錄號所指的記錄,與表的邏輯順序無關(guān)。lTOP:記錄指針指向表的第一個記錄上。lBOTTOM:記錄指針指向最后一個記錄上。第三章表的建作區(qū)號/l功能:使記錄指針在表中向前或向后相對移動。l命令說明:l:用于指定記錄指針需要移動的記錄數(shù);缺省,記錄指針移到下一條記錄,相當(dāng)于命令SKIP 1。如果為正數(shù),記錄指針向文件尾移動個記錄;如果為負(fù)數(shù),記錄指針將向文件頭移動個記錄。l如果記錄指針指向表的最后一個記錄

25、,并且執(zhí)行不帶參數(shù)的SKIP 命令時,RECNO( ) 函數(shù)返回值比表中記錄總數(shù)大1,EOF( )函數(shù)返回“真”(.T.);如果記錄指針指向表的第一個記錄,并執(zhí)行SKIP -1命令,則RECNO( )函數(shù)返回值與第一個記錄的記錄號相同,BOF( )函數(shù)返回“真”(.T.)。第三章表的建當(dāng)前選定的表進行排序,并將排好序的記錄輸出到新表中。l命令格式:lSORT TO ON /A/D /C , /A/D /ClASCENDING / DESCENDING FOR WHILElNOOPTIMIZE FIELDS /LIKE/ EXCEPT第三章表的建FoxPro為表存取.DBF文件擴展名。lON :

26、指定當(dāng)前選定的、要排序的表中的字段名,l/A/D /C:對于排序中包含的每個字段,可以指定排序順序(升序或降序)。/A為字段指定了升序。/D指定了降序。默認(rèn)情況下,字符型字段的排序順序區(qū)分大小寫。如果在字符型字段名后包含/C,則忽略大小寫。lASCENDING:將所有不帶/D的字段指定為升序排列。lDESCENDING:將所有不帶/A的字段指定為降序排列。l默認(rèn)范圍:ALL,即所有記錄。lFIELDS LIKE :在新表中包含那些與字段相匹配的原表字段,新表用SORT命令創(chuàng)建。lFIELDS EXCEPT :在新表中包含那些不與字段相匹配的原表字段。第三章表的建Pro中的索引是由指針構(gòu)成的文件

27、,這些指針邏輯上按照索引關(guān)鍵字值的順序排列,這種順序稱為記錄的邏輯順序。索引文件和表文件分別存儲,不改變表中記錄的物理順序。2、索引文件的類型l(1) 單項索引文件l擴展名為.IDX,只能容納一項索引,只能用命令方式操作。l(2) 復(fù)合索引文件l擴展名為.CDX,可以容納多項索引,索引之間用唯一的索引標(biāo)識區(qū)別,每個索引標(biāo)識名的作用等同于一個索引文件名。第三章表的建第三章表的建個字段構(gòu)成的索引表達式。索引表達式的類型決定了不同的索引方式。在Visual FoxPro中,有四種類型的索引:主索引、候選索引、普通索引和惟一索引l(1) 主索引:絕對不允許在指定的字段或表達式中有重復(fù)值。一個表只能建一

28、個主索引。l(2) 候選索引:同樣不允許在指定的字段或表達式中有重復(fù)值。與主索引不同,一個表可以創(chuàng)建多個候選索引。l(3) 普通索引:允許在指定的字段或表達式中有重復(fù)值,在數(shù)據(jù)庫庫表和自由表中都可以創(chuàng)建普通索引。l(4) 惟一索引:也允許在指定的字段或表達式中有重復(fù)值,但是只存儲索引文件中重復(fù)值的第一次出現(xiàn)。第三章表的建l命令格式:lINDEX ON TO | TAG lOF FOR COMPACTlASCENDING/DESCENDING UNIQUE | CANDIDATE ADDITIVEl參數(shù)說明:lTO :創(chuàng)建一個單項索引文件名,默認(rèn)的索引文件擴展名為.IDX。lTAG OF :創(chuàng)建

29、一個復(fù)合索引文件。lFOR:指定條件,索引文件只為那些滿足條件的記錄創(chuàng)建索引關(guān)鍵字,實現(xiàn)篩選數(shù)據(jù)第三章表的建lASCENDING/DESCENDING:指定文件是升序或降序,默認(rèn)為升序,本選項只對復(fù)合索引文件有效。lUNIQUE:當(dāng)有多個記錄的值相同時,只有其中第一個記錄被載入索引。l CANDIDATE:創(chuàng)建候選結(jié)構(gòu)索引標(biāo)識,只對結(jié)構(gòu)復(fù)合索引標(biāo)識有效lADDITIVE:指定先前打開的索引文件保持打開狀態(tài)。缺省,則用INDEX命令建立索引文件時,所有先前打開的索引將關(guān)閉。第三章表的建由當(dāng)前表中的字段名或由字段名、函數(shù)、常數(shù)等組成的表達式構(gòu)成。索引表達式可以是單一字段,也可以是多個字段的組合表達

30、式。l索引表達式類型有4種:字符型、數(shù)值型、日期型、邏輯型l注意:組合表達式中數(shù)據(jù)類型必須一致。(1) 創(chuàng)建單項索引文件,命令的基本格式如下:lINDEX ON TO (2) 創(chuàng)建結(jié)構(gòu)復(fù)合索引文件,命令的基本格式如下:lINDEX ON TAG 第三章表的建式如下:lINDEX ON TAG OF l例3.15 降序排序lUSE 學(xué)生lINDEX ON - 獎學(xué)金TO IJXJ &單項索引文件的降序排序lINDEX ON 年齡DESC TAG AGE &結(jié)構(gòu)復(fù)合索引文件的降序排序lINDEX ON 獎學(xué)金DESC TAG JXJ OF JXJ &非結(jié)構(gòu)復(fù)合索引文件的降序排序第三章表的建有三個選

31、項卡,字段選項卡和索引選項卡,這兩個選項卡都可以建立或修改索引,但二者有區(qū)別。l在字段選項卡中只能建立普通索引,索引關(guān)鍵字為單一字段。第三章表的建引、候選索引和唯一索引。l索引關(guān)鍵字可以是組合字段,也可以是單一字段,索引名可以直接輸入。另外,除了在表達式框中輸入表達式外,還可以通過表達式生成器構(gòu)造復(fù)雜的表達式。方法是,單擊表達式旁邊的小按鈕,在彈出的“表達式生成器”中構(gòu)造。第三章表的建須先打開表文件,索引文件不能脫離表文件而單獨使用。l打開索引文件有兩種方式,一種是在打開表文件時的同時打開索引文件;一種是在表文件打開后,用SET IDENX等命令打開索引文件。第三章表的建文件名 INDEX /

32、 ? lORDER /TAG OF ASCENDING / DESCENDING l參數(shù)說明:lINDEX / ?:指定要打開的一個或多個索引文件。若是多個索引文件,中間用逗號分隔。若未指定索引文件或使用了“?”,Visual FoxPro顯示“打開”對話框,提示用戶選擇索引文件。lORDER / TAG OF :指定一個主控索引文件或標(biāo)識第三章表的建引文件名列表中的次序決定序號,與建立索引的順序無關(guān)。(2)在同一復(fù)合索引文件中,索引標(biāo)識按建立的先后次序決定序號。(3) ORDER 0,以物理記錄次序顯示和訪問表中的記錄。lASCENDING / DESCENDING:指定顯示或訪問表中的記錄

33、,是升序還是降序,它并不改變索引文件或標(biāo)識,僅改變記錄被顯示或訪問的次序。第三章表的建l命令格式:lSET INDEX TO /?lORDER / / TAG OF lASCENDING/DESCENDING ADDITIVEl命令說明:該命令是在表文件打開后再打開索引文件,其他命令參數(shù)與USE命令相同。第三章表的建Sl格式2:SET INDEX TOl命令說明:關(guān)閉當(dāng)前工作區(qū)的所有索引文件。l注意:lCLOSE INDEXES命令關(guān)閉所有工作區(qū)中的全部.IDX和非結(jié)構(gòu)復(fù)合索引文件,表文件和結(jié)構(gòu)復(fù)合索引文件仍然打開。l格式3:USEl命令說明:用不帶選項的USE命令關(guān)閉表文件時,當(dāng)前工作區(qū)的索

34、引文件自動關(guān)閉。第三章表的建下轉(zhuǎn)換主控索引,使用SET ORDER TO 命令l命令格式:SET ORDER TO /l/ TAGOFlIN / ASCENDING/DESCENDING l命令說明:lIN /:為非當(dāng)前工作區(qū)中已打開的表確定主控索引文件或主控索引標(biāo)識。l若要恢復(fù)原始物理順序顯示或處理數(shù)據(jù),則可用SET ORDER TO或SET ORDER TO 0命令。l其它選項的說明見用USE命令打開索引文件第三章表的建INAME,IBIRTHDAY,AGE,NLlSET ORDER TO 2 & 指定主控索引文件IBIRTHDAY.IDXlLIST & 按出生日期索引顯示lSET ORD

35、ER TO 4 l& 指定結(jié)構(gòu)復(fù)合索引文件為主控索引文件,主控索引標(biāo)識SNOlLIST & 按學(xué)號降序顯示lSET ORDER TO TAG SNO lLIST &與上條命令效果顯示相同lSET ORDER TO TAG NL OF NL l& 指定非結(jié)構(gòu)復(fù)合索引文件NL.CDX,主控索引標(biāo)識為NLlLIST &按年齡顯示第三章表的建引文件會自動進行重索引,但未打開的索引文件卻不會自動修改索引,以至在以后打開那些索引文件后,數(shù)據(jù)沒有更新,造成索引混亂,此時需要用REINDEX命令重新索引。l命令格式:REINDEX COMPACTl命令說明:lVisual FoxPro識別每種索引文件的類別(

36、獨立復(fù)合索引文件、結(jié)構(gòu)復(fù)合索引文件及單項索引文件)并分別重建索引。l對使用包含UNIQUE關(guān)鍵字的INDEX命令或SET UNIQUE ON命令創(chuàng)建的索引文件,在重建索引時,仍保持UNIQUE狀態(tài)。lCOMPACT:將普通的單項索引(.IDX)文件轉(zhuǎn)換為壓縮的.IDX文件。第三章表的建NTINUE兩條命令,可以查找沒有建立排序和索引的表。l格式:LOCATE FOR WHILE NOOPTIMIZEl功能:按順序搜索表,找到滿足條件的第一個記錄。l格式:CONTINUEl功能:按照LOCATE命令的條件,繼續(xù)查找下一個滿足條件的記錄,l命令說明:l缺省范圍是ALL。l找到滿足條件的記錄,記錄指

37、針指向第一條記錄,可使用RECNO( )返回該記錄號。并且FOUND( )返回“真”(.T.),EOF( )返回“假”(.F.)。如果找不到滿足條件的記錄,則FOUND( )返回“假”(.F.),EOF( )返回“真”(.T.)lCONTINUE命令不能單獨使用,必須與LOCATE命令配合使用。可重復(fù)執(zhí)行CONTINUE,直到到達范圍邊界或表尾。第三章表的建建立并打開了索引。索引查找有兩條命令,F(xiàn)IND和SEEK。FIND是為了和以前的版本兼容而保留的,SEEK的功能更強。l一、FIND命令。l格式:FIND /l功能:按當(dāng)前主控索引,查找滿足條件的第一個記錄。l命令說明:lFIND命令只能查

38、找字符型或數(shù)值型數(shù)據(jù)。若是字符型數(shù)據(jù),可以加定界符,亦可以不加定界符。不能為空值。l如果查找成功,RECNO( )函數(shù)返回第一條匹配記錄的記錄號,F(xiàn)OUND( )函數(shù)返回“真”(.T.),而EOF( )函數(shù)返回“假”(.F.)。如果查找失敗,則RECNO( )函數(shù)的返回值等于表的記錄數(shù)加1,F(xiàn)OUND( )函數(shù)返回“假”(.F.),而EOF( )函數(shù)返回“真”(.T.)。第三章表的建序號/ l/ TAG OF lASCENDING /DESCENDINGIN /l功能:按當(dāng)前主控索引,搜索滿足條件表達式的第一個記錄,這個記錄的索引關(guān)鍵字必須與指定的表達式匹配。l命令說明:l:由常量、變量和表達式組成。若是字符型常量,則必須加定界符,可以是空字符串,也可以是數(shù)值型、邏輯型、日期型等各種類型的常量、變量和表達式。l如果查找成

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論