數(shù)據(jù)庫(kù)與表的創(chuàng)建和使用_第1頁(yè)
數(shù)據(jù)庫(kù)與表的創(chuàng)建和使用_第2頁(yè)
數(shù)據(jù)庫(kù)與表的創(chuàng)建和使用_第3頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)與表的創(chuàng)建和使用一、常用字段類型1、字符型2 、數(shù)值型 3 、日期型 4 、邏輯型 (T 是,F(xiàn) 否) 5 、備注型二、項(xiàng)目管理器項(xiàng)目管理器是 VFP中處理數(shù)據(jù)和對(duì)象的主要工具。項(xiàng)目管理器是系統(tǒng)的“控制中心” 。一個(gè)項(xiàng)目是文件、數(shù)據(jù)、文檔、對(duì)象的集合,項(xiàng)目文件以擴(kuò)展名 *.pjx保存。創(chuàng)建一個(gè)項(xiàng)目文件的方法1、CREATE PROJECT項(xiàng)目文件名或?2、文件新建3、工具欄“新建”按鈕二、數(shù)據(jù)庫(kù)與表的概念在 VFP中有兩種表:一種是自由表,它獨(dú)立于任何數(shù)據(jù)庫(kù);一種是數(shù)據(jù)庫(kù)表,它是數(shù)據(jù)庫(kù)的一部分。數(shù)據(jù)庫(kù)和表是兩個(gè)不同的概念。 表是處理數(shù)據(jù)、 建立關(guān)系數(shù)據(jù)庫(kù)的應(yīng)用程序的基礎(chǔ)單元, 它用于存儲(chǔ)

2、收集來的各種信息。 而數(shù)據(jù)庫(kù)是表的集合,它控制這些表協(xié)同工作,共同完成特定任務(wù)。本節(jié)重點(diǎn):數(shù)據(jù)庫(kù)的創(chuàng)建和使用,數(shù)據(jù)庫(kù)表的創(chuàng)建和使用,表的擴(kuò)展屬性,數(shù)據(jù)庫(kù)表之間的關(guān)系的創(chuàng)建。三、數(shù)據(jù)庫(kù)的創(chuàng)建( *.dbc )1、使用界面方式創(chuàng)建數(shù)據(jù)庫(kù):項(xiàng)目管理器、“新建”按鈕2、使用命令方式創(chuàng)建數(shù)據(jù)庫(kù)CREATE DATABASE數(shù)據(jù)庫(kù)文件名或?四、打開數(shù)據(jù)庫(kù)OPEN DATABASE數(shù)據(jù)庫(kù)名或?五、設(shè)置當(dāng)前數(shù)據(jù)庫(kù)SET DATABASE TO 數(shù)據(jù)庫(kù)名六、修改數(shù)據(jù)庫(kù)MODIFY DATABASE數(shù)據(jù)庫(kù)文件名或?七、關(guān)閉數(shù)據(jù)庫(kù)CLOSE DATABASE &&關(guān)閉當(dāng)前數(shù)據(jù)庫(kù)CLOSE DATAB

3、ASE ALL &&關(guān)閉所有數(shù)據(jù)庫(kù)八、刪除數(shù)據(jù)庫(kù)DELETE DATABASE數(shù)據(jù)庫(kù)文件名或?數(shù)據(jù)庫(kù)表的創(chuàng)建和使用(*.dbf )在 VFP中,每個(gè)數(shù)據(jù)表可以有兩種存在狀態(tài):自由表(即沒有和任何數(shù)據(jù)庫(kù)關(guān)聯(lián)的 *.dbf 文件)或數(shù)據(jù)庫(kù)表(即與數(shù)據(jù)庫(kù)關(guān)聯(lián)的 *.dbf文件)。屬于某一數(shù)據(jù)庫(kù)的表稱為“數(shù)據(jù)庫(kù)表” ;不屬于任何數(shù)據(jù)庫(kù)而獨(dú)立存在的表稱為自由表。數(shù)據(jù)庫(kù)表和自由表可以相互轉(zhuǎn)換。一、數(shù)據(jù)庫(kù)表的創(chuàng)建CTEATE 文件名二、表結(jié)構(gòu)的修改MODIFY STRUCTURE三、表的打開和關(guān)閉USE 表名稱 &&打開表CLOSE TABLE &&關(guān)閉當(dāng)前表

4、CLOSE ALL &&關(guān)閉所有文件四、瀏覽記錄BROWSE五、增加記錄APPEND &&在表的尾部增加記錄APPEND BLANK &&追加空白記錄APPEND FROM文件名&& 將另一個(gè)表的所有記錄追加到當(dāng)前表中,但必須字段一樣。INSERT &&在表的任意位置插入新的記錄六、刪除記錄的命令1、邏輯刪除DELETE FOR 條件表達(dá)式2、恢復(fù)刪除RECALL FOR 條件表達(dá)式3、物理刪除PACK4、物理刪除表中的全部記錄ZAP七、修改記錄EDITCHANGE八、顯示記錄LIST FOR條件表達(dá)式&&

5、amp; 顯示滿足條件的記錄DISPLAY &&顯示當(dāng)前記錄,分屏顯示所有記錄九、查詢定位GOTO 記錄號(hào) && 直接按記錄號(hào)定位GOTO TOP &&定位到表頭GOTO BOTTOM &&定位到表尾SKIP N && N可以是正整數(shù)或負(fù)整數(shù),默認(rèn)是1LOCATE FOR 條件表達(dá)式&& 按條件定位記錄位置十、索引若要按特定的順序定位、查看或操作表中記錄,可以使用索引。VFP中索引分為主索引、候選索引、惟一索引和普通索引四種。1、主索引:在指定字段或表達(dá)式中不允許出現(xiàn)重復(fù)值的索引。一個(gè)表只能創(chuàng)建一個(gè)

6、主索引。2、候選索引:候選索引和主索引具有相同的特性,建立候選索引的字段可以看作是候選關(guān)鍵字,所以一個(gè)表可以建立多個(gè)候選索引。3、惟一索引:是為了保持同早期版本的兼容性,它的“惟一性”是指索引項(xiàng)的惟一,而不是字段值的惟一。4、普通索引:可以決定記錄的處理順序,它不僅允許字段中出現(xiàn)重復(fù)值、并且索引項(xiàng)中也允許出現(xiàn)重復(fù)值。在一個(gè)表上可以建立多個(gè)普通索引、多個(gè)惟一索引、 多個(gè)候選索引,但只能建立一個(gè)主索引。一般來說,主索引用于主關(guān)鍵字字段; 候選索引用于那些不作為主關(guān)鍵字但字段值又必須惟一的字段;普通索引用于一般地提高查詢速度;惟一索引用于一些特殊的程序設(shè)計(jì)。5、用命令建立索引INDEX ON字段或字

7、段表達(dá)式TO索引文件名( *.idx )6、使用索引(在表設(shè)計(jì)器中設(shè)置)SET ORDER TO N7、使用索引快速定位(在表設(shè)計(jì)器中設(shè)置)SEEK 表達(dá)式的值ORDER 字段名8、刪除索引DELETE TAG 索引名DLEETE TAG ALL &&刪除全部索引十一、數(shù)據(jù)完整性在數(shù)據(jù)庫(kù)中數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特性。數(shù)據(jù)完整性一包括實(shí)體完整性、域完整性和參照完整性等,VFP提供了實(shí)現(xiàn)這些完整性的方法和手段。1、實(shí)體完整性與主關(guān)鍵定實(shí)體完整性是保證表中記錄惟一的特性,即在一個(gè)表中不允許有重復(fù)的記錄。在 VFP中利用主關(guān)鍵定或候選關(guān)鍵字來保證表中的記錄惟一,即保證實(shí)體惟一性。

8、如果一個(gè)字段的值或幾個(gè)字段的值能夠惟一標(biāo)識(shí)表中的一條記錄,則這樣的字段稱為候選關(guān)鍵字。在一個(gè)表上可能會(huì)有幾個(gè)具有這種特性的字段或字段的組合,這時(shí)從中選擇一個(gè)作為主關(guān)鍵字。在 VFP中將主關(guān)鍵字稱作為主索引,將候選關(guān)鍵字稱候選索引。由上所述,在 VFP中主索引和候選索引有相同的作用。2、域完整性與約束規(guī)則域完整性應(yīng)該是我們最熟悉的了, 以前我們所熟知的數(shù)據(jù)類型的定義都是域完整性的范疇。 如對(duì)于數(shù)值字段, 通過指定不同的說明不同范圍的數(shù)值類型, 從而可以限福字段的取值類型和取值范圍。 但這些對(duì)域完整性還遠(yuǎn)遠(yuǎn)不夠, 我們否可以用一些域約束則來進(jìn)一保證域完整性。域約束規(guī)則也稱作字段有效性規(guī)則, 在插入

9、或修改字段值時(shí)被激活,主要用于數(shù)據(jù)輸入正確性檢驗(yàn)。建立字段有效性規(guī)則比較簡(jiǎn)單直接的方法仍然是在表設(shè)計(jì)器中建立,在表設(shè)計(jì)器的“字段”選項(xiàng)卡中有一組定義字段有效性規(guī)則的項(xiàng)目,它們是規(guī)則(字段有效性規(guī)則) 、信息(違背字段有效性規(guī)則時(shí)的提示信息)、默認(rèn)值(字段的默認(rèn)值)三項(xiàng)。具體操作步驟是:首先單擊選擇要定義字段有效性規(guī)則的字段。然后分別輸入和編輯規(guī)則、信息及默認(rèn)值等項(xiàng)目。字段有效性規(guī)則的項(xiàng)目可以直接輸入,也可以單擊輸入框旁的按鈕打開表達(dá)式生成器對(duì)話框編輯、生成相應(yīng)的表達(dá)式。以訂貨管理數(shù)據(jù)庫(kù)中的職工表為例,設(shè)職工的工資有效性規(guī)則在1000 至 3000 元之間當(dāng)輸入的職工工資不在此范圍時(shí)給出出錯(cuò)提示

10、,職工的默認(rèn)工資值是1200為此,在“規(guī)則”框中(或表達(dá)式生成器)輸入表達(dá)式;工資 =>1000 .AND. 工資 <=3000在“信息”框中(或表達(dá)式生成器)輸入表達(dá)式;“工資輸入錯(cuò)誤,應(yīng)該在1000-3000 元之間。”在“默認(rèn)值”框中(或表達(dá)式生成器)輸入表達(dá)式;1200注意:“規(guī)則”是邏輯表達(dá)式, “信息”的字符串表達(dá)式, “默認(rèn)值”的類型則視字段的類型而定。3、參照完整性與表之間的關(guān)聯(lián)參照完整性與表之間的關(guān)聯(lián)有關(guān),它的大概含義是:當(dāng)插入、刪除或修改一個(gè)表的數(shù)據(jù)時(shí)通過參照引用相互關(guān)聯(lián)的另一個(gè)表中的數(shù)據(jù),來檢查對(duì)表的數(shù)據(jù)操作是否正確。 假如一個(gè)職工通過參照引用相互關(guān)聯(lián)的另一個(gè)

11、表中的數(shù)據(jù), 來檢查對(duì)表的數(shù)據(jù)操作是否正確。 假如一個(gè)職工記錄由倉(cāng)庫(kù)號(hào)、 職工號(hào)和工資 3 個(gè)字段構(gòu)成, 當(dāng)插入一條這樣的記錄時(shí),如果沒有參照完整性的檢查, 則可能會(huì)插入一人并不存在的倉(cāng)庫(kù)的職工記錄, 這時(shí)插入的記錄肯定是錯(cuò)誤的; 如果在插入倉(cāng)庫(kù)的職工記錄之前, 能夠進(jìn)行參照完整性檢查 (檢查指定職工記錄的倉(cāng)庫(kù)號(hào)在倉(cāng)庫(kù)表中是否存在)則可以保證插入記錄的合法性。參照完整性是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)很重要的功能。在VFP中為了建立參照完整性,必須首先建立表之間的聯(lián)系(在中文版 VFP 中稱為關(guān)系)。為了理解這里的聯(lián)系, 讀者可以回憶一下第一章介紹概念數(shù)據(jù)模型時(shí)討論的實(shí)體之間的聯(lián)系和聯(lián)系類型。 最常

12、見的聯(lián)系類型是一對(duì)多的聯(lián)系,在關(guān)系數(shù)據(jù)庫(kù)中通過連接字段來體現(xiàn)和表示聯(lián)系。 連接字段在父表中一般是主關(guān)鍵字, 在子表中是外部關(guān)鍵字 (如果一個(gè)字段或字段的組合不是本表的關(guān)鍵字, 而是另外一個(gè)表的關(guān)鍵字, 則這樣的字段稱為外部關(guān)鍵字)。在數(shù)據(jù)庫(kù)設(shè)計(jì)器中設(shè)計(jì)表之間的聯(lián)系時(shí),要在父表中建立主索引,在子表中建立普通索引, 然后通過父表的主索引和子表的普通索引建立起兩人表之間的聯(lián)系。為了建立表之間的聯(lián)系,假設(shè)在訂貨管理數(shù)據(jù)庫(kù)中如下4 個(gè)表:倉(cāng)庫(kù)表,含有字段:倉(cāng)庫(kù)號(hào)、城市、面積、并以倉(cāng)庫(kù)號(hào)建立主索引;職工表,含有字段:倉(cāng)庫(kù)號(hào)、職工號(hào)、工資,并以職工號(hào)建立主索引,以倉(cāng)庫(kù)號(hào)建立普通索引;供應(yīng)商表,含字段供應(yīng)商號(hào)

13、、供應(yīng)商名、地址、并以供應(yīng)商號(hào)建立主索引;訂購(gòu)單表,含有字段:職工號(hào)、供應(yīng)商號(hào)、訂購(gòu)單號(hào)、訂購(gòu)日期,并以訂購(gòu)單號(hào)建立主索引分別以職工號(hào)和供應(yīng)商號(hào)建立普通索引。圖 3.17 顯示了數(shù)據(jù)庫(kù)設(shè)計(jì)器中已經(jīng)建立好的4 個(gè)表。在這 4 個(gè)表中,倉(cāng)庫(kù)和職工之間有一個(gè)一對(duì)多的聯(lián)系,連接字段是倉(cāng)庫(kù)號(hào);職工和訂購(gòu)單之間有一個(gè)一對(duì)多的聯(lián)系,連接字段是職工號(hào); 在供應(yīng)商和訂購(gòu)單之間有一個(gè)一對(duì)多的聯(lián)系,連接字段是供應(yīng)商號(hào)。我們先建立倉(cāng)庫(kù)和職工之間的一對(duì)多聯(lián)系,具體方法是:在圖3.17 所示的數(shù)據(jù)庫(kù)設(shè)計(jì)設(shè)計(jì)中用鼠標(biāo)單擊選中倉(cāng)庫(kù)表中的主索引倉(cāng)庫(kù)號(hào),按住鼠標(biāo)左鍵,并拖動(dòng)鼠標(biāo)到職工表的倉(cāng)庫(kù)號(hào)索引上(鼠標(biāo)箭頭會(huì)變成小矩形狀),最

14、后釋放鼠標(biāo)聯(lián)系就建立好了。用同樣的方法可以建立職工和訂購(gòu)單的聯(lián)系及供應(yīng)商和訂購(gòu)單之間的聯(lián)系。建立好聯(lián)系的表如圖 3.18 所示(觀察連接表的符號(hào),這時(shí)默認(rèn)的是一對(duì)多的聯(lián)系)。如果在建立聯(lián)系時(shí)操作有誤,隨時(shí)可以通過編輯修改聯(lián)系。方法是用鼠標(biāo)右擊要修改的聯(lián)系, 然后從彈出的菜單中選擇“編輯關(guān)系”打開“編輯關(guān)系”對(duì)話框,如圖 3.19 所示。注意:在中文 VFP中將聯(lián)系稱為關(guān)系。在圖 3.19 所示的界面中,通過在下拉列表框中重新選擇表或相關(guān)表的索引名則可以達(dá)到修改聯(lián)系的目的。到目前為止,只是建立了表之間的聯(lián)系, VFP沒有建立任何參照完整性約束。在建立參照完整性之前必須首先清理數(shù)據(jù)庫(kù), 這時(shí)可以在

15、 “數(shù)據(jù)庫(kù)”(只要打開了數(shù)據(jù)庫(kù)設(shè)計(jì)器就會(huì)有該菜單項(xiàng))菜單中選擇“清理數(shù)據(jù)庫(kù)”。在清理完數(shù)據(jù)庫(kù)后, 用鼠標(biāo)右擊表之間的聯(lián)系并從彈出菜單中選擇“編輯參照完整性”打開的參照完整性生成器如圖 3.20 所示(注意:不管單擊的是哪個(gè)聯(lián)系, 所有聯(lián)系將都出現(xiàn)在參照完整性生成器中)。參照完整性規(guī)則包括更新規(guī)則、刪除規(guī)則和插入規(guī)則。更新規(guī)則規(guī)定了當(dāng)更新父表中的連接字段(主關(guān)鍵字)值時(shí),如何處理相關(guān)的子表中的記錄:如果選擇“級(jí)聯(lián)”則用新的連接字段值自動(dòng)修改子表中的所有相關(guān)記錄;如果選擇“限制”,若子表中有相關(guān)的記錄,則禁止修改父表中的連接字段值;如果選擇“忽略”,則有作參照完整性檢查,即可以隨意更新父記錄的連接

16、字段值。刪除規(guī)則規(guī)定了當(dāng)刪除父表中的記錄時(shí),如何處理子表中相關(guān)的記錄:如果如果選擇“級(jí)聯(lián)” ,則自動(dòng)刪除子表中的所有相關(guān)記錄;如果選擇“限制”,若子表中有相關(guān)的記錄,則禁止刪除父表中的記錄;如果選擇“忽略”,則不作參照完整性檢查,即刪除父表的記錄時(shí)與子表無關(guān)。插入規(guī)則規(guī)定了當(dāng)在子表中插入記錄時(shí),是否進(jìn)行參照完整性檢查:如果選擇 “限制”,若父表中沒有相匹配的連接字段值則禁止插入子記錄;如果選擇“忽略”,則不作參照完整性檢查,即可以隨意插入子記錄。根據(jù)以上規(guī)則可以為學(xué)生管理數(shù)據(jù)庫(kù)的學(xué)生、 課程、成績(jī) 3 個(gè)表設(shè)計(jì)參照完整性:將它們的插入規(guī)則設(shè)定為 “限制”(即插入成績(jī)記錄時(shí)檢查相關(guān)的學(xué)生和課程是

17、否存在,如果不存在則禁止插入成績(jī)記錄);將它們的刪除規(guī)則設(shè)定為 “級(jí)聯(lián)”(即在刪除學(xué)生記錄和課程記錄時(shí),自動(dòng)刪除相關(guān)的成績(jī)記錄) ;將它們的更新規(guī)則也設(shè)定為 “級(jí)聯(lián)”(即當(dāng)修改學(xué)生的學(xué)號(hào)或課程的課程號(hào),也自動(dòng)修改相關(guān)的成績(jī)記錄)注意:在設(shè)定了參照完整性規(guī)則后, 你可能會(huì)感到受到了一些約束,表的操作不像以前那么方便了,例如將插入規(guī)則設(shè)定為限制,使用以前 VFP 的各種插入或追加記錄的方法幾乎都不能完成你所要的操作(即無法插入插入規(guī)則為限制的子表的記錄) 。這是因?yàn)橐郧暗腁PPEND命令或 INSERT命令都是先插入一條空記錄,然后再編輯、輸入各字段的值,這自然就無法通過參照完整性檢查。這時(shí)可以使用SQL的 INSERT命令插入記錄。 SQL命令將在第 5 章單獨(dú)介紹。十

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論