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

下載本文檔

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

文檔簡介

第三章VF數(shù)據(jù)庫及其操作一、創(chuàng)建數(shù)據(jù)庫表:注:表分?jǐn)?shù)據(jù)庫表和自由表,其文件擴(kuò)展名都為:.dbf。數(shù)據(jù)庫表是指屬于某個數(shù)據(jù)庫的表,自由表是指不屬于任何數(shù)據(jù)庫的表。 打開項(xiàng)目管理器->數(shù)據(jù)庫->表->新建; 使用新建命令或者使用Create命令建立數(shù)據(jù)庫;1.方法:opendatabase打開數(shù)據(jù)庫——create建立表。注:如果沒有先用opendatabase打開數(shù)據(jù)庫,而是直接用create命令建立表也可以,因?yàn)樗话行┰跀?shù)據(jù)庫中才能實(shí)現(xiàn)的功能,這時建立的表不是數(shù)據(jù)庫中的表,而是自由表;新建的表處于打開處狀態(tài)可以直接進(jìn)行錄入及修改表結(jié)構(gòu)操作,如果以后進(jìn)行操作:1.可以直接在盤符中找到打開;2.在命令窗口中輸入U(xiǎn)SETableName(表名)——單擊“顯示——瀏覽”或者在命令行輸入BROWSELASE回車即可。二、數(shù)據(jù)庫表的字段屬性:1、字段顯示屬性: 字段名是字段的唯一標(biāo)志,由1—128個非空字符組成; 字段名即關(guān)系的屬性名或表的列名。一個表由若干列(字段)構(gòu)成,每個列都必須有一個惟一的名字即字段名 字段名可以是漢字或合法的西文標(biāo)識符;注:自由表:2

自由表字段名最長為10個字符。3

數(shù)據(jù)庫表的字段名最長為128個字符。4

字段名必須以字母或漢字開頭。5

字段名可以由字母、漢字、數(shù)字和下劃線組成。6

字段名中不能包含空格。注:字段類型決定了存儲的數(shù)據(jù)類型,字段寬度決定了存儲數(shù)據(jù)的寬度和取值范圍。字段的類型(字段變量)字段類型寬度實(shí)際定義寬度字段類型寬度實(shí)際定義寬度字符型C≤254自定義雙精度(B)≤20位8數(shù)值型(N)≤20位8整型(I)≤10位4浮動型(F)≤20位8邏輯型(L)11日期型(D)88備注型(M)4不受限制日期時間型(D)1414通用型(G)4不受限制貨幣型(Y)≤20位(bit)8注: 備注型和通用型內(nèi)容存放在擴(kuò)展名為:.fpt文件中。 通用型可以存放圖片等多媒體內(nèi)容,而備注型不能存放圖片等。 記住各字段類型及字母表示、寬度。注:NULL:空值表示字段或變量還沒有確定值。三、設(shè)置字段的顯示格式:格式確定了一個字段在數(shù)據(jù)瀏覽窗口、表單或報(bào)表中的顯示方式??梢栽诟袷轿谋究蛑休斎胨枰母袷酱a,常用的格式用。在當(dāng)前的“工具”——選項(xiàng)下進(jìn)行設(shè)置;四、設(shè)置字段的有效性:規(guī)則:即字段有效性規(guī)則,用來指定該字段的值必須滿足的條件,為邏輯表達(dá)式;信息:即違背字段有效性規(guī)則時的提示信息,為字符串表達(dá)式;默認(rèn)值:即字段的默認(rèn)值,可以減少數(shù)據(jù)輸入的工作量,類型以字段的類型來確定。對數(shù)據(jù)庫表的操作:1.添加數(shù)據(jù)庫表:一個數(shù)據(jù)庫中可以包括一個或多個相關(guān)聯(lián)的數(shù)據(jù)表,可以向數(shù)據(jù)庫中加入任何已經(jīng)建立的表,但這個表不能屬于其他的數(shù)據(jù)庫,因?yàn)橥粋€表在同一時間只能屬于一個數(shù)據(jù)庫。如果要把其他數(shù)據(jù)庫中的表加入到一個新的數(shù)據(jù)庫中,可以先把要加入的表從原來的數(shù)據(jù)庫中移出。注:添加數(shù)據(jù)庫表的方法——先打開數(shù)據(jù)庫——右擊——添加表——選中要添加的表——確定即可。2.刪除數(shù)據(jù)表:在要刪除的數(shù)據(jù)表上右擊——移去即可。如果單擊刪除,該表將從磁盤上刪除。二、修改表結(jié)構(gòu):1、在項(xiàng)目管理器中進(jìn)行修改;2、在數(shù)據(jù)庫設(shè)計(jì)器中進(jìn)行修改;3、使用命令進(jìn)行修改:如果當(dāng)前表不在數(shù)據(jù)庫設(shè)計(jì)器中,則首先用USE命令打開要修改的表——然后輸入modifysetructure(此命令后不能有任何參數(shù),其功能是修改當(dāng)前表的結(jié)構(gòu))打開表設(shè)計(jì)器進(jìn)行修改操作即可。

修改已有的字段:用戶可以直接修改字段的名稱、類型和寬度。

增加新字段:要在原來的字段后增加新的字段,可以直接將光標(biāo)移動到增加新字段,然后輸入新的字段名、字義類型和寬度;如果要在原來的字段中間插入新的字段,則首先將光標(biāo)定位在要插入新字段的位置,然后單擊“插入”按鈕,這時會插入一個新的字段,輸入新的字段名、定義類型和寬度。

刪除不用的字段:若要刪除某個字段,首先將光標(biāo)定位在要刪除的字段上,然后單擊“刪除”按鈕即可。三、對表的基本操作:1、打開并游覽表有多種方式: 在項(xiàng)目管理器中將數(shù)據(jù)庫展開至表并選中要瀏覽的表單擊瀏覽即可。 在數(shù)據(jù)庫設(shè)計(jì)器中選擇要操作的表從數(shù)據(jù)庫中選擇瀏覽。 在命令窗口中,首先用USE打開要操作的表——輸入BROWSE命令來瀏覽表;即可對表進(jìn)行瀏覽、添加、刪除和修改操作。2、瀏覽表的操作:A:下一記錄:下箭頭鍵;B:上一記錄:上箭頭鍵;C:下一頁:BageDown鍵;D:前一頁:PageUP鍵;E:下一字段:Tab鍵;F:前一字段:Shift+Tab鍵;還可以使用四個方向鍵;3、用命令對表進(jìn)行操作:修改表中的數(shù)據(jù):A:追加記錄命令格式:APPEND[BLANK]APPEND:在表文件的尾部追加任意多少記錄,并且進(jìn)入交互式狀態(tài),等待用戶輸入數(shù)據(jù).APPENDBLANK:在表文件尾部追加一條空白記錄。B:插入記錄的命令格式:INSERT[BEFOE][BLANK]INSERT:在當(dāng)前記錄的后面插入任意多少記錄,并且進(jìn)入交互式狀態(tài)等待用戶輸入數(shù)據(jù)。INSERTBEFOR:在當(dāng)前記錄的后面插入任意多少記錄,并且進(jìn)入交互式狀態(tài)等待用戶輸入數(shù)據(jù)。INSERTBLANK:在當(dāng)前記錄的后面插入一條空白記錄。INSERTBEFOREBLANK:在當(dāng)前記錄的前面插入一條空白記錄。C:刪除記錄:在VF中刪除記錄分為邏輯刪除和物理刪除兩個步驟。邏輯刪除是指給表文件中的記錄打上一個刪除標(biāo)記(可以恢復(fù)),但表中記錄仍然存在,物理刪除是指將表文件中的數(shù)據(jù)徹底刪除(不能恢復(fù))。1

邏輯刪除記錄命令格式:DELETE[范圍]|[FOR<條件>]ALL:表示所有DELETE:邏輯刪除當(dāng)前表中的當(dāng)前記錄一條。DELETEALL:邏輯刪除當(dāng)前表中所有記錄。DELETEFOR<條件>:邏輯刪除當(dāng)前表中滿足條件的記錄。Deletefrom表名where條件例如:邏輯刪除當(dāng)前表中職工編號為003的員工:DELETEFOR職工編號=0032物理刪除記錄命令:3

PACK:物理刪除當(dāng)前表中打上邏輯刪除標(biāo)記的所有記錄。4

ZAP:物理刪除當(dāng)前表中所有的記錄(不管是否打上邏輯刪除標(biāo)記,但表結(jié)構(gòu)并沒有刪除)注:DELETEALL和PACK兩個命令集合等價(jià)于ZAP功能D:恢復(fù)記錄的刪除:RECALL[FOR]+邏輯表達(dá)式:如:將當(dāng)前表中已經(jīng)刪除的女生記錄恢復(fù):RECALLFOR性別=”女”1

修改記錄命令格式:REPLACE<被修改的字段名>WITH<表達(dá)式>[FOR<條件>]修改全部記錄的命令:REPLACEALL<被修改的字段名>WITH<表達(dá)式>1.修改面積為500的城市為貴陽2.修改倉庫在武漢的倉庫號為WH33.把所有倉庫的面積增加100注:沒有FOR<條件>和<范圍>默認(rèn)只替換當(dāng)前記錄一條。如果有FOR<條件>和<范圍>替換指定范圍當(dāng)中的滿足條件的記錄(有FOR<條件>沒有<范圍>時,默認(rèn)范圍是ALL)例:將當(dāng)前表中所有學(xué)生的年齡加2。REPLACEALL年齡WITH年齡+22

顯示記錄命令:LIST和DISPLAYLIST:默認(rèn)范圍是所有記錄。當(dāng)SETDELETED為ON時,LIST不顯示帶刪除標(biāo)記的記錄。DISPLAY:默認(rèn)顯示當(dāng)前記錄。TOPRINTER,DISPLAY:是將結(jié)果定向輸出到打印機(jī);PROMPT:可以調(diào)整打印機(jī)的設(shè)置;TOFILEFILENAME:是將結(jié)果定向輸出到指定的文件中。例:顯示XS表中的女生記錄;USEXS打開學(xué)生表LIST姓名,政治,數(shù)學(xué)FOR性別=”女”即可顯示女生的記錄。3.查詢定位(或者叫記錄指針定位)查詢定位命令格式:LOCATEFOR<條件>將記錄指針定位到從上至下第一個滿足條件的記錄上。如果表中沒有滿足條件的記錄時,記錄指針則指到結(jié)束標(biāo)識EOF。如需繼續(xù)定位到下一個滿足條件的記錄上用CONTINUE繼續(xù)查找。注CONTINUE不能單獨(dú)使用,必須跟LOCATEFOR聯(lián)用。其格式為:LOCATEFOR查詢定位的表達(dá)式DOWHILEFOUND()//處理……CONTINUEENDDO注:當(dāng)用LOCATE命令發(fā)現(xiàn)一個滿足條件的記錄之后,可CONTINUE命令,從而在表的剩余部分尋找其他滿足條件的記錄,可重復(fù)的執(zhí)行CONTINUE命令,直到到達(dá)表尾。例:在下列示例中,搜索所有女生的記錄,然后顯示總數(shù)。USEXSSTORE0TOsLOCATEFOR性別=”女”DoWHILEFOUND()s=s+1?姓名CONTINUEENDDO?“女生總數(shù):”+LTRIM(STR(GNCOUNT))4

直接定位的命令:GOTON|TOP|BOTTOM說明:N指表文件中的記錄號,而不是表中的第幾行;TOP:表中的首記錄即第一行記錄,而不是起始標(biāo)識BOF。BOTTOM:表中的尾記錄即最后一條記錄,而不是結(jié)束標(biāo)識EOF;例:USEXS打開學(xué)生表GOTOP將記錄指針定位在表的第一個記錄上GOBOTTOM:將記錄指針定位在表的最后一個記錄上。相對定位命令格式:SKIPNN:表示將記錄的指針從當(dāng)前記錄移動N行,正數(shù)往下移,負(fù)數(shù)往上移,但當(dāng)遇到起始標(biāo)識BOF或結(jié)束標(biāo)識EOF時,則停止移動;例:USEXS打開學(xué)生表;SKIP1?RECNO()顯示2查詢定位命令格式:LOCATEFOR<條件>索引:1使記錄按某種順序排列,但不需要改變記錄的物理位置。是由記錄指針構(gòu)成的文件,當(dāng)在表文件中建立索引后表中記錄的物理順序(記錄號)不會發(fā)生改變,只是邏輯順序發(fā)生改變。也稱為邏輯排序。2

索引文件的擴(kuò)展名為:.CDX注:索引文件具有如下特點(diǎn):3

同一個索引文件中可以有多種排序方式,有多個索引關(guān)鍵字。4

在對表進(jìn)行添加、刪除、更改操作時,索引文件自動維護(hù)。種類要求特點(diǎn)主索引是關(guān)鍵字才能建立主索引不允許出現(xiàn)重復(fù)值,只有數(shù)據(jù)庫表才能建立,并且只能建立一個主索引候選索引是關(guān)鍵字才能建立主索引數(shù)據(jù)庫表和自由表都能建立,每個表中可以建立多個候選索引惟一索引無要求保持與早期的版本兼容性,任何表任何字段都能建立,并且可以建立多個,建好后索引中的值是唯一的;它的“唯一性”是指索引項(xiàng)的唯一,而不是字段值的唯一。普通索引無要求允許字段中出現(xiàn)重復(fù)值,也允許索引項(xiàng)出現(xiàn)重復(fù)值,任何表任何字段都能建立,并且可以建立多個所以在VFP中,索引可分為主索引、候選索引、唯一索引和普通索引4種。任何一種索引均可以設(shè)置升序和降序。二、創(chuàng)建索引:分單項(xiàng)索引和復(fù)合字段索引。1.單項(xiàng)索引:(1)

打開表設(shè)計(jì)器——在“字段”選項(xiàng)卡中選擇要建立索引的字段后,在對應(yīng)的索引的下拉列表框中選擇無、升序或降序,就產(chǎn)生了單項(xiàng)普通索引,索引名與字段名相同,索引表達(dá)式就是對應(yīng)的字段。(2)

如果要將索引定義為其他類型的索引,應(yīng)選擇表設(shè)計(jì)器中的“索引”選項(xiàng)卡,然后從“類型”下接列表框中選擇索引的類型,這時可以根據(jù)需要選擇要建的索引即可。2.復(fù)合索引:(1)

在多個字段上的索引稱做復(fù)合字段索引,其建立方法:(2)

在表設(shè)計(jì)器中的“索引”下——單擊“插入”在表達(dá)式下輸入所需要的索引名——確定——選擇類型——表達(dá)式默認(rèn)——確定即可。注:在一個表上可以建立多個普通索引,唯一索引和候選索引,但只能建立一個主索引。通常,主索引用于確定主關(guān)鍵字字段;候選索引用于不作為主關(guān)鍵字但字段值又必須唯一的字段;普通索引用于一般地提高查詢速度;唯一索引用于一些特殊的程序設(shè)計(jì)。3.用命令方式建立索引:其表達(dá)式為:INDEXON索引表達(dá)式TAG索引名[UNIQUE|CANDIDATE]說明:表達(dá)式:指定一個索引表達(dá)式,它可以是字段名,或包含字段名的表達(dá)式。TAG索引名:表示創(chuàng)建一個復(fù)合索引文件,TAG索引名指為索引命名多個索引,可以創(chuàng)建在一個索引文件中,這種索引稱做結(jié)構(gòu)復(fù)合索引,其文件名與相關(guān)的表同名,并且擴(kuò)展名為.cdx。UNIQUE:表示建立唯一索引。CANDIDATE:表示建立候選索引。例:打開學(xué)生表,并創(chuàng)建一個名為“排名”的索引文件,該索引文件以“政治”字段的分類顯示和處理記錄。USEXSINDEXON政治tag排名CLEARDISPLAY三、索引文件的種類:1

非結(jié)構(gòu)單索引文件中只包含一種索引,這種索引文件的擴(kuò)展名為.idx。2

非結(jié)構(gòu)復(fù)合索引文件可以包含不同的索引標(biāo)識的多個索引,也可以為一個表建立多個非結(jié)構(gòu)復(fù)合索引文件,這種索引文件的擴(kuò)展名為:.cdx3

結(jié)構(gòu)復(fù)合索引文件可以包含不同的索引標(biāo)識的多個索引,一個表只能建立一個結(jié)構(gòu)復(fù)合索引文件。這種索引文件夾擴(kuò)展名為:.cdx。注:結(jié)構(gòu)復(fù)合索引文件具有隨表打開時自動打開,在同一索引文件中能包含多個索引項(xiàng),在添加、更改或者刪除記錄時自動維護(hù)索引等特性。四、使用索引的方法:1、打開索引文件:注:與表名相同的結(jié)構(gòu)索引文件在打開表時都能夠自動打開,但是對于非結(jié)構(gòu)索引必須在使用之前打開索引文件,使用SETINDEXTO命令。命令格式為:SETINDEXTOIndexFileList例:USEXSSETINDEXTO排名ORDER政治2、設(shè)置當(dāng)前索引:命令格式為:SETORDERTO格式;例:USEXSSETORDERTO1例:將結(jié)構(gòu)索引文件中的“訂購單號”設(shè)置為當(dāng)前索引。SETORDERTOTAG訂購單號或者SETORDERTO訂購單號3、刪除索引:(1)在表設(shè)計(jì)器中刪除;(2)使用命令:

DELETETAGTagName1;TagName1指要刪除的索引名;

DELETETAGALL指刪除全部索引。數(shù)據(jù)完整性:主要保證表中數(shù)據(jù)的正確性即三類:實(shí)體完整性、域完整性和參照完整性。一、實(shí)體完整性與主關(guān)鍵字:實(shí)體完整性是保證表記錄的惟一性,即在一個表中不允許有重復(fù)的記錄。在VF中是利用主索引或候選索引來實(shí)現(xiàn)。二、域完整性與約束規(guī)則:即設(shè)置字段值的取值范圍。約束規(guī)則又稱為字段有效性規(guī)則,包括三個方面: 規(guī)則:是設(shè)置字段值的取值范圍(邏輯表達(dá)式) 信息:是違背規(guī)則后的提示信息(字符表達(dá)式) 默認(rèn)值:是表示默認(rèn)的數(shù)據(jù)(與該字段值的數(shù)據(jù)類型保持一致)。三、參照完整性:跟表之間的聯(lián)系有關(guān),包含三個方面:更新、刪除和插入。設(shè)置參照完整性之間必須建立兩個表之間的永久聯(lián)系(物理聯(lián)系),父表建立主索引,子表建立普通索引。自由表:一、創(chuàng)建自由表的方法: 使用項(xiàng)目管理器: 使用菜單方式; 使用命令方法:(1)格式為:CREATE表名例:CREATEXS創(chuàng)建學(xué)生自由表;(2)打開表的方法: 文件打開: USE表名[ALIAS<表別名>][IN<工作區(qū)號/工作區(qū)別名/表別名>][AGAIN][Exclusive]/[NoupdateShared]命令的功能:在指定的工作區(qū)打開表文件。[IN<工作區(qū)號/工作區(qū)別名/表別名>]:指定要選擇的工作區(qū);[ALIAS<表別名>]:為要打開的表指定一個別名;[AGAIN]:可以在某一工作區(qū)中打開其他要在工作區(qū)中打開的表;[Exclusive]:以獨(dú)占方式打開表;[NoupdateShared]:以只讀方式打開表;(3)關(guān)閉表的方法:如果已打開一個表,當(dāng)打開別一個表文件時,系統(tǒng)將自動將先前打開的表關(guān)閉。使用不帶任何選項(xiàng)的USE命令,關(guān)閉當(dāng)前已打開的表。使用CloseAll命令:關(guān)閉所有類型的文件。使用CloseDatabase命令,關(guān)閉已打開的數(shù)據(jù)庫文件、表文件、索引文件等。使用CloseTable命令:關(guān)閉當(dāng)前打開的所有表,不改變當(dāng)前工作區(qū)。使用QUIT命令,退出VFP系統(tǒng),關(guān)閉所有打開的文件,返回操作系統(tǒng)。二、將自由表添加到數(shù)據(jù)庫中:1

使用項(xiàng)目管理器添加自由表;2

使用數(shù)據(jù)庫設(shè)計(jì)器添加自由表;3

使用窗口命令添加自由表;命令格式為:ADDTABLETableName命令說明:TableName指定添加到數(shù)據(jù)庫中的表的名稱例:OPENDATABASE“學(xué)生管理”EXCLUSIVE以獨(dú)占方式打開“學(xué)生管理”數(shù)據(jù)庫ADDTABLEXS添加“學(xué)生”自由表;注:一個表只能屬于一個數(shù)據(jù)庫,當(dāng)一個自由表添加到某個數(shù)據(jù)庫后就不再是自由表了,所以不能把已經(jīng)屬于數(shù)據(jù)庫的表添加到當(dāng)前數(shù)據(jù)庫,否則會有出錯提示。三、從數(shù)據(jù)庫中移去表; 使用項(xiàng)目管理器; 使用數(shù)據(jù)庫設(shè)計(jì)器;注:以上兩種操作是從數(shù)據(jù)庫中移去表,使數(shù)據(jù)庫表成為自由表,所以應(yīng)該單擊“移去”按鈕,如果單擊“刪除”按鈕,則不僅從數(shù)據(jù)庫中移去表,并且還將該表文件從磁盤上刪除。從數(shù)據(jù)庫移出表后,與之聯(lián)系的所有主索引、默認(rèn)值及有關(guān)的規(guī)則都隨之消失。若移去的表在數(shù)據(jù)庫中使用了長表名,移出數(shù)據(jù)庫后長表名將不能再使用。利用命令窗口方式移去表;1、命令格式為:REMOVETABLE表名|?[DELETE][RECYCLE]命令說明:表名:指定要從當(dāng)前數(shù)據(jù)庫中移去的表:?顯示“移去”對話框,從中可以選擇一個

溫馨提示

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

評論

0/150

提交評論