第三章VisualFoxPro數(shù)據(jù)庫及其操作_第1頁
第三章VisualFoxPro數(shù)據(jù)庫及其操作_第2頁
第三章VisualFoxPro數(shù)據(jù)庫及其操作_第3頁
第三章VisualFoxPro數(shù)據(jù)庫及其操作_第4頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第三章第三章 Visual FoxPro數(shù)據(jù)庫及其操作數(shù)據(jù)庫及其操作主要內(nèi)容主要內(nèi)容nVisual FoxPro數(shù)據(jù)庫及其建立數(shù)據(jù)庫及其建立n建立數(shù)據(jù)庫表建立數(shù)據(jù)庫表n表的基本操作表的基本操作n索引索引n數(shù)據(jù)完整性數(shù)據(jù)完整性n自由表自由表n多個(gè)表的同時(shí)使用多個(gè)表的同時(shí)使用n排序排序3.1Visual FoxPro數(shù)據(jù)庫及其建立數(shù)據(jù)庫及其建立n幾個(gè)基本概念幾個(gè)基本概念n數(shù)據(jù)庫文件數(shù)據(jù)庫文件(.dbc)n數(shù)據(jù)表文件(數(shù)據(jù)表文件(.dbf)n數(shù)據(jù)庫備注文件(數(shù)據(jù)庫備注文件(.dct)n數(shù)據(jù)庫索引文件(數(shù)據(jù)庫索引文件(.dcx)新建數(shù)據(jù)庫n在項(xiàng)目管理器中新建在項(xiàng)目管理器中新建n用新建對(duì)話框建立用新建對(duì)

2、話框建立n用命令創(chuàng)建用命令創(chuàng)建 create database 數(shù)據(jù)庫名數(shù)據(jù)庫名|?n區(qū)別:區(qū)別:n后兩種方法建立的數(shù)據(jù)庫游離于項(xiàng)目之外后兩種方法建立的數(shù)據(jù)庫游離于項(xiàng)目之外n最后一種方法建立的數(shù)據(jù)庫不會(huì)打開數(shù)據(jù)庫設(shè)計(jì)器最后一種方法建立的數(shù)據(jù)庫不會(huì)打開數(shù)據(jù)庫設(shè)計(jì)器打開數(shù)據(jù)庫n在項(xiàng)目管理器中打開在項(xiàng)目管理器中打開n用打開對(duì)話框用打開對(duì)話框n菜單菜單:文件文件-打開打開n工具欄上的工具欄上的“打開打開”按鈕按鈕n用命令打開(在程序中用)用命令打開(在程序中用)命令方式nOPEN DATABASE FileName | ?n注意點(diǎn)注意點(diǎn)P96n可以同時(shí)打開多個(gè)數(shù)據(jù)庫可以同時(shí)打開多個(gè)數(shù)據(jù)庫n但當(dāng)前數(shù)據(jù)庫

3、只有一個(gè)但當(dāng)前數(shù)據(jù)庫只有一個(gè)n常用工具欄的數(shù)據(jù)庫下拉列表選擇常用工具欄的數(shù)據(jù)庫下拉列表選擇n切換數(shù)據(jù)庫命令切換數(shù)據(jù)庫命令SET DATABASE TO databasename修改數(shù)據(jù)庫n三種方式三種方式P97n項(xiàng)目管理器項(xiàng)目管理器n打開對(duì)話框打開對(duì)話框n菜單菜單:文件文件-打開打開(不同方式不同方式)n工具欄上的工具欄上的”打開打開”按鈕按鈕n使用命令方式使用命令方式使用命令打開數(shù)據(jù)庫n格式:nMODIFY DATABASE Database Name/? NOWAITNOEDIT功能:打開數(shù)據(jù)庫設(shè)計(jì)器nNOWAIT: 在程序中有效。即打開數(shù)據(jù)庫設(shè)計(jì)器后繼續(xù)運(yùn)行程序。nNOEDIT: 只是打

4、開數(shù)據(jù)庫設(shè)計(jì)器,而禁止對(duì)數(shù)據(jù)庫進(jìn)行修改。刪除數(shù)據(jù)庫n 從項(xiàng)目管理器中選擇要?jiǎng)h除的數(shù)據(jù)庫,然后單擊從項(xiàng)目管理器中選擇要?jiǎng)h除的數(shù)據(jù)庫,然后單擊移去移去按鈕。按鈕。 注意:注意:不管是移去還是刪除,都沒有刪除數(shù)據(jù)庫中的不管是移去還是刪除,都沒有刪除數(shù)據(jù)庫中的表文件。若要?jiǎng)h除數(shù)據(jù)庫的同時(shí)刪除數(shù)據(jù)庫所包含的表文件。若要?jiǎng)h除數(shù)據(jù)庫的同時(shí)刪除數(shù)據(jù)庫所包含的表,需要使用命令方式。表,需要使用命令方式。n DELETE DATABASE Database name/? DELETETABLES RECYCLEn選擇選擇DELETETABLES表示刪除其中的表文件。表示刪除其中的表文件。n選擇選擇RECYCLE表

5、示把刪除的庫文件和表文件放到表示把刪除的庫文件和表文件放到回收站?;厥照?。關(guān)閉當(dāng)前數(shù)據(jù)庫關(guān)閉當(dāng)前數(shù)據(jù)庫nClose database3.2建立數(shù)據(jù)庫表建立數(shù)據(jù)庫表 在數(shù)據(jù)庫中建立表最簡單和直接的方法在數(shù)據(jù)庫中建立表最簡單和直接的方法是使用數(shù)據(jù)庫設(shè)計(jì)器。是使用數(shù)據(jù)庫設(shè)計(jì)器。 建立并打開數(shù)據(jù)庫設(shè)計(jì)器,在其空白建立并打開數(shù)據(jù)庫設(shè)計(jì)器,在其空白處單擊鼠標(biāo)右鍵彈出處單擊鼠標(biāo)右鍵彈出“數(shù)據(jù)庫數(shù)據(jù)庫”快捷菜單,快捷菜單,從中選擇從中選擇“新建表新建表”。3.2建立數(shù)據(jù)庫表建立數(shù)據(jù)庫表n新建表的方式新建表的方式n數(shù)據(jù)庫菜單中的新建表選項(xiàng)數(shù)據(jù)庫菜單中的新建表選項(xiàng)n文件的新建菜單文件的新建菜單nCreate 表名

6、表名 命令命令字段的命名規(guī)則字段的命名規(guī)則n自由表字段名最長為自由表字段名最長為10個(gè)字符。個(gè)字符。n數(shù)據(jù)庫表字段名最長為數(shù)據(jù)庫表字段名最長為128個(gè)字符。個(gè)字符。n字段名必須以字母或漢字開頭。字段名必須以字母或漢字開頭。n字段名可以由字母、漢字、數(shù)字和下劃線字段名可以由字母、漢字、數(shù)字和下劃線組成。組成。n字段名中不能包含空格。字段名中不能包含空格。字段類型:l l 字符型字符型 當(dāng)字段存儲(chǔ)內(nèi)容為由字母、數(shù)字、特當(dāng)字段存儲(chǔ)內(nèi)容為由字母、數(shù)字、特殊符號(hào)以及標(biāo)點(diǎn)組成的字符串時(shí),可將字殊符號(hào)以及標(biāo)點(diǎn)組成的字符串時(shí),可將字段設(shè)置為字符型。字符型字段存儲(chǔ)的字符段設(shè)置為字符型。字符型字段存儲(chǔ)的字符長度最

7、多可達(dá)長度最多可達(dá)254個(gè)字符,可以保存儲(chǔ)如個(gè)字符,可以保存儲(chǔ)如姓名、地址、籍貫以及無需計(jì)算的數(shù)字姓名、地址、籍貫以及無需計(jì)算的數(shù)字(如郵政編碼、電話號(hào)碼)等文本信息。(如郵政編碼、電話號(hào)碼)等文本信息。n貨幣型貨幣型 用于保存貨幣類型的數(shù)值。它占用用于保存貨幣類型的數(shù)值。它占用8個(gè)字節(jié)。個(gè)字節(jié)。n日期型日期型 日期型字段用于保存不帶時(shí)間的日日期型字段用于保存不帶時(shí)間的日期值,包含年、月、日三項(xiàng),取值范圍期值,包含年、月、日三項(xiàng),取值范圍從公元零年從公元零年1月月1日至公元日至公元9999年年12月月31日。日。日期時(shí)間型日期時(shí)間型 與日期型字段不同的是,日期時(shí)間型字與日期型字段不同的是,日期

8、時(shí)間型字段除了包含有年、月、日外,還包含了時(shí)、分、段除了包含有年、月、日外,還包含了時(shí)、分、秒。日期時(shí)間值存儲(chǔ)在兩個(gè)四字節(jié)整數(shù)的秒。日期時(shí)間值存儲(chǔ)在兩個(gè)四字節(jié)整數(shù)的8個(gè)個(gè)字節(jié)中,第一個(gè)四字節(jié)的整數(shù)保存日期,剩下字節(jié)中,第一個(gè)四字節(jié)的整數(shù)保存日期,剩下的四字節(jié)整數(shù)保存時(shí)間。時(shí)間的最小計(jì)時(shí)單位的四字節(jié)整數(shù)保存時(shí)間。時(shí)間的最小計(jì)時(shí)單位為百分之一秒。為百分之一秒。邏輯型邏輯型 當(dāng)字段內(nèi)容只能選取兩種值時(shí),可以采當(dāng)字段內(nèi)容只能選取兩種值時(shí),可以采用邏輯型,它只含有兩個(gè)值:真(用邏輯型,它只含有兩個(gè)值:真(.T.)和假)和假(.F.)。數(shù)值型數(shù)值型 數(shù)值型用于表示整數(shù)或小數(shù),它的長度在表數(shù)值型用于表示整數(shù)

9、或小數(shù),它的長度在表中最長可達(dá)中最長可達(dá)20位,它的表示范圍并不確定。例如,位,它的表示范圍并不確定。例如,當(dāng)定義數(shù)值長度為當(dāng)定義數(shù)值長度為8,其中小數(shù)位為,其中小數(shù)位為4時(shí),它所表時(shí),它所表示的最大值為示的最大值為999.9999。小數(shù)點(diǎn)要占一位。小數(shù)點(diǎn)要占一位。雙精度型雙精度型 當(dāng)所存儲(chǔ)的數(shù)值精度要求很高或要求采用浮當(dāng)所存儲(chǔ)的數(shù)值精度要求很高或要求采用浮點(diǎn)數(shù)時(shí),采用雙精度型。它所表示的數(shù)值范圍要點(diǎn)數(shù)時(shí),采用雙精度型。它所表示的數(shù)值范圍要比數(shù)值型的范圍精確一些,最多可精確到小數(shù)點(diǎn)比數(shù)值型的范圍精確一些,最多可精確到小數(shù)點(diǎn)后后7位。位。浮點(diǎn)型浮點(diǎn)型 浮動(dòng)型在功能上等價(jià)于數(shù)值型,其長度浮動(dòng)型在功

10、能上等價(jià)于數(shù)值型,其長度在表中最長可達(dá)在表中最長可達(dá)20位。位。整型整型 當(dāng)對(duì)表的存儲(chǔ)空間和性能要求嚴(yán)格時(shí),當(dāng)對(duì)表的存儲(chǔ)空間和性能要求嚴(yán)格時(shí),可以使用整型字段保存整數(shù)信息。整型字段占可以使用整型字段保存整數(shù)信息。整型字段占用用4個(gè)字節(jié)的空間,并且在表中以二進(jìn)制存儲(chǔ)。個(gè)字節(jié)的空間,并且在表中以二進(jìn)制存儲(chǔ)。因此比其他數(shù)據(jù)類型占用的內(nèi)存更少,而且計(jì)因此比其他數(shù)據(jù)類型占用的內(nèi)存更少,而且計(jì)算的速度也要快一些。它的數(shù)值范圍從算的速度也要快一些。它的數(shù)值范圍從2147483648至至2147483647。通用型通用型 通用型字段用于存儲(chǔ)電子表格、文檔、圖片通用型字段用于存儲(chǔ)電子表格、文檔、圖片等等OLE信

11、息,通用字段大小取決于信息,通用字段大小取決于OLE對(duì)象的大對(duì)象的大小以及小以及OLE對(duì)象是以嵌入方式還是鏈接方式存入對(duì)象是以嵌入方式還是鏈接方式存入該字段。如果是嵌入方式,它所占用的空間要大該字段。如果是嵌入方式,它所占用的空間要大一些。一般來說,通用型字段的實(shí)際存儲(chǔ)空間只一些。一般來說,通用型字段的實(shí)際存儲(chǔ)空間只受磁盤空間的限制,可以很大。但通用型字段在受磁盤空間的限制,可以很大。但通用型字段在表中僅占表中僅占4個(gè)字節(jié)。個(gè)字節(jié)。備注型備注型 備注型用于存儲(chǔ)長度難于確定的數(shù)據(jù)塊,它備注型用于存儲(chǔ)長度難于確定的數(shù)據(jù)塊,它在表中占用在表中占用4個(gè)字節(jié)。備注型不同于其他數(shù)據(jù)類個(gè)字節(jié)。備注型不同于其

12、他數(shù)據(jù)類型,它所保存的數(shù)據(jù)信息是存儲(chǔ)在單獨(dú)的文件中。型,它所保存的數(shù)據(jù)信息是存儲(chǔ)在單獨(dú)的文件中??罩担?在定義表的字段時(shí),可以把在定義表的字段時(shí),可以把NULL選項(xiàng)選中,表示此字段可以為空值。選項(xiàng)選中,表示此字段可以為空值。 空值表示尚未儲(chǔ)存數(shù)據(jù)的字段,不空值表示尚未儲(chǔ)存數(shù)據(jù)的字段,不同于空白字符串和同于空白字符串和0值。值。 作為關(guān)鍵字的字段是不允許為空值的。作為關(guān)鍵字的字段是不允許為空值的。字段有效性:字段有效性:在在“字段有效性字段有效性”字段屬性組中,包含有三個(gè)字字段屬性組中,包含有三個(gè)字段屬性,分別是:段屬性,分別是: “規(guī)則規(guī)則”:指定實(shí)施數(shù)據(jù)字段級(jí)有效性檢查:指定實(shí)施數(shù)據(jù)字段級(jí)有

13、效性檢查的規(guī)則。這是字段避免輸入錯(cuò)誤內(nèi)容的一個(gè)重要的規(guī)則。這是字段避免輸入錯(cuò)誤內(nèi)容的一個(gè)重要措施。措施。 “信息信息”:指定當(dāng)輸入違反字段級(jí)有效性規(guī):指定當(dāng)輸入違反字段級(jí)有效性規(guī)則時(shí),顯示的錯(cuò)誤信息。則時(shí),顯示的錯(cuò)誤信息。 “默認(rèn)值默認(rèn)值”:是指字段在沒有輸入數(shù)據(jù)的情:是指字段在沒有輸入數(shù)據(jù)的情況下,系統(tǒng)給定的值。況下,系統(tǒng)給定的值。打開表與修改表打開表與修改表n打開表打開表 USE 表名表名n修改表結(jié)構(gòu)修改表結(jié)構(gòu)MODIFY STRUTUREn修改已有字段修改已有字段n增加新字段增加新字段n刪除不用字段刪除不用字段關(guān)閉當(dāng)前表關(guān)閉當(dāng)前表nuse將自由表添加到數(shù)據(jù)庫將自由表添加到數(shù)據(jù)庫三種方法三

14、種方法n1)項(xiàng)目管理器)項(xiàng)目管理器n2)數(shù)據(jù)庫設(shè)計(jì)器)數(shù)據(jù)庫設(shè)計(jì)器n3)ADD TABLE命令 ADD TABLE TableName|?NAME LongTableNamen注:一個(gè)表只能屬于一個(gè)數(shù)據(jù)庫注:一個(gè)表只能屬于一個(gè)數(shù)據(jù)庫從數(shù)據(jù)庫中移出表從數(shù)據(jù)庫中移出表三種方法三種方法n1)項(xiàng)目管理器)項(xiàng)目管理器n2)數(shù)據(jù)庫設(shè)計(jì)器)數(shù)據(jù)庫設(shè)計(jì)器n3)REMOVE TABLE命令 REMOVE TABLE TableName|?DELETERECYCLE 添加記錄添加記錄 刪除記錄刪除記錄 修改記錄修改記錄 查看記錄查看記錄3.3 表的基本操作表的基本操作3.3 表的基本操作表的基本操作使用使用“項(xiàng)目

15、管理器項(xiàng)目管理器”瀏覽表中的記錄:瀏覽表中的記錄:(1)首先打開)首先打開“項(xiàng)目管理器項(xiàng)目管理器”并選擇并選擇“數(shù)據(jù)數(shù)據(jù)”選項(xiàng)選項(xiàng)卡??ā#?)在)在“數(shù)據(jù)數(shù)據(jù)”選項(xiàng)卡中選擇要瀏覽的表。選項(xiàng)卡中選擇要瀏覽的表。(3)單擊)單擊“瀏覽瀏覽”按鈕,系統(tǒng)即打開該表的瀏覽窗按鈕,系統(tǒng)即打開該表的瀏覽窗口。口。 在瀏覽窗口中,一行顯示一條記錄,一列顯示在瀏覽窗口中,一行顯示一條記錄,一列顯示一個(gè)字段的數(shù)據(jù)。字段名作為瀏覽窗口的列頭顯示一個(gè)字段的數(shù)據(jù)。字段名作為瀏覽窗口的列頭顯示在瀏覽窗口的最上方。缺省情況下,瀏覽窗口中的在瀏覽窗口的最上方。缺省情況下,瀏覽窗口中的字段顯示順序由表結(jié)構(gòu)中定義的字段順序所決

16、定。字段顯示順序由表結(jié)構(gòu)中定義的字段順序所決定。使用使用BROWSEBROWSE命令瀏覽記錄命令瀏覽記錄命令格式命令格式BROWSE FIELDS Fieldname命令功能命令功能該命令用于打開瀏覽窗口以瀏覽表中的記錄。該命令用于打開瀏覽窗口以瀏覽表中的記錄。FIELDS Fieldname子句用于指定在瀏覽窗口中顯示哪些子句用于指定在瀏覽窗口中顯示哪些字段。字段。Fieldname參數(shù)可以指定一個(gè)或多個(gè)字段名,字參數(shù)可以指定一個(gè)或多個(gè)字段名,字段名之間要用逗號(hào)分隔。段名之間要用逗號(hào)分隔。修改記錄:修改記錄: 在瀏覽器中修改記錄的值,只需要將在瀏覽器中修改記錄的值,只需要將光標(biāo)定位在要修改的

17、記錄和字段上,然后光標(biāo)定位在要修改的記錄和字段上,然后直接修改就可以了。直接修改就可以了。刪除記錄:刪除記錄: 主要分為物理刪除和邏輯刪除主要分為物理刪除和邏輯刪除邏輯刪除:對(duì)紀(jì)錄添加邏輯刪除標(biāo)記,但紀(jì)錄并不邏輯刪除:對(duì)紀(jì)錄添加邏輯刪除標(biāo)記,但紀(jì)錄并不從表中徹底刪除,依然存在。從表中徹底刪除,依然存在。物理刪除:將有刪除標(biāo)記的紀(jì)錄從表中物理刪除物理刪除:將有刪除標(biāo)記的紀(jì)錄從表中物理刪除、邏輯刪除或設(shè)置刪除標(biāo)記命令:、邏輯刪除或設(shè)置刪除標(biāo)記命令: delete delete for 條件條件 功能:對(duì)滿足條件的紀(jì)錄設(shè)置刪除標(biāo)記功能:對(duì)滿足條件的紀(jì)錄設(shè)置刪除標(biāo)記 注:注:a、打開邏輯刪除紀(jì)錄的表,

18、并設(shè)置為當(dāng)前表、打開邏輯刪除紀(jì)錄的表,并設(shè)置為當(dāng)前表 b、不指定條件和范圍,只邏輯刪除當(dāng)前紀(jì)錄、不指定條件和范圍,只邏輯刪除當(dāng)前紀(jì)錄 例:邏輯刪除當(dāng)前表中年齡為例:邏輯刪除當(dāng)前表中年齡為20的學(xué)生記錄。的學(xué)生記錄。 delete for 年齡年齡=20刪除記錄:刪除記錄: 恢復(fù)紀(jì)錄:恢復(fù)紀(jì)錄: recall recall for 條件條件 功能:取消滿足條件或指定范圍內(nèi)記錄的刪除標(biāo)記功能:取消滿足條件或指定范圍內(nèi)記錄的刪除標(biāo)記 例:例:recall for 性別性別=“女女” 物理刪除:物理刪除:pack 功能:物理刪除表中帶有邏輯刪除標(biāo)記的記錄功能:物理刪除表中帶有邏輯刪除標(biāo)記的記錄 物理刪

19、除表中的全部記錄:物理刪除表中的全部記錄:zap增加記錄增加記錄1、APPEND BLANK命令命令 向表的尾部添加記錄。若選用向表的尾部添加記錄。若選用BLANK參數(shù),參數(shù),則向表的尾部添加一條空記錄。則向表的尾部添加一條空記錄。2、INSERT BEFORE BLANK 命令命令 向當(dāng)前記錄(或之后)位置插入一條記錄。向當(dāng)前記錄(或之后)位置插入一條記錄。 若選用若選用BLANK選項(xiàng),則需再用選項(xiàng),則需再用EDIT、CHANGE、BROWSE 命令交互輸入記錄的值。命令交互輸入記錄的值。修改記錄的命令修改記錄的命令:1、用、用 EDIT、CHANGE 命令交互式修改。命令交互式修改。 此命

20、令默認(rèn)編輯的是當(dāng)前記錄。此命令默認(rèn)編輯的是當(dāng)前記錄。2、用、用 REPLACE 命令直接修改。命令直接修改。REPLACE FileName1 WITH eExpression1例如:例如: Replace all 年齡年齡 with 年齡年齡+1顯示記顯示記錄的命令錄的命令:nLIST | DISPLAY例如:例如: list for 性別性別=“男男”查詢定位命令:查詢定位命令:GO recno/top/bottom 命令功能命令功能 該命令用于將記錄指針定位到指定該命令用于將記錄指針定位到指定的記錄上,使該記錄成為當(dāng)前記錄。的記錄上,使該記錄成為當(dāng)前記錄。SKIP nRecords 該命

21、令用于將記錄指針相對(duì)于當(dāng)前該命令用于將記錄指針相對(duì)于當(dāng)前記錄向前或向后移動(dòng)記錄向前或向后移動(dòng)n條記錄。條記錄。默認(rèn)是默認(rèn)是1 ,向前,向前(負(fù)數(shù)負(fù)數(shù)),向后,向后(正數(shù)正數(shù)) LOCATE FOR Expression 該命令可以在指定的記錄范圍內(nèi)將該命令可以在指定的記錄范圍內(nèi)將記錄指針定位到滿足給定條件的首條記記錄指針定位到滿足給定條件的首條記錄上。錄上。CONTINUE 該命令與該命令與LOCATE命令搭配使用,命令搭配使用,以查找滿足給定條件的下一條記錄。以查找滿足給定條件的下一條記錄。查詢定位命令:查詢定位命令:練習(xí)練習(xí)nLOCATE FOR 性別性別“女女”nCONTINUEnLOC

22、ATE FOR 性別性別“男男”nCONTINUEn基本概念基本概念 若要按特定的順序定位,查看或操作表中若要按特定的順序定位,查看或操作表中的記錄,可以使用索引。的記錄,可以使用索引。 VFP索引是由指針構(gòu)成的文件,這些指針?biāo)饕怯芍羔槝?gòu)成的文件,這些指針邏輯上按照索引關(guān)鍵字值進(jìn)行排序。索引文件邏輯上按照索引關(guān)鍵字值進(jìn)行排序。索引文件和表文件分別存儲(chǔ),并且不改變表中記錄的物和表文件分別存儲(chǔ),并且不改變表中記錄的物理順序。實(shí)際上,創(chuàng)建索引是創(chuàng)建一個(gè)由指理順序。實(shí)際上,創(chuàng)建索引是創(chuàng)建一個(gè)由指向向.dbf文件記錄的指針構(gòu)成的文件文件記錄的指針構(gòu)成的文件 3.4 索引索引3.4 索引索引n主要索引類

23、型主要索引類型n主索引主索引n候選索引候選索引n唯一索引唯一索引n普通索引普通索引四種索引的概念與區(qū)別:四種索引的概念與區(qū)別:主索引:在一個(gè)表中,指定字段或表達(dá)式不允許主索引:在一個(gè)表中,指定字段或表達(dá)式不允許 有重復(fù)值,而且可以起到主關(guān)鍵字的作有重復(fù)值,而且可以起到主關(guān)鍵字的作 用的索引,為主索引。一個(gè)表只能創(chuàng)建用的索引,為主索引。一個(gè)表只能創(chuàng)建 一個(gè)主索引。一個(gè)主索引。候選索引:同主索引具有相同的特性,要求字段候選索引:同主索引具有相同的特性,要求字段 的唯一性。在一個(gè)表中,可以建立多個(gè)的唯一性。在一個(gè)表中,可以建立多個(gè) 候選索引。候選索引。唯一索引:指索引項(xiàng)的唯一性,而不是字段值唯一索引

24、:指索引項(xiàng)的唯一性,而不是字段值的唯一。一個(gè)表可以建立多個(gè)唯一索引。的唯一。一個(gè)表可以建立多個(gè)唯一索引。普通索引:建立普通索引的字段,其字段值可普通索引:建立普通索引的字段,其字段值可以重復(fù)、可以為空,一個(gè)表可建立多個(gè)普通索以重復(fù)、可以為空,一個(gè)表可建立多個(gè)普通索引。引。3.4.2 索引的創(chuàng)建索引的創(chuàng)建 按擴(kuò)展名分:按擴(kuò)展名分: 單索引文件(單索引文件(.idx) 復(fù)合索引文件(復(fù)合索引文件(.cdx) 復(fù)合索引文件包括:結(jié)構(gòu)復(fù)合索引文件(文件復(fù)合索引文件包括:結(jié)構(gòu)復(fù)合索引文件(文件名與表名相同,隨著表的打開而打開,表的關(guān)閉而名與表名相同,隨著表的打開而打開,表的關(guān)閉而關(guān)閉)非結(jié)構(gòu)復(fù)合索引文件

25、(文件名與表名不相同,關(guān)閉)非結(jié)構(gòu)復(fù)合索引文件(文件名與表名不相同,不能隨著表打開而打開,表關(guān)閉而關(guān)閉)不能隨著表打開而打開,表關(guān)閉而關(guān)閉) 利用表設(shè)計(jì)器建立索引的兩種方法:利用表設(shè)計(jì)器建立索引的兩種方法: 1、在字段選項(xiàng)卡中快速生成、在字段選項(xiàng)卡中快速生成 2、在索引選項(xiàng)卡中建立、在索引選項(xiàng)卡中建立3.4.3 用命令建立索引用命令建立索引1.1.命令格式:命令格式: INDEX ON INDEX ON TAG TAG ASCENDING|DESCENDINGASCENDING|DESCENDING UNIQUE/CANDIDATE UNIQUE/CANDIDATE2.2.命令功能:按指定命令

26、功能:按指定 為當(dāng)前表創(chuàng)為當(dāng)前表創(chuàng)建一個(gè)指定名稱的索引。建一個(gè)指定名稱的索引。、建立單索引文件:、建立單索引文件: 格式:格式:index on 字段名(關(guān)鍵字)字段名(關(guān)鍵字)to 單索引文件名單索引文件名 ascending 功能:按指定字段建立指定的索引文件功能:按指定字段建立指定的索引文件 注:擴(kuò)展名為注:擴(kuò)展名為 idx 只能按字段值升序排列只能按字段值升序排列、建立侯選索引、唯一索引和普通索引、建立侯選索引、唯一索引和普通索引 格式:格式:index on 關(guān)鍵字(字段名)關(guān)鍵字(字段名)tag 索引標(biāo)識(shí)索引標(biāo)識(shí) ascendingdescendinguniquecandidate

27、 功能:按指定的字段值建立指定的索引文件功能:按指定的字段值建立指定的索引文件 注:注:a、ascending指定按字段值升序排列,指定按字段值升序排列, descending指定按字段值降序排列。指定按字段值降序排列。 b、unique指定建立唯一索引,指定建立唯一索引, candidate指定建立侯選索引指定建立侯選索引1 1單字段索引單字段索引例例: 已有一表文件工資已有一表文件工資.DBF,按基本工資排序,執(zhí)行,按基本工資排序,執(zhí)行下述命令:下述命令: INDEX ON 基本工資基本工資 TAG JBGZ LIST 1 1002 胡一民胡一民 585.00 3.5 10 3.50 4

28、1010 宋文彬宋文彬 596.94 3.0 10 0.50 3 1005 張小張小 612.27 4.0 10 0.50 6 1015 黃小黃小 612.27 12.0 10 0.50 8 1031 丁衛(wèi)國丁衛(wèi)國 612.27 14.0 10 12.00 7 1022 李紅衛(wèi)李紅衛(wèi) 623.45 12.0 10 14.60 2 1004 愛民愛民 628.34 20.0 10 0.50 5 1011 胡一民胡一民 645.26 15.5 10 18.34記錄號(hào)記錄號(hào) 職工號(hào)職工號(hào) 姓名姓名 基本工資基本工資 工齡工資工齡工資 補(bǔ)貼補(bǔ)貼 房電費(fèi)房電費(fèi)2多字段索引多字段索引如果在索引表達(dá)式中使用

29、多個(gè)字段,就是根據(jù)多字段來排序記錄。如果在索引表達(dá)式中使用多個(gè)字段,就是根據(jù)多字段來排序記錄。例5:對(duì)工資:對(duì)工資.DBF表,按實(shí)發(fā)工資索引記錄。表,按實(shí)發(fā)工資索引記錄。 USE 工資工資 INDEX ON 基本工資基本工資+工齡工資工齡工資+補(bǔ)貼補(bǔ)貼房電費(fèi)房電費(fèi) TAG SFGZ LIST記錄號(hào)記錄號(hào) 職工號(hào)職工號(hào) 姓名姓名 基本工資基本工資 工齡工資工齡工資 補(bǔ)貼補(bǔ)貼 房電費(fèi)房電費(fèi) 1 1002 胡一民胡一民 585.00 3.5 10 3.50 4 1010 宋文彬宋文彬 596.94 3.0 10 0.50 8 1031 丁衛(wèi)國丁衛(wèi)國 612.27 14.0 10 12.00 3 10

30、05 張小華張小華 612.27 4.0 10 0.50 7 1022 李紅衛(wèi)李紅衛(wèi) 623.45 12.0 10 14.60 6 1015 黃小英黃小英 612.27 12.0 10 0.50 5 1011 胡一民胡一民 645.26 15.5 10 18.34 2 1004 王愛民王愛民 628.34 20.0 10 0.50格式:格式:set order to tag索引名索引名 ascending set order to tag索引名索引名 descending功能:將指定的索引文件設(shè)置為當(dāng)前索引文件功能:將指定的索引文件設(shè)置為當(dāng)前索引文件注:注:a、tag可以省落可以省落 b、ad

31、指定重新進(jìn)行升序指定重新進(jìn)行升序 降序降序*也可在打開索引文件時(shí)直接指定索引文件也可在打開索引文件時(shí)直接指定索引文件3.4.4 使用索引使用索引3.4.5 使用使用索引快速定位索引快速定位例如:例如:seek 005 order 學(xué)號(hào)學(xué)號(hào) display 格式:格式:seek 字段值字段值 功能:在索引文件中將記錄指針定位到字功能:在索引文件中將記錄指針定位到字段值對(duì)應(yīng)的記錄中段值對(duì)應(yīng)的記錄中 注:注: a、tag指定快速定位的索引文件指定快速定位的索引文件 b、ad說明按升序說明按升序降序排列降序排列3.4.6 刪除索引刪除索引 格式:格式:delete tag 索引標(biāo)識(shí)索引標(biāo)識(shí) / all

32、 功能:刪除指定的索引文件功能:刪除指定的索引文件 注:只能刪除結(jié)構(gòu)索引標(biāo)識(shí)注:只能刪除結(jié)構(gòu)索引標(biāo)識(shí)直接在表設(shè)計(jì)器中刪除:直接在表設(shè)計(jì)器中刪除:例如:例如:delete tag 學(xué)號(hào)學(xué)號(hào) delete tag all3.5 數(shù)據(jù)完整性數(shù)據(jù)完整性 在數(shù)據(jù)庫中數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特在數(shù)據(jù)庫中數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特性,包括:實(shí)體完整性、域完整性、參照完整性性,包括:實(shí)體完整性、域完整性、參照完整性 1、實(shí)體完整性:是保證表中記錄唯一的特性即、實(shí)體完整性:是保證表中記錄唯一的特性即在一個(gè)表中不允許有重復(fù)的記錄。在在一個(gè)表中不允許有重復(fù)的記錄。在VF中利用主關(guān)中利用主關(guān)鍵字或侯選關(guān)鍵字來

33、保證表中的記錄唯一性,即保鍵字或侯選關(guān)鍵字來保證表中的記錄唯一性,即保證實(shí)體唯一性。證實(shí)體唯一性。 * 侯選關(guān)鍵字:如果一個(gè)字段的值或幾個(gè)字段的值侯選關(guān)鍵字:如果一個(gè)字段的值或幾個(gè)字段的值能夠唯一標(biāo)識(shí)表中的一條記錄,則這樣的字段稱為能夠唯一標(biāo)識(shí)表中的一條記錄,則這樣的字段稱為侯選關(guān)鍵字。侯選關(guān)鍵字。 * 主索引和侯選索引具有相同作用主索引和侯選索引具有相同作用3.5 數(shù)據(jù)完整性數(shù)據(jù)完整性 2、域完整性:主要指一個(gè)范圍。其中字段名、類、域完整性:主要指一個(gè)范圍。其中字段名、類型、寬度和字段有效性規(guī)則都屬于域完整性。型、寬度和字段有效性規(guī)則都屬于域完整性。“規(guī)規(guī)則則”是邏輯表達(dá)式,是邏輯表達(dá)式,“

34、信息信息”是字符串表達(dá)式,是字符串表達(dá)式,“默認(rèn)值默認(rèn)值”類型以字段的類型確定類型以字段的類型確定3、參照完整性與表之間的關(guān)聯(lián)、參照完整性與表之間的關(guān)聯(lián)注:注:a、參照完整性是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的一個(gè)、參照完整性是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的一個(gè)很重要的功能,在很重要的功能,在 VF中為了建立參照完整性必須中為了建立參照完整性必須首先建立表之間的聯(lián)系首先建立表之間的聯(lián)系b、建立聯(lián)系需要用到兩個(gè)表,這兩個(gè)表要屬于同一個(gè)數(shù)、建立聯(lián)系需要用到兩個(gè)表,這兩個(gè)表要屬于同一個(gè)數(shù)據(jù)庫。一般兩個(gè)表具有相同字段,對(duì)一個(gè)表的相同字段建據(jù)庫。一般兩個(gè)表具有相同字段,對(duì)一個(gè)表的相同字段建立主索引,此表稱為父表。對(duì)另一表的相同

35、字段建立普通立主索引,此表稱為父表。對(duì)另一表的相同字段建立普通索引,此表稱為子表。索引,此表稱為子表。 、建立表之間聯(lián)系的方法為:在父表中建立主索引,、建立表之間聯(lián)系的方法為:在父表中建立主索引,子表中建立普通索引,然后拖動(dòng)父表的主索引文件到子表子表中建立普通索引,然后拖動(dòng)父表的主索引文件到子表的普通索引文件放開建立連線即可。的普通索引文件放開建立連線即可。 、設(shè)置參照完整性約束:建立參照完整性之前需要、設(shè)置參照完整性約束:建立參照完整性之前需要先清理數(shù)據(jù)庫,清理數(shù)據(jù)庫包括物理刪除數(shù)據(jù)庫各個(gè)表中先清理數(shù)據(jù)庫,清理數(shù)據(jù)庫包括物理刪除數(shù)據(jù)庫各個(gè)表中所有帶有刪除標(biāo)記的記錄。所有帶有刪除標(biāo)記的記錄。

36、參照完整性三個(gè)規(guī)則:更新(級(jí)聯(lián)、限制、忽略)、刪除參照完整性三個(gè)規(guī)則:更新(級(jí)聯(lián)、限制、忽略)、刪除(級(jí)聯(lián)、限制、忽略)、插入(限制、忽略)(級(jí)聯(lián)、限制、忽略)、插入(限制、忽略)注意:更新、刪除和插入的區(qū)別注意:更新、刪除和插入的區(qū)別 P116設(shè)置參照完整性約束設(shè)置參照完整性約束n清理數(shù)據(jù)庫清理數(shù)據(jù)庫(數(shù)據(jù)庫菜單數(shù)據(jù)庫菜單-清理數(shù)據(jù)清理數(shù)據(jù)庫庫)n右擊聯(lián)系右擊聯(lián)系-編輯參照完整性編輯參照完整性將自由表添加到數(shù)據(jù)庫將自由表添加到數(shù)據(jù)庫n項(xiàng)目管理器項(xiàng)目管理器n打開數(shù)據(jù)庫設(shè)計(jì)器時(shí),從打開數(shù)據(jù)庫設(shè)計(jì)器時(shí),從“數(shù)據(jù)庫數(shù)據(jù)庫”菜單菜單n命令方式命令方式nadd table tablename|? name 長表名長表名 建立自由表前需要關(guān)閉當(dāng)前數(shù)據(jù)庫或取消當(dāng)前數(shù)據(jù)庫。建立自由

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論