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

下載本文檔

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

文檔簡介

1、第第3章章 VISUAL FOXPRO數(shù)據(jù)庫及其操作數(shù)據(jù)庫及其操作3.1.1 3.1.1 基本概念基本概念數(shù)據(jù)庫,通過一組系統(tǒng)文件將相互聯(lián)系的數(shù)據(jù)庫表及其相關(guān)的數(shù)據(jù)庫對(duì)象統(tǒng)一組織和管理。在VFP6.0 中;數(shù)據(jù)庫的擴(kuò)展名.dbc; 相關(guān)的文件擴(kuò)展名.dct(數(shù)據(jù)庫備注文件) 相關(guān)的文件擴(kuò)展名.dcx(數(shù)據(jù)庫索引文件)注意:1.剛建立的數(shù)據(jù)庫是空的數(shù)據(jù)庫,沒有數(shù)據(jù),也不能輸入數(shù)據(jù),2.用戶一般不直接使用這些文件。3.1.2 建立數(shù)據(jù)庫1. 在項(xiàng)目管理器中建立數(shù)據(jù)庫;2. 文件/新建/數(shù)據(jù)庫;3. 使用命令交互建立數(shù)據(jù)庫。Create database 數(shù)據(jù)庫名數(shù)據(jù)庫名|?該方式不打開數(shù)據(jù)庫設(shè)計(jì)器

2、,只是數(shù)據(jù)庫處于打開狀態(tài)。打開數(shù)據(jù)庫的命令: open database 3.1.3 使用數(shù)據(jù)庫1.在項(xiàng)目管理器中打開數(shù)據(jù)庫;2.通過打開對(duì)話框打開數(shù)據(jù)庫;3.使用命令打開數(shù)據(jù)庫; OPEN DATABASE filename|?exclusive|shared noupdatevalidateFilename: 要打開的數(shù)據(jù)庫名;使用?則顯示打開對(duì)話框。Exclusive:以獨(dú)占方式打開數(shù)據(jù)庫,不允許其它用戶在同一時(shí)刻也使用該數(shù)據(jù)庫。Shared:以共享方式打開數(shù)據(jù)庫。Noupdate:指定數(shù)據(jù)庫按只讀方式打開。Validate:指定vf檢查在數(shù)據(jù)庫中引用的對(duì)象是否合法;注意:注意:、為使數(shù)

3、據(jù)庫中的表只讀,需要在USE命令打開表時(shí)使用 NOUPDATE USE 學(xué)生學(xué)生 NOUPDATE & 以只讀方式打開以只讀方式打開、打開數(shù)據(jù)庫,其中的表可以使用,但這些表不會(huì)自動(dòng)打開,需要使用USE命令打開。、當(dāng)用USE命令打開一個(gè)表時(shí),vf首先在當(dāng)前數(shù)據(jù)庫中查找該表,vf會(huì)在數(shù)據(jù)庫外繼續(xù)查找,實(shí)際打開一個(gè)表并不一定要打開數(shù)據(jù)庫,這是vfp的一個(gè)缺點(diǎn)。VFP在同一時(shí)刻可打開多個(gè)數(shù)據(jù)庫,但在同一時(shí)刻只有一在同一時(shí)刻可打開多個(gè)數(shù)據(jù)庫,但在同一時(shí)刻只有一個(gè)是當(dāng)前數(shù)據(jù)庫,指定當(dāng)前數(shù)據(jù)庫的命令是:個(gè)是當(dāng)前數(shù)據(jù)庫,指定當(dāng)前數(shù)據(jù)庫的命令是: SET DATABASE TO 數(shù)據(jù)庫名數(shù)據(jù)庫名3.1.

4、4 修改數(shù)據(jù)庫o在項(xiàng)目管理器中打開數(shù)據(jù)庫設(shè)計(jì)器;o通過打開對(duì)話框打開數(shù)據(jù)庫設(shè)計(jì)器;o使用命令打開數(shù)據(jù)庫設(shè)計(jì)器;o MODIFY DATABASEDatabaseName|?o NOWAITNOEDITnDatabaseName:要修改的數(shù)據(jù)庫名;?可打開對(duì)話框。nNOWAIT:打開數(shù)據(jù)庫設(shè)計(jì)器后程序繼續(xù)執(zhí)行。該項(xiàng)只在程序中使用。nNOEDIT:只是打開數(shù)據(jù)庫設(shè)計(jì)器,而禁止對(duì)數(shù)據(jù)庫進(jìn)行修改。注意o 在建立數(shù)據(jù)庫時(shí)建立了擴(kuò)展名分別為dbc、dct和dcx的三個(gè)文件,用戶不能直接對(duì)這些文件進(jìn)行修改。o 打開數(shù)據(jù)庫設(shè)計(jì)器,可在其中進(jìn)行數(shù)據(jù)庫對(duì)象的建立、修改和刪除等操作。舉例o 創(chuàng)建一個(gè)數(shù)據(jù)庫學(xué)籍管理n

5、 (創(chuàng)建數(shù)據(jù)庫)n (打開數(shù)據(jù)庫)n (修改數(shù)據(jù)庫3.1.5 刪除數(shù)據(jù)庫在項(xiàng)目管理器中;選中數(shù)據(jù)庫,按“移去”按紐;可刪除。再選擇該按紐注意:o VFP6.0 的數(shù)據(jù)庫文件并不真正含有數(shù)據(jù)庫表或其它數(shù)據(jù)庫對(duì)象,只是在數(shù)據(jù)庫文件登錄了相關(guān)的條目,表、視圖或其它數(shù)據(jù)庫對(duì)象是獨(dú)立存放在磁盤上的。 如果要在刪除數(shù)據(jù)庫的同時(shí),刪除表等對(duì)象,需要使用命令DELETE DATABASE DatabaseName|?DELETETABLESRECYCLEDELETETABLES:該選項(xiàng)表示刪除數(shù)據(jù)庫的同時(shí)刪除其中的 表(.dbf文件)RECYCLE:選擇該項(xiàng)則將刪除的數(shù)據(jù)庫文件和表文件等放入 Windows的

6、回收站中,還可還原它們。注意:如果設(shè)置:SET SAFETY ON 則VFP6.0會(huì)提示是否 要?jiǎng)h除數(shù)據(jù)庫,否則不出現(xiàn)提示,直接進(jìn)行刪除操作。 注意:操作數(shù)據(jù)庫的常用命令操作數(shù)據(jù)庫的常用命令 o 建立數(shù)據(jù)庫:CREATE DATABASE o 打開數(shù)據(jù)庫:OPEN DATABASE o 打開數(shù)據(jù)庫設(shè)計(jì)器:nMODIFY DATABASE o 設(shè)置當(dāng)前數(shù)據(jù)庫:SET DATABASE TO o 顯示當(dāng)前數(shù)據(jù)庫結(jié)構(gòu):nDISPLAY DATABASE o 關(guān)閉數(shù)據(jù)庫:CLOSE DATABASE ALLo 刪除數(shù)據(jù)庫:DELETE DATABASE 3.2 建立數(shù)據(jù)庫表o 有多個(gè)相關(guān)的表放入數(shù)據(jù)庫

7、中,這些表叫數(shù)據(jù)庫表。3.2.1 在數(shù)據(jù)庫中建立表用數(shù)據(jù)庫設(shè)計(jì)器;建立表,可進(jìn)行下列選擇:表設(shè)計(jì)器3.2.1 在數(shù)據(jù)庫中建立表表的基本概念解釋o 字段名n 即關(guān)系的屬性名或表的列名,一個(gè)表有若干列(字段)構(gòu)成;n 每個(gè)列都必須有一個(gè)惟一的名字,這個(gè)名字就是字段名;n 將來可以通過字段名直接引用表中的數(shù)據(jù);n 字段名可以是漢字或西文標(biāo)識(shí)符號(hào)。姓名成績出生日期婚否說明張三8004/01/78.t.李四6005/09/84.f.王五7006/10/82.f.一個(gè)關(guān)系相當(dāng)于一張二維表格學(xué)生(姓名,成績,出生日期,婚否,說明)表的基本概念解釋o 字段類型和寬度n字符型n貨幣型n數(shù)值型n日期型n日期時(shí)間型

8、n雙精度型n整型n邏輯型n備注型n字符型n備注型(二進(jìn)制)表的基本概念解釋o 空值(null)n 尚未存儲(chǔ)數(shù)據(jù)的字段,這時(shí)的空值與空(或空白)字符串、數(shù)值0等具有不同的含義;n 空值就是缺值或不確定值。表的基本概念解釋o 字段有效性組框n 在字段有效性組框中可以定義字段的有效性規(guī)則以及違反規(guī)則時(shí)的提示信息和字段的默認(rèn)值。表的基本概念解釋o 顯示組框n 在顯示組框中可定義顯示的格式、輸入的掩碼和字段的標(biāo)題表的基本概念解釋o 字段注釋n 可以為每個(gè)字段添加注釋,便于以后維護(hù)在數(shù)據(jù)庫中直接建立表的方法o Open database 數(shù)據(jù)庫名o Create 數(shù)據(jù)表名o 打開表的命令:n Use 數(shù)據(jù)

9、表名o 例如:在訂貨管理數(shù)據(jù)庫中建立倉庫表,使用命令n Open database 訂貨管理n Create 倉庫3.2.2 修改表結(jié)構(gòu)o 表結(jié)構(gòu)可以任意修改、增加字段、刪除字段、修改字段名、o 字段類型、字段寬度、可以建立、修改、刪除索引,可以建立、修改、刪除有效性規(guī)則等。3.2.2 修改表結(jié)構(gòu)o 可以修改:n 1、修改已有的字段n 2、增加新字段n 3、刪除不要字段修改方法:o 1、在數(shù)據(jù)庫設(shè)計(jì)器中;在某表上單擊右鍵,選擇“修改”o 2、用命令修改:n USE 表名n MODIFY STRUCTURE3.3 表的基本操作o 表一旦建立后,自然就需要對(duì)它進(jìn)行相應(yīng)的操作:n 添加新記錄n 刪除

10、無用記錄n 修改有問題的記錄等3.3.1 使用瀏覽器操作表o 項(xiàng)目管理器/數(shù)據(jù)庫/表/瀏覽方法二、在數(shù)據(jù)庫設(shè)計(jì)器中選擇表,單擊菜單: 數(shù)據(jù)庫/瀏覽方法3、在命令方式下: USE 表名 BROWSE3.3.2 增加記錄的命令o 1、APPEND n 在表的尾部增加記錄,立即輸入一條或多條記錄o 1-1、APPEND BLANKn 在表的尾部增加一條空白記錄,然后用EDIT、CHANG、Browse再輸入命令,或用REPLACE命令直接修改該空白記錄。2、insert 命令 該命令可以在表的任意位置插入新的記錄,命令格式如下: INSERT BEFOREBLANKo INSERT :在當(dāng)前記錄之后

11、插入一條新記錄o INSERT BEFORE:在當(dāng)前記錄之前插入一條新記錄。o INSERT BLANK:在當(dāng)前記錄之后插入一條空白記錄。然后用EDIT、CHANG、Browse再輸入命令,或用REPLACE命令直接修改該空白記錄。注意:注意:如果表建立了主索引或侯選索引,則不能用以上的命令。必須使用SQL的INSERT命令3.3.3 刪除記錄命令o 刪除分為:n 邏輯刪除 (只是做刪除標(biāo)記,并沒有真正刪除)n 物理刪除 (對(duì)做過刪除標(biāo)記的記錄,真正刪除)與刪除相關(guān)的命令有:1、置刪除標(biāo)記的命令 DELETE FOR 邏輯條件 例1:DELE *刪除當(dāng)前記錄 例2: DELE FOR 年齡=2

12、0 *刪除表中20歲的記錄2、恢復(fù)記錄的命令 RECALL FOR 邏輯條件 例1:RECALL 例2 RECALL FOR 性別=“女”與刪除相關(guān)的命令有:3、物理刪除有刪除標(biāo)記的記錄 PACKPACK4、物理刪除表中的全部記錄 ZAPZAP 表結(jié)構(gòu)依然存在表結(jié)構(gòu)依然存在3.3.4 修改記錄的命令1 1、交互修改的、交互修改的EDITEDIT、CHANGECHANGE2 2、直接修改的直接修改的REPLACE REPLACE 命令命令 REPLACE 字段名字段名1 With 表達(dá)式表達(dá)式2,字段名字段名2 With 表表達(dá)式達(dá)式2,for 條件表達(dá)式條件表達(dá)式 REPL ALL REPL

13、ALL 年齡年齡 with with 年齡年齡+1+1 REPL ALL REPL ALL 年齡年齡 with with 年齡年齡+1 +1 for for 性別性別=“=“男男”3.3.5 顯示記錄的命令LIST/DISPLAYFIELDSFIELDLISTFOR 邏輯表達(dá)式offto printerprompt|to FILE FileName例:LIST FOR 性別=男 FIEL 姓名,學(xué)號(hào),性別3.3.6 查詢定位命令1、用、用GOTO命令直接定位(絕對(duì)定位)命令直接定位(絕對(duì)定位) GOTO命令和命令和GO命令是等價(jià)的,命令格式為: GO n; GO record; go top;

14、 go bottom 例:go 1; go reco 3 3.3.6 查詢定位命令2、SKIP(相對(duì)定位)相對(duì)定位) skip SKIP +n ; SKIP n3.3.6 查詢定位命令3、LOCATE(按條件定位)按條件定位) CONTINUE常用結(jié)構(gòu) loca for 條件表達(dá)式功能:按條件定位,該命令執(zhí)行后記錄指針定位在滿足條件的第1條記錄,如果沒有滿足條件的記錄則指針指向文件結(jié)束位置。如果要繼續(xù)指向下一個(gè)滿足loca 條件的記錄,使用CONTINUE命令繼續(xù)為了判別是否找到了滿足條件的記錄,可以使用函數(shù)FOUND該函數(shù)的值如果為真,則表示有滿足條件的記錄。該函數(shù)的值如果為真,則表示沒有滿

15、足條件的記錄。 LOCATE命令的常用結(jié)構(gòu)命令的常用結(jié)構(gòu)Locate for 條件表達(dá)式DO WHILE FOUND() 處理. continue enddo use 學(xué)生loca for 性別=女 DO WHILE FOUND() disp cont enddo 例子操作表的常用命令操作表的常用命令o建立數(shù)據(jù)表:CREATE o打開數(shù)據(jù)表:nUSE IN | o 關(guān)閉數(shù)據(jù)表:nUSE IN | o 關(guān)閉所有工作區(qū)中的數(shù)據(jù)表:nCLOSE TABLES ALLo 關(guān)閉所有打開的文件:nCLOSE ALLo 打開表設(shè)計(jì)器(顯示/修改表結(jié)構(gòu)):nMODIFY STRUCTUREo打開“瀏覽”窗口(

16、顯示/修改表記錄):nBROWSE FIELDS 操作表的常用命令操作表的常用命令o 顯示表結(jié)構(gòu)o DISPLAY | LIST STRUCTURE TO PRINTER PROMPT|TO FILE o 顯示表記錄o DISPLAY | LIST FIELDS FOR WHILE TO PRINTER PROMPT|TO FILE o 當(dāng)“范圍”省略時(shí),DISPLAY命令默認(rèn)為當(dāng)前記錄,而LIST默認(rèn)為全部記錄。操作表的常用命令o 交互式修改記錄n EDIT | CHANGE FOR WHILE o 直接修改記錄nREPLACE WITH ,字段名2 WITH表達(dá)式2 . 范圍 FOR |

17、WHILE o 在表的末尾追加(空白)記錄:nAPPEND BLANKo 利用已有文件追加記錄nAPPEND FROM FIELDS FOR SDF 操作表的常用命令o在當(dāng)前記錄之后(之前)插入(空白)記錄:nINSERT BEFORE BLANKo刪除記錄(刪除標(biāo)記):nDELETE 范圍 FOR WHILE o恢復(fù)記錄(去刪除標(biāo)記):nRECALL 范圍 FOR WHILE o(8)從磁盤上刪除表中有刪除標(biāo)記的記錄:nPACKo從磁盤上刪除表中所有的記錄:nZAPo注意:如果在表上建立了主索引或候選索引,則不能用以上的APPEND或INSERT命令插入記錄,必須使用SQL的INSERT命令

18、。 操作表的常用命令操作表的常用命令o 查找(定位)記錄n LOCATE FOR 范圍 WHILEo 繼續(xù)查找(滿足LOCATE條件的)下一記錄n CONTINUEo 過濾記錄n SET FILTER TO o 篩選字段n SET FIELDS TO | ALLo 定位記錄指針n GO | GOTO | BOTTOM | TOPo 移動(dòng)記錄指針n SKIP 數(shù)值表達(dá)式操作表的常用命令操作表的常用命令o 復(fù)制表文件的結(jié)構(gòu):n COPY STRUCTURE TO FIELDS o 復(fù)制表文件:n COPY TO 范圍 FOR WHILE FIELDS o 將表文件復(fù)制成文本文件:n COPY TO

19、 TYPE DELIMITEDo 文件復(fù)制命令:n COPY FILE TO o 將表的結(jié)構(gòu)復(fù)制成記錄內(nèi)容:n COPY STRUCTURE EXTENDED TO FIELDS 操作表的常用命令操作表的常用命令o 選擇當(dāng)前工作區(qū):nSELECT | o 物理排序:n SORT TO ON /A | /D /C , /A | /D /C. ASCENDING | DESCENDING FIELDS FOR o 顯示文件內(nèi)容:nTYPE TO PRINTER PROMPT | TO FILE o 設(shè)置是否以獨(dú)占的方式打開數(shù)據(jù)表:nSET EXCLUSIVE ON | OFF排序o 所謂“排序”,

20、就是指定記錄排列的先后順序。建表時(shí),輸入到新表的記錄按照輸入順序存儲(chǔ),在瀏覽表時(shí),記錄按輸入的順序出現(xiàn)。o SORT TO ON /A | /D /C , /A | /D /C. ASCENDING | DESCENDING FIELDS FOR o /A | /D:/A按升序排列,/D按降序排列,默認(rèn)為按升序排列;o /C:排序時(shí)不區(qū)分大小寫字母,默認(rèn)區(qū)分大小寫;o ASCENDING | DESCENDING:除了用/A | /D說明升序或降序的字段外,其他參與排序的字段的排序方式,默認(rèn)為按升序排列; 例如o 要將“基本信息”表生成一個(gè)按屆次降序排序的新表:n SORT ON 屆次/D T

21、O JBXX1o 排序后并不改變?cè)淼捻樞?,但可以生成一個(gè)排過序的新表。3.4 索引o 按特定的順序定位、查看或操作表中的記錄,可以使用索引。o VPF 可以靈活對(duì)同一表創(chuàng)建和使用不同的索引,使人們可按不同順序處理記錄。3.4.1 基本概念o vfpvfp 索引是由指針構(gòu)成的文件,這些指針在邏輯上索引是由指針構(gòu)成的文件,這些指針在邏輯上按照索引關(guān)鍵字值進(jìn)行排序。按照索引關(guān)鍵字值進(jìn)行排序。o 索引文件和表文件分別存儲(chǔ),并且不改變表中記索引文件和表文件分別存儲(chǔ),并且不改變表中記錄的物理順序。錄的物理順序。o 創(chuàng)建索引也就是創(chuàng)建一個(gè)指向創(chuàng)建索引也就是創(chuàng)建一個(gè)指向. .DBFDBF文件記錄的指文件記錄

22、的指針構(gòu)成文件針構(gòu)成文件. .o 若要根據(jù)特定順序處理表記錄若要根據(jù)特定順序處理表記錄, ,可以選擇一種索引可以選擇一種索引. . o 從邏輯上按照索引關(guān)鍵字的值進(jìn)行升序或降序排列。從邏輯上按照索引關(guān)鍵字的值進(jìn)行升序或降序排列。2、索引的類型o主索引o侯選索引o惟一索引o普通索引1、主索引o 主索引在指定字段或表達(dá)式中不允許出現(xiàn)重復(fù)值的索引。即在數(shù)據(jù)表的全部記錄中都不能出現(xiàn)重復(fù)。不允許有重復(fù)值。否則VF6.0返回出現(xiàn)錯(cuò)誤信息。o 只能在數(shù)據(jù)庫表中創(chuàng)建和使用,而且一個(gè)數(shù)據(jù)表只能指定一個(gè)主索引。 2、候選索引o 候選索引和主索引具有相同的特性,建立候選索引的字段可以看成 是候選關(guān)鍵字,所以一個(gè)表可

23、以有多個(gè)候選索引。o 索引關(guān)鍵字不允許有重復(fù)值索引關(guān)鍵字不允許有重復(fù)值, ,對(duì)每個(gè)自由表和對(duì)每個(gè)自由表和數(shù)據(jù)庫表都數(shù)據(jù)庫表都可以建立多個(gè)侯選索引可以建立多個(gè)侯選索引。3、惟一索引o 是VFP為保持與低版本軟件兼容而保留的一種索引類型。像普通索引一樣,但是在索引表中只保留數(shù)據(jù)表中與索引字段值相同的第一條記錄。4、普通索引o 它允許字段中出現(xiàn)重復(fù)值,并且索引項(xiàng)中也允許出現(xiàn)重復(fù)值。在一個(gè)表中可以建立多個(gè)普通索引。o 數(shù)據(jù)表可創(chuàng)建該索引,自由表也可以。 3.4.2 在表設(shè)計(jì)器中建立索引3.4.3 用命令創(chuàng)建索引o 格式一:n Index On 索引表達(dá)式 To 獨(dú)立索引文件名Uniqueo 格式二:n

24、 Index On 索引表達(dá)式 Tag 索引名 Of 復(fù)合索引文件名 ASCENDING|DESCENDING Unique|CANDIDATE解釋:o 在vfp中索引文件應(yīng)該索引文件應(yīng)該有獨(dú)立索引文件和復(fù)合索引文件2種。索引文件細(xì)化為三種o 1、結(jié)構(gòu)復(fù)合索引文件n 該文件的主文件名與表文件的主文件名同名,擴(kuò)展名為cdx,在表設(shè)計(jì)器中指定索引時(shí),自動(dòng)生成該索引文件,該文件在打開表時(shí)自動(dòng)打開,關(guān)閉表時(shí)自動(dòng)關(guān)閉。一個(gè)表文件最多只能有一個(gè)結(jié)構(gòu)復(fù)合索引文件。索引文件細(xì)化為三種o 2、非結(jié)構(gòu)復(fù)合索引文件:n 該文件的主文件名與表文件的主文件名不相同,擴(kuò)展名也為cdx,它必須使用Index命令建立,要使用

25、該文件時(shí),必須先用set index to 索引文件名打開,然后再用set order to 索引名命令來指定有效的索引。n 非結(jié)構(gòu)復(fù)合索引文件不會(huì)自動(dòng)生成,而且也不會(huì)自動(dòng)隨表文件的打開而打開,隨表文件的關(guān)閉而關(guān)閉。索引文件細(xì)化為三種o 3、獨(dú)立索引文件:n 擴(kuò)展名為.IDX,一個(gè)獨(dú)立索引文件只能有一個(gè)索引標(biāo)識(shí),即一個(gè)獨(dú)立索引文件只能包含一種索引方式。n 獨(dú)立索引文件不能降序索引,它是為了向下兼容才保留的,在VFP中很少用到獨(dú)立索引文件。3.4.4 使用索引o 1、打開單索引或非結(jié)構(gòu)復(fù)合索引文件o SET INDEX TO 索引文件列表o 2、設(shè)置當(dāng)前索引o SET ORDER TO 索引序號(hào)

26、|TAG 索引項(xiàng)o 有多個(gè)索引文件打開或文件包含多個(gè)索引時(shí),o 用來設(shè)定當(dāng)前作用的索引,其中索引序號(hào)決o 定打開時(shí)的列表順序。將結(jié)構(gòu)索引文件中的“訂購單號(hào)”設(shè)置為當(dāng)前索引SET ORDER TO TAG 訂購單號(hào)或SET ORDER TO 訂購單號(hào)例:3.4.5 使用索引快速定位o SEEK命令的格式:n SEEK 索引關(guān)鍵字值ORDER 索引序號(hào)|索引名 ASCENDING|DESCENDINGn 在指定升序或降序索引中定位指定索引關(guān)鍵字值的第1條記錄。o 例:假設(shè)當(dāng)前正在使用學(xué)生表,將記錄指針定位在學(xué)號(hào)為9921105的記錄上n SEEK 9921105 ORDER 學(xué)號(hào)例:SEEK “8

27、888888” ORDER 學(xué)號(hào) DISP3.4.6、刪除索引1.在表設(shè)計(jì)器中使用“索引”選項(xiàng)卡,選擇對(duì)象按刪除按紐。 2.命令格式:DELETE TAG 索引名|ALL 命令說明:用于刪除指定的索引或全部索引。DELETE TAG 索引名DELETE TAG 索引名|ALL3.5 數(shù)據(jù)完整性o 在數(shù)據(jù)庫中數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特性。o 數(shù)據(jù)完整性一般包括實(shí)體完整性、域完整性和參照完整性等,VFP提供了實(shí)現(xiàn)這些完整性的方法和手段。3.5.1 實(shí)體完整性與主關(guān)鍵字o 是保證表中記錄唯一的特性,即在一個(gè)表中不允許有重復(fù)記錄。VFP利用主關(guān)鍵字或侯選關(guān)鍵字來保證表中的記錄惟一性,即保證實(shí)體惟一

28、性。3.5.2 域完整性與約束規(guī)則o 數(shù)據(jù)類型的定義都是域完整性的范疇。o 域約束規(guī)則也稱作字段有效性規(guī)則,主要用于數(shù)據(jù)輸入正確性的檢驗(yàn)。字段有效性規(guī)則:對(duì)整個(gè)字段的有效性加以規(guī)范,其中有3個(gè)屬性1.規(guī)則 應(yīng)當(dāng)是一個(gè)關(guān)系表達(dá)式或邏輯表達(dá)式,結(jié)果為 .F.檢驗(yàn)未通過;.T.檢驗(yàn)通過。2、信息 檢驗(yàn)未通過時(shí)將顯示本“信息”,如果省略,系統(tǒng)以默認(rèn)信息顯示。信息是字符串表達(dá)式3、默認(rèn)值 設(shè)定該字段的初始值,以便提高表中數(shù)據(jù)輸入的速度和準(zhǔn)確性。3.5.2 域完整性與約束規(guī)則例:o 訂貨管理數(shù)據(jù)庫中的職工表為例o 設(shè)職工的工資有效性規(guī)則在10003000元之間,當(dāng)輸入的職工工資不在此范圍時(shí)給出出錯(cuò)提示,職

29、工的默認(rèn)工資值是1200。o 規(guī)則:工資=1000.and.工資=3000o 信息:“工資輸入錯(cuò)誤,應(yīng)該在1000-3000元之間。”o 默認(rèn):12003.5.3參照完整性與表之間的關(guān)系o 參照完整性與表之間的關(guān)聯(lián)有關(guān);o 它的含義:n 當(dāng)插入、刪除或修改一個(gè)表中的數(shù)據(jù)時(shí),通過參照引用相互關(guān)聯(lián)的另一個(gè)表中的數(shù)據(jù),來檢查對(duì)表的數(shù)據(jù)操作是否正確。參照完整性是指不允許在相關(guān)數(shù)據(jù)表中引用不存在的記錄參照完整性應(yīng)滿足如下三個(gè)規(guī)則:1、在相關(guān)聯(lián)的數(shù)據(jù)表間,子表中的每一個(gè)記錄在對(duì)應(yīng)的父表中 都必須有一個(gè)父記錄。2、對(duì)子表作插入記錄操作時(shí),必須確保父表存在一個(gè)父記錄。3、對(duì)父表作刪除記錄操作時(shí),其對(duì)應(yīng)的子表中

30、必須有子記錄存在。1、建立表之間的聯(lián)系o 一般在父表中建立主索引,在子表中建立普通索引o 通過主索引與普通索引建立2個(gè)表之間的聯(lián)系。o 用教學(xué)管理作例子:學(xué)生與學(xué)生個(gè)人情況是一對(duì)一關(guān)系專業(yè)與學(xué)生是一對(duì)多關(guān)系。 2、設(shè)置參照完整性約束o 首先清理數(shù)據(jù)庫,即刪除數(shù)據(jù)庫各表中所有帶有刪除標(biāo)記的記錄。o 數(shù)據(jù)庫/清理數(shù)據(jù)庫 o 功能與命令:PACK DATABASE 一樣。o 在表之間的聯(lián)系線上,單擊右鍵,在快捷菜單選擇“參照完整性”關(guān)于級(jí)聯(lián)、限制、忽略的解釋參照完整性規(guī)則包括選擇該選項(xiàng)卡更新規(guī)則更新規(guī)則:規(guī)定了當(dāng)更新父表中的連接字段(主關(guān)鍵字)值規(guī)定了當(dāng)更新父表中的連接字段(主關(guān)鍵字)值時(shí),如何處理

31、相關(guān)子表中的記錄:時(shí),如何處理相關(guān)子表中的記錄:刪除規(guī)則刪除規(guī)則:規(guī)定了當(dāng)刪除父表中的記錄時(shí),如何處理子表中的規(guī)定了當(dāng)刪除父表中的記錄時(shí),如何處理子表中的 相關(guān)的記錄:相關(guān)的記錄:插入規(guī)則插入規(guī)則:規(guī)定了當(dāng)插入子表中的記錄時(shí),是否進(jìn)規(guī)定了當(dāng)插入子表中的記錄時(shí),是否進(jìn)行參照完整性檢查:行參照完整性檢查:3.6 自由表表有2種:自由表和數(shù)據(jù)庫表自由表:獨(dú)立存在的表數(shù)據(jù)庫表:屬于數(shù)據(jù)庫的表稱為“數(shù)據(jù)庫表”表名的擴(kuò)展名均為:.dbf1、使用表設(shè)計(jì)器:2、使用命令窗口:CREATE 表名3、使用向?qū)?在在VFP中創(chuàng)建新表方法分為:中創(chuàng)建新表方法分為:在在VFPVFP中創(chuàng)建表的地方:中創(chuàng)建表的地方:o 1

32、、在項(xiàng)目外創(chuàng)建表;文件/新建/表/新建文件o 2、在項(xiàng)目內(nèi)創(chuàng)建表;在項(xiàng)目管理器中;數(shù)據(jù)/自由表/新建o 3、在項(xiàng)目中創(chuàng)建數(shù)據(jù)庫表;o 4、在項(xiàng)目中創(chuàng)建自由表1、在項(xiàng)目管理器中添加2、在數(shù)據(jù)庫設(shè)計(jì)器中,用快捷菜單添加。數(shù)據(jù)庫/添加3、命令添加: ADD TABLE 表名|?NAME 長表名 ?顯示打開對(duì)話框長表名:=128個(gè)字符一個(gè)表只能屬于一個(gè)數(shù)據(jù)庫。如果要將某個(gè)數(shù)據(jù)庫的表添加到當(dāng)前數(shù)據(jù)庫中;操作:選數(shù)據(jù)庫表-移去-打開當(dāng)前數(shù)據(jù)庫-添加3.6.2 將自由表添加到數(shù)據(jù)庫 ADD TABLE TTT NAME 2001 級(jí)學(xué)生軍訓(xùn)表將自由表TTT添加到當(dāng)前數(shù)據(jù)庫。表名為2001 級(jí)學(xué)生軍訓(xùn)表USE

33、 TTT=USE 2001 級(jí)學(xué)生軍訓(xùn)表例:注意o 一個(gè)表只能屬于一個(gè)數(shù)據(jù)庫,當(dāng)一個(gè)自由表添加到某個(gè)數(shù)據(jù)庫后就不再是自由表了。o 所以不能添加已經(jīng)屬于某個(gè)數(shù)據(jù)庫的表到當(dāng)前數(shù)據(jù)庫,否則會(huì)有出錯(cuò)提示。3.6.3 從數(shù)據(jù)庫中移出表o 1、在項(xiàng)目中移去表; n 移去或刪除表o 在“項(xiàng)目管理器”中,選擇數(shù)據(jù)庫;選擇要移去的表, 單擊“移去” 在提示中選擇“移去”或“刪除”。o 命令:REMOVE TABLE 表名|?DELETERECYCLEn ?打開移去對(duì)話 框n DELETE徹底刪除n RECYCLE移去并不立即刪除。3.7 多個(gè)表的同時(shí)使用 在實(shí)際操作中往往需要同時(shí)使用多個(gè)數(shù)據(jù)表多個(gè)數(shù)據(jù)表,在VF

34、6.0中,最多有32767個(gè)數(shù)據(jù)表操作,但是每次只能對(duì)其中的一個(gè)進(jìn)行操作。這個(gè)被選中的數(shù)據(jù)表叫做當(dāng)前表,用戶可以隨時(shí)切換到其他表操作。3.7.1多工作區(qū)的概念 o 發(fā)所謂打開一個(gè)數(shù)據(jù)表,實(shí)質(zhì)上就是將一個(gè)數(shù)據(jù)表的信息,調(diào)入計(jì)算機(jī)內(nèi)存某個(gè)特定存儲(chǔ)區(qū)域的過程。這個(gè)特殊的存儲(chǔ)區(qū)域,被稱為工作區(qū)。 o 同時(shí)使用多個(gè)表,VFP系統(tǒng)必然能夠?yàn)橛脩粼趦?nèi)存中同時(shí)建立多個(gè)工作區(qū)。每個(gè)工作區(qū)中只能打開一個(gè)表。3.7.1多工作區(qū)的概念o 每個(gè)工作區(qū)都有自己的編號(hào),它們是1、2、332767。每個(gè)工作區(qū)還有自己的名稱,其中前10個(gè)是A、B、CJ后面的是W11、W12、W32767。o 每次啟動(dòng)VFP以后,系統(tǒng)總是默認(rèn)1號(hào)工作區(qū)為當(dāng)前工作區(qū)。o 如果這里指定為0,則選擇編號(hào)最小的可用工作區(qū)

溫馨提示

  • 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)論