Visual Foxpro數(shù)據(jù)庫(kù)及其操作_第1頁(yè)
Visual Foxpro數(shù)據(jù)庫(kù)及其操作_第2頁(yè)
Visual Foxpro數(shù)據(jù)庫(kù)及其操作_第3頁(yè)
Visual Foxpro數(shù)據(jù)庫(kù)及其操作_第4頁(yè)
Visual Foxpro數(shù)據(jù)庫(kù)及其操作_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第四章 Visual Foxpro數(shù)據(jù)庫(kù)及其操作v4.1 Visual Foxpro數(shù)據(jù)庫(kù)及其建立 4.1.1 基本概念 4.1.2 建立數(shù)據(jù)庫(kù) 4.1.3 使用數(shù)據(jù)庫(kù) 4.1.4 修改數(shù)據(jù)庫(kù) 4.1.5 刪除數(shù)據(jù)庫(kù)v4.2 建立數(shù)據(jù)庫(kù)表 4.2.1 在數(shù)據(jù)庫(kù)中建立表 4.2.2 修改表結(jié)構(gòu)v4.3 表的基本操作 4.3.1 使用瀏覽器操作表 4.3.2 增加記錄的命令 4.3.3 刪除記錄的命令 4.3.4 修改記錄的命令 4.3.5 顯示記錄的命令 4.3.6 查詢定位命令v4.4 索引 4.4.1 基本概念 4.4.2 在表設(shè)計(jì)器中建立索引v4.4 索引 4.4.1 基本概念 4.4.2

2、 在表設(shè)計(jì)器中建立索引4.1.1 基本概念 數(shù)據(jù)庫(kù)是表的集合。從Visual FoxPro 3.0開始引入了真正意義上的數(shù)據(jù)庫(kù)概念,才將擴(kuò)展名為.dbf為的數(shù)據(jù)庫(kù)文件組織在一起管理,使它們成為相互關(guān)聯(lián)的數(shù)據(jù)集合。 數(shù)據(jù)庫(kù)是一個(gè)邏輯上的概念和手段,通過(guò)一組系統(tǒng)文件將相互聯(lián)系的數(shù)據(jù)庫(kù)表及其相關(guān)對(duì)象統(tǒng)一組織和管理。所以.dbf文件稱做數(shù)據(jù)庫(kù)表,簡(jiǎn)稱表。 建立數(shù)據(jù)庫(kù)時(shí),相應(yīng)的數(shù)據(jù)庫(kù)名稱的擴(kuò)展名為.dbc,同時(shí)自動(dòng)建立一個(gè)擴(kuò)展名為.dct(備注文件)和.dcx(索引文件)的文件。此三個(gè)文件供數(shù)據(jù)庫(kù)管理系統(tǒng)管理數(shù)據(jù)庫(kù)使用,用戶一般不能直接使用這些文件。 剛建立的數(shù)據(jù)庫(kù)只是定義了一個(gè)空數(shù)據(jù)庫(kù),沒(méi)有數(shù)據(jù),也不

3、能輸入數(shù)據(jù),還要建立數(shù)據(jù)庫(kù)表和其他數(shù)據(jù)對(duì)象,才能輸入數(shù)據(jù)和其他數(shù)據(jù)庫(kù)操作。返回4.1.2 建立數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)的常用方法有以下三種:(1)項(xiàng)目管理器(2)“新建”對(duì)話框(3)使用命令1、在、在項(xiàng)目管理器項(xiàng)目管理器中建立數(shù)據(jù)庫(kù)中建立數(shù)據(jù)庫(kù) 打開已建立的項(xiàng)目文件,出現(xiàn)項(xiàng)目管理器窗口,如圖4.1所示選擇。數(shù)據(jù)數(shù)據(jù)庫(kù)新建新建數(shù)據(jù)庫(kù)輸入文件名保存后同時(shí)打開數(shù)據(jù)庫(kù)設(shè)計(jì)器。2、通過(guò)、通過(guò)“新建新建”對(duì)話框?qū)υ捒蚪?shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù) 單擊工具欄上的新建或文件菜單下的新建如圖4.2數(shù)據(jù)庫(kù)新建文件,后面的操作同上。3、使用使用命令命令交互建立數(shù)據(jù)庫(kù)交互建立數(shù)據(jù)庫(kù) CREAT DATABASE DatabaseNa

4、me ? 說(shuō)明:DatabaseName指要建立的數(shù)據(jù)名稱;如果不指定數(shù)據(jù)庫(kù)名稱或使用?號(hào)都會(huì)彈出創(chuàng)建對(duì)話框請(qǐng)用戶輸入數(shù)據(jù)名稱。指定的數(shù)據(jù)庫(kù)文件若省略擴(kuò)展名,則默認(rèn)為.DBC,同時(shí)也自動(dòng)建立相關(guān)聯(lián)的數(shù)據(jù)庫(kù)備注文件擴(kuò)展名為.DCT,關(guān)聯(lián)的索引文件擴(kuò)展名為.DCX。保存后該數(shù)據(jù)庫(kù)文件被建立,并且自動(dòng)以獨(dú)占方式打開該數(shù)據(jù)庫(kù)。使用命令建立數(shù)據(jù)庫(kù)后不打開數(shù)據(jù)庫(kù)設(shè)計(jì)器,只是數(shù)據(jù)庫(kù)處于打開狀態(tài)以上三種方法都可以建立新的數(shù)據(jù)庫(kù),如果指定的數(shù)據(jù)庫(kù)已經(jīng)存在,很可能會(huì)覆蓋已經(jīng)存在的數(shù)據(jù)庫(kù)。為安全起見可以先執(zhí)行SET SAFETY ON命令,系統(tǒng)會(huì)出現(xiàn)警告對(duì)話框請(qǐng)用戶確認(rèn)。系統(tǒng)默認(rèn)為OFF狀態(tài)。返回 4.1.3 使用

5、(打開)數(shù)據(jù)庫(kù) 打開數(shù)據(jù)庫(kù)的常用方法有以下三種:(1)項(xiàng)目管理器(2)“打開”對(duì)話框(3)使用命令1、利用、利用項(xiàng)目管理器項(xiàng)目管理器打開數(shù)據(jù)庫(kù)打開數(shù)據(jù)庫(kù) 在項(xiàng)目管理器中選擇了相應(yīng)的數(shù)據(jù)庫(kù)時(shí),數(shù)據(jù)庫(kù)自動(dòng)打開,不必手工執(zhí)行打開數(shù)據(jù)庫(kù)的操作。2、通過(guò)、通過(guò)“打開打開”對(duì)話框?qū)υ捒蚪?shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù) 單擊工具欄上的打開或文件菜單下的打開如圖4.3在文件類型中選擇數(shù)據(jù)庫(kù)(*.dbc)再選擇相應(yīng)的文件確定。3、使用、使用命令命令交互打開數(shù)據(jù)庫(kù)交互打開數(shù)據(jù)庫(kù) OPEN DATABASE FileName ?EXCLUSIVE SHAREDNOUPDATEVALIDATE FileName:要打開的數(shù)據(jù)庫(kù)名

6、,可以缺省數(shù)據(jù)庫(kù)文件擴(kuò)展名.dbc,如果不指定數(shù)據(jù)庫(kù)或使用問(wèn)號(hào)?,則顯示打開對(duì)話框。 EXCLUSIVE:以獨(dú)占方式打開數(shù)據(jù)庫(kù),與“打開”對(duì)話框中選擇“獨(dú)占”等效,即不允許其他用戶在同一時(shí)刻也使用該數(shù)據(jù)庫(kù)。 SHARED:以共享方式打開數(shù)據(jù)庫(kù)。即允許其他用戶在同一時(shí)刻使用該數(shù)據(jù)庫(kù)。默認(rèn)的打開方式由SET EXCLUSIVE ON OFF的設(shè)置值確定,系統(tǒng)默認(rèn)設(shè)置為ON。 NOUPDATE:指定數(shù)據(jù)庫(kù)按只讀方式打開。默認(rèn)的打開方式是讀/寫方式。 VALIDATE:指定檢查在數(shù)據(jù)庫(kù)中引用的對(duì)象是否合法。返回4.1.4 修改數(shù)據(jù)庫(kù) 修改數(shù)據(jù)庫(kù)實(shí)際上是打開數(shù)據(jù)設(shè)計(jì)器,用戶可以在數(shù)據(jù)庫(kù)設(shè)計(jì)器中完成各種數(shù)

7、據(jù)庫(kù)對(duì)象的建立、修改和刪除等操作。打開數(shù)據(jù)庫(kù)設(shè)計(jì)器的常用方法有以下三種:(1)項(xiàng)目管理器(2)“打開”對(duì)話框(3)使用命令1、利用項(xiàng)目管理器打開數(shù)據(jù)庫(kù)設(shè)計(jì)器(圖4.5)2、通過(guò)“打開”對(duì)話框打開數(shù)據(jù)庫(kù)設(shè)計(jì)器 方法與通過(guò)打開對(duì)話框打開數(shù)據(jù)庫(kù)的方法相同,打開的同時(shí)彈出數(shù)據(jù)庫(kù)設(shè)計(jì)器窗口。3、使用、使用命令命令交互打開數(shù)據(jù)庫(kù)設(shè)計(jì)器交互打開數(shù)據(jù)庫(kù)設(shè)計(jì)器 MODIFY DATABASE DatabaseName ? NOWAIT NOEDITDatabaseName:給出要修改的數(shù)據(jù)庫(kù)名,如果使用問(wèn)號(hào)?或省略該參數(shù)則打開“打開對(duì)話框。NOWAIT:該項(xiàng)只在程序中使用,在交互命令的窗口無(wú)效。其作用是在數(shù)據(jù)庫(kù)

8、設(shè)計(jì)器打開后程序繼續(xù)執(zhí)行,即繼續(xù)執(zhí)行MODIFY DATABASE NOWAIT之后的語(yǔ)句。如果不使用該項(xiàng),在打開數(shù)據(jù)庫(kù)設(shè)計(jì)器后,應(yīng)用程序會(huì)暫停,直到數(shù)據(jù)庫(kù)設(shè)計(jì)器關(guān)閉后應(yīng)用程序才會(huì)執(zhí)行。NOEDIT:使用該選項(xiàng)只是打開數(shù)據(jù)庫(kù)設(shè)計(jì)器,而禁止對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改。返回4.1.5 刪除數(shù)據(jù)庫(kù)1、使用項(xiàng)目管理器使用項(xiàng)目管理器 打開已建立的項(xiàng)目文件,出現(xiàn)項(xiàng)目管理器窗口,單擊“數(shù)據(jù)”標(biāo)簽,選擇要?jiǎng)h除的“數(shù)據(jù)庫(kù)”,然后單擊“移去”按鈕。出現(xiàn)圖4.5選擇對(duì)話框:移去:從項(xiàng)目管理器中刪除數(shù)據(jù)庫(kù),但并不從磁盤上刪除相應(yīng)的數(shù)據(jù)庫(kù)文件;刪除:從項(xiàng)目管理器中刪除數(shù)據(jù)庫(kù),并從磁盤上刪除相應(yīng)的數(shù)據(jù)庫(kù)文件;取消:取消當(dāng)前的操作,

9、即進(jìn)行刪除數(shù)據(jù)的操作。注意:以上提到的數(shù)據(jù)庫(kù)文件是.dbc文件,而不是.dbf文件,被刪除的數(shù)據(jù)庫(kù)中的表成為自由表。2、使用命令方式、使用命令方式 DELETE DATABASE DatabaseName ? DELETEABSEL RECYCLE DatabaseName:給出磁盤上刪除的數(shù)據(jù)庫(kù)文件名,此時(shí)數(shù)據(jù)庫(kù)必須是關(guān)閉狀態(tài);如果使用問(wèn)號(hào)?,則會(huì)打開刪除對(duì)話框請(qǐng)用戶選擇要?jiǎng)h除的數(shù)據(jù)庫(kù)文件。 DELETEABSEL:選擇該選項(xiàng)則在刪除數(shù)據(jù)庫(kù)文件的同時(shí)從磁盤上刪除該數(shù)據(jù)庫(kù)所含的表(.dbf文件)等。 RECYCLE:選擇該選項(xiàng)則將刪除的數(shù)據(jù)庫(kù)文件和表文件等放入回收站。 如果SET SAFETY

10、 設(shè)置值為ON,則會(huì)提示是否要?jiǎng)h除數(shù)據(jù)庫(kù),否則不出現(xiàn)提示,直接進(jìn)行刪除操作。返回4.2.1 在數(shù)據(jù)庫(kù)中建立表 在關(guān)系數(shù)據(jù)庫(kù)中將關(guān)系也稱做表,一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)就是由表的集合構(gòu)成的,一般一個(gè)表對(duì)應(yīng)于磁盤上的一個(gè)擴(kuò)展名為.dbf的文件,如果有備注或通用型大字段,則磁盤上還會(huì)有一個(gè)對(duì)應(yīng)擴(kuò)展名為.fpt的文件。 在數(shù)據(jù)庫(kù)中建立表最簡(jiǎn)單和直接的方法就是使用數(shù)據(jù)庫(kù)設(shè)計(jì)器。如圖4.7和圖4.8。1、字段名字段名:即關(guān)系的屬性名或表的列名。一個(gè)表由若干列(字段)構(gòu)成。每個(gè)列都必須有一個(gè)惟一的名字字段名。自由表字段名最長(zhǎng)為10個(gè)字符。數(shù)據(jù)庫(kù)表字段名最長(zhǎng)為128個(gè)字符。字段名必須以字母或漢字開頭。字段名可以由字母

11、、漢字、數(shù)字和下劃線組成。字段名中不能包含空格。2、字段類型和寬度、字段類型和寬度:字段類型決定存儲(chǔ)在字段中的值的數(shù)據(jù)類型,數(shù)據(jù)類型通過(guò)寬度限制可以決定存儲(chǔ)數(shù)據(jù)的數(shù)量或精度。P135字符型C:可以是字母、數(shù)字等各種字符型文本,如用戶名稱等。貨幣型Y:貨幣單位,如貨物的價(jià)格。數(shù)值型N:整數(shù)或小數(shù),如訂貨數(shù)量。浮點(diǎn)型F:類似于數(shù)值型,其長(zhǎng)度可達(dá)20位。日期D時(shí)間T型:由年月日時(shí)分秒構(gòu)成。雙精度型B:一般用于精度要求較高的數(shù)據(jù)。整型I:不帶小數(shù)點(diǎn)的數(shù)值類型。邏輯型L:值為真(.T.)或假(.F.)。備注型M:不定長(zhǎng)的字符型文本。通用型G:用于標(biāo)記電子表格、文檔、圖片等OLE對(duì)象。占4個(gè)字節(jié)。字符型(

12、二進(jìn)制)C:同字符型。但是當(dāng)代碼頁(yè)更改時(shí)字符值不變。備注型(二進(jìn)制)M:同備注型。但是當(dāng)代碼頁(yè)更改時(shí)備注不變。3、空值、空值:就是缺值或還沒(méi)有確定值。4、字段有效性組框、字段有效性組框:定義字段的有效性規(guī)則、違反規(guī)則時(shí)的提示信息和字段的默認(rèn)值。5、顯示組框、顯示組框格式:一個(gè)輸出掩碼,它決定了字段在表單、瀏覽窗口等界面中的顯示風(fēng)格。輸入掩碼:是字段的一種屬性,用以限制或控制用戶的輸入格式。標(biāo)題:用于顯示字段的標(biāo)題,如果不指定標(biāo)題則顯示字段名。6、字段注釋、字段注釋:便于日后或其他人對(duì)數(shù)據(jù)庫(kù)進(jìn)行維護(hù)。在數(shù)據(jù)庫(kù)中另外一種直接建立表的方法是: 使用OPEN DATABASE命令打開數(shù)據(jù)庫(kù)。 使用CR

13、EAT命令建立表。對(duì)表進(jìn)行操作,一般先用USE命令打開表:USE TableName TableName:要打開的表名,如果不指定參數(shù)則關(guān)閉當(dāng)前打開的表,如果沒(méi)有打開的表,則什么都不做。例如:打開倉(cāng)庫(kù)表的命令是:USE 倉(cāng)庫(kù)返回4.2.2 修改表結(jié)構(gòu)1、修改已有的字段、修改已有的字段用戶可以直接修改字段的名稱、類型和寬度。2、增加新的字段、增加新的字段直接將光標(biāo)移動(dòng)到最后,然后輸入新的字段名。若要在原有的字段中間插入新字段,則首先將光標(biāo)定位到要插入新字段的位置,然后單擊插入按鈕,這時(shí)會(huì)插入一個(gè)新字段。3、刪除不用的字段、刪除不用的字段如果要?jiǎng)h除某個(gè)字段,首先將光標(biāo)定位到要?jiǎng)h除的字段上,然后單擊

14、刪除按鈕。返回4.3.1 使用瀏覽器操作表 表建立起來(lái)后,就可以對(duì)其進(jìn)行操作,都需要首先用USE命令打開要操作的表。 在交互式工作方式下,最簡(jiǎn)單的、方便的方法就是使用BROWSE瀏覽器。利用項(xiàng)目管理器:將數(shù)據(jù)庫(kù)展開至表,選擇要操作的表,然后單擊“瀏覽”命令按鈕。圖4.11利用數(shù)據(jù)庫(kù)設(shè)計(jì)器:選擇要操作的表,“數(shù)據(jù)庫(kù)”菜單或右擊瀏覽。利用命令:先用USE命令打開,再輸入BROWSE命令。1、瀏覽操作:鍵盤或鼠標(biāo)操作。2、修改記錄:定位光標(biāo),直接修改。4.14.2命令小結(jié)數(shù)據(jù)庫(kù)操作創(chuàng)建數(shù)據(jù)庫(kù): CREA DATA 數(shù)據(jù)庫(kù)文件名 打開數(shù)據(jù)庫(kù): OPEN DATA 數(shù)據(jù)庫(kù)文件名 修改數(shù)據(jù)庫(kù): MODI

15、DATA 數(shù)據(jù)庫(kù)文件名 刪除數(shù)據(jù)庫(kù): DELE DATA 數(shù)據(jù)庫(kù)文件名 表操作1、在數(shù)據(jù)庫(kù)中創(chuàng)建表 OPEN DATA 數(shù)據(jù)庫(kù)文件名 CREA 表文件名2、創(chuàng)建自由表:CREA 表文件名3、修改表結(jié)構(gòu): USE 表文件名 MODI STRU3、刪除記錄邏輯刪除:只是在記錄旁作刪除標(biāo)記,必要時(shí)還可以去掉刪除標(biāo)記恢復(fù)記錄。物理刪除:真正從表中刪除記錄。注意:物理刪除是在邏輯刪除的基礎(chǔ)上進(jìn)行的,即物理刪除是將那些有刪除標(biāo)記的記錄真正刪除。置刪除標(biāo)記和取消刪除標(biāo)記命令:Ctrl+T;或從“表”菜單中選擇“切換刪除標(biāo)記”;或用鼠標(biāo)直接點(diǎn)擊。如果要在瀏覽器刪除有刪除標(biāo)記的記錄,可以從“表”菜單中選擇“徹底

16、刪除”。可以直接關(guān)閉瀏覽窗口退出BROWSE瀏覽器。4.3.2 增加記錄的命令1、APPEND命令功能:在表的尾部增加一條空白記錄。格式:APPEND或APPEND BLANK或CTRL+Y使用APPEND命令需要立刻輸入新的記錄。2、INSERT命令功能:可以在表的任意位置插入新的記錄。格式:INSERT BEFORE BLANK不指定BEFORE則在當(dāng)前記錄之后插入一條新記錄,否則在當(dāng)前記錄之前插入一條新記錄。如果不指定BLANK則直接出現(xiàn)圖4.14,并以交互方式輸入記錄的值。否則插入一條空白記錄,然后再利用其他交互命令進(jìn)行修改。注意:若表上建立了主索引或候選索引,則不能用以上命令插入記錄

17、,必須用SQL的INSERT命令。4.3.3 刪除記錄的命令1、置刪除標(biāo)記命令功能:刪除或置刪除標(biāo)記。格式:DELETE FOR lExpression1說(shuō)明:如果不用FOR短語(yǔ)指定邏輯條件,則只是刪除當(dāng)前一條記錄;如果用FOR短語(yǔ)指定了邏輯表達(dá)式lExpression1,則邏輯刪除使該邏輯表達(dá)式為真的所有記錄。例:邏輯刪除當(dāng)前表中年齡為20的學(xué)生記錄。DELETE FOR 年齡=202、恢復(fù)記錄命令格式:RECALL FOR lExpression13、物理刪除有刪除標(biāo)記的記錄:PACK4、物理刪除表中的全部記錄:ZAP4.3.4 修改記錄的命令1、用EDIT或CHANGE命令交互式修改2、

18、用REPLACE命令直接修改格式:REPLACE FieldName1 WITH eExpression1 , FieldName2 WITH eExpression2 FOR lExpression1功能:直接利用表達(dá)式eExpression的值替換字段FieldName的值。如果不使用FOR短語(yǔ),則默認(rèn)修改的是當(dāng)前記錄;如果使用了FOR短語(yǔ),則修改邏輯表達(dá)式lExpression1為真的所有記錄。例:將當(dāng)前表中所有學(xué)生的年齡加1。 REPLACE ALL 年齡 WITH 年齡+14.3.5 顯示記錄的命令LIST和DISPLAY的區(qū)別:僅在不使用條件時(shí),LIST默認(rèn)顯示全部記錄,而DISP

19、LAY則默認(rèn)顯示全部記錄。格式:LIST/DISPLAY FIELDS FieldlistFOR lExpression1 OFF TO PRINTERPROMPT TO FILE FileNameFieldlist:是用逗號(hào)隔開的字段名表,默認(rèn)顯示全部字段。TO PRINTER:將結(jié)果輸出到打印機(jī)。TO FILE:將結(jié)果輸出到文件, FileName是文件名,默認(rèn)文件擴(kuò)展名為.txt。例:顯示當(dāng)前表中所有男生的記錄。 LIST FOR 性別=“男”4.3.6 查詢定位命令1、用GOTO/GO命令直接定位 GO nRecordNumber TOP BOOTTOM2、SKIP命令格式:SKIP

20、nRecords功能:當(dāng)前記錄確定后,可以用SKIP命令向前或向后移動(dòng)若干條記錄位置。3、用LOCATE命令定位格式:LOCATE FOR lExpression功能:按條件定位記錄位置的命令。如果滿足條件的記錄則指針指向文件結(jié)束位置。如果要使指針指向下一條滿足條件的記錄,使用CONTINUE命令。4.4.1 索引的基本概念 若要按特定的順序定位、查看或操作表中的記錄,可以使用索引。索引是由指針構(gòu)成的文件,這些指針邏輯上按照索引關(guān)鍵字值進(jìn)行排序。索引文件和表的.dbf文件分別存儲(chǔ),并且不改變表中記錄的物理順序。創(chuàng)建索引實(shí)際上是創(chuàng)建一個(gè)由指向.dbf文件記錄的指針構(gòu)成的文件。若要根據(jù)特定順序處理

21、表記錄,可以選擇一個(gè)相應(yīng)的索引,使用索引還可以加速對(duì)表的操作。 可以在表設(shè)計(jì)器中定義索引。 索引文件有兩種,單索引文件和復(fù)合索引文件,而復(fù)合索引文件又可分為結(jié)構(gòu)復(fù)合索引文件和非結(jié)構(gòu)復(fù)合索引文件兩種。 VFP對(duì)結(jié)構(gòu)復(fù)合索引文件提供了四種類型:主索引、候選索引、唯一索引和普通索引 。1、主索引、主索引 在指定關(guān)鍵字段或索引表達(dá)式中不允許重復(fù)值的索引,這樣的索引可以起到關(guān)鍵字的作用。主要用于主表或被引用的表,用來(lái)在一個(gè)永久關(guān)系中建立參照完整性。 建立主索引的字段可以看作是主關(guān)鍵字,一個(gè)表只能有一個(gè)主關(guān)鍵字,所以一個(gè)表只能創(chuàng)建一個(gè)主索引。主索引可以確保字段中輸入值的唯一性并決定了處理記錄的順序??梢詾?/p>

22、數(shù)據(jù)庫(kù)中的每一個(gè)表建立一個(gè)主索引每一個(gè)表建立一個(gè)主索引。如果某個(gè)表已經(jīng)有了一個(gè)主索引,還可以為它添加候選索引。2、候選索引、候選索引 候選索引和主索引具有相同的特性,建立候選索引的字段可以看作是候選關(guān)鍵字,所以一個(gè)表可一個(gè)表可以創(chuàng)建多個(gè)候選索引以創(chuàng)建多個(gè)候選索引。 候選索引像主索引一樣要求字段值的唯一性并決定了處理記錄的順序。在數(shù)據(jù)庫(kù)表和自由表中均可為每個(gè)表建立多個(gè)候選索引。3、唯一索引、唯一索引 唯一索引是為了保持同早期版本的兼容性,它的“唯一性”是指索引項(xiàng)的唯一,而不是字段值的唯一。它以指定字段的首次出現(xiàn)為基礎(chǔ),選定一組記錄,并對(duì)記錄進(jìn)行排序。在一個(gè)表一個(gè)表中可以建立多個(gè)唯一索引中可以建立

23、多個(gè)唯一索引。4、普通索引、普通索引 普通索引也可以決定記錄的處理順序,它不僅允許字段中出現(xiàn)重復(fù)值,并且索引項(xiàng)中也允許出現(xiàn)重復(fù)值。在一個(gè)表中可以建立多個(gè)普通索一個(gè)表中可以建立多個(gè)普通索引引。主索引和候選索引具有相同的功能,除具有按升序或降序索引的功能外,都還具有關(guān)鍵字的特性,建立主索引或候選索引的字段值可以保 證唯一性,它拒絕重復(fù)的字段值。唯一索引和普通索引分別與以前版本的索引含義相同,它們只起到索引排序的作用。唯一索引與字段值的唯一性無(wú)關(guān),即建立了唯一索引的字段,它的字段值是可以重復(fù)的,它的“唯一”是指在使用相應(yīng)索引時(shí),重復(fù)的索引字段值只有唯一一個(gè)值出現(xiàn)在索引項(xiàng)中。 如果需要排序記錄,以便顯

24、示、查詢或打印,可以使用普通索引、候選索引或主索引。 如果要在字段中控制重復(fù)值的輸入并對(duì)記錄排序,則對(duì)數(shù)據(jù)表可以使用主索引或候選索引,對(duì)自由表可以使用候選索引。 如果準(zhǔn)備設(shè)置關(guān)系,則可以依據(jù)表在關(guān)系中所起的作用來(lái)分別使用普通索引、主索引或候選索引。4.4.2 在表設(shè)計(jì)器中建立索引1、單項(xiàng)索引、單項(xiàng)索引 在表設(shè)計(jì)器界面中的“字段”選項(xiàng)卡進(jìn)行設(shè)置:無(wú)、升序和降序(默認(rèn)是無(wú))。如果選定了升序或降序,則在對(duì)應(yīng)的字段上建立了一個(gè)普通索普通索引引,索引名與字段名同名,索引表達(dá)式就是對(duì)應(yīng)的字段。2、復(fù)合字段索引復(fù)合字段索引:在多個(gè)字段上的索引。 建立復(fù)合字段索引的方法:如圖4.15和圖4.16在一個(gè)表上可以

25、建立多個(gè)普通索引、多個(gè)唯一索引、多個(gè)候選索引,但只能建立一個(gè)主索引。主索引用于關(guān)鍵字字段;候選索引用于那些不作為主關(guān)鍵字但字段值又必須唯一的字段;普通索引用于一般地提高查詢速度;唯一索引用于一些特殊的程序設(shè)計(jì)。索引可以提高查詢速度,但是維護(hù)也要付出代價(jià)。4.4.3 用命令建立索引 INDEX ON TO | TAG TagName OF 復(fù)合索引文件名復(fù)合索引文件名FOR COMPACTASCENDING | DESCENDING UNIQUE | CANDIDATE ADDITIVE功能:功能:對(duì)當(dāng)前表中滿足條件的記錄,按的值建立一個(gè)索引文件,并打開此索引文件,其缺省的文件擴(kuò)展名為.IDX。

26、 索引關(guān)鍵表達(dá)式索引關(guān)鍵表達(dá)式:用以指定記錄重新排序的字段或表達(dá)式。 TO :建立一個(gè)單獨(dú)的索引文件, 是擴(kuò)展名為.idx的文件,該項(xiàng)是為了與以前版本兼容,現(xiàn)在一般只是在建立一些臨時(shí)索引時(shí)才使用。 TAG TagName: TagName指給出的索引名。多個(gè)索引可以創(chuàng)建在一個(gè)索引文件中,稱為結(jié)構(gòu)復(fù)合索引,文件名與相關(guān)的表同名,擴(kuò)展名為.cdx。 如果選用OF短語(yǔ):則可以用復(fù)合索引文件名指定包含多個(gè)索引的復(fù)合索引文件名,擴(kuò)展名也是.cdx。 FOR 條件條件:給出索引過(guò)濾條件,只索引滿足條件的記錄,一般不用。 COMPACT: 當(dāng)使用TO 單索引文件名單索引文件名時(shí)說(shuō)明建立一個(gè)壓縮的.idx文件

27、,復(fù)合索引總是壓縮的。 ASCENDING | DESCENDING:說(shuō)明建立升序或降序索引,默認(rèn)升序。 UNIQUE | CANDIDATE:說(shuō)明建立唯一索引或建立候選索引。 ADDITIVE:說(shuō)明現(xiàn)在建立索引時(shí)是否關(guān)閉以前的索引,默認(rèn)是除結(jié)構(gòu)復(fù)合索引文件外,關(guān)閉其它打開的索引文件,使新建立的索引成為當(dāng)前索引。例:INDEX ON 倉(cāng)庫(kù)號(hào) TAG 倉(cāng)庫(kù)號(hào):表示在結(jié)構(gòu)復(fù)合索引添加一個(gè)倉(cāng)庫(kù)號(hào)字段的索引項(xiàng),索引名為“倉(cāng)庫(kù)號(hào)”。從索引的組織方式來(lái)講共有三類索引: 單獨(dú)的.idx索引,是一種非結(jié)構(gòu)單索引; 采用非默認(rèn)名的.cdx索引,也是非結(jié)構(gòu)復(fù)合索引; 與表同名的.cdx索引,是結(jié)構(gòu)復(fù)合索引。與表同

28、名的.cdx索引是一種結(jié)構(gòu)復(fù)合壓縮索引,是最重要最普通的一種索引文件,在表設(shè)計(jì)器中建立的索引都是這類索引,它有如下特點(diǎn): 在打開表時(shí)自動(dòng)打開; 在同一索引文件中能包含多個(gè)索引方案,或索引關(guān)鍵字; 在添加、更改或刪除記錄時(shí)自動(dòng)維護(hù)索引。4.4.4 使用索引1、打開索引文件、打開索引文件 與表名相同的結(jié)構(gòu)索引在打開表時(shí)都能夠自動(dòng)打開,但對(duì)于非結(jié)構(gòu)索引必須在使用之前打開索引文件。 SET INDEX TO 2、設(shè)置當(dāng)前索引設(shè)置當(dāng)前索引 SET ORDER TO 索引序號(hào) | TAG 索引名 ASCENDING | DESCENDING3、使用索引快速定位使用索引快速定位 SEEK ORDER | T

29、AG索引名 ASCENDING | DESCENDING4、刪除索引刪除索引 DELETE TAG DELETE TAG ALL 刪除全部索引4.5.1 實(shí)體完整性與主關(guān)鍵字 數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特性,一般包括實(shí)體完整性、域完整性和參照完整性等。 實(shí)體完整性是保證表中記錄惟一的特性,即在一個(gè)表中不允許有重復(fù)的記錄。在VFP中利用主關(guān)鍵字或候選關(guān)鍵字來(lái)保證表中的記錄惟一,即保證實(shí)體惟一性。 如果一個(gè)字段的值或幾個(gè)字段的值能夠惟一標(biāo)識(shí)表中的記錄,則這樣的字段稱為候選關(guān)鍵字。在一個(gè)表上可能會(huì)有幾個(gè)具有這種特性的字段或字段的組合,從中選擇一個(gè)作為主關(guān)鍵字。 在VFP中將主關(guān)鍵字稱作主索引,將候選關(guān)鍵字稱作候選索引。所以,在VFP中主索引和候選索引有相同的作用。4.5.1 域完整性與約束規(guī)則 在表設(shè)計(jì)器中數(shù)據(jù)類型的定義屬于域完整性的范疇。對(duì)于各字段的數(shù)據(jù)類型,可以通過(guò)“寬度”進(jìn)行來(lái)限定其取值類型和范圍,還可用一些域約束規(guī)則來(lái)進(jìn)行一步保證域完整性。域約束規(guī)則也稱作字段有效性規(guī)則,在插入或修改字段值時(shí)被激活,主要用于數(shù)據(jù)輸入正確性的檢驗(yàn)。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論