第4章數(shù)據(jù)庫的創(chuàng)建和使用_第1頁
第4章數(shù)據(jù)庫的創(chuàng)建和使用_第2頁
第4章數(shù)據(jù)庫的創(chuàng)建和使用_第3頁
第4章數(shù)據(jù)庫的創(chuàng)建和使用_第4頁
第4章數(shù)據(jù)庫的創(chuàng)建和使用_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第4章

數(shù)據(jù)庫的創(chuàng)建和使用

本章要點4.1VFP數(shù)據(jù)庫概述4.2數(shù)據(jù)庫的創(chuàng)建4.3數(shù)據(jù)庫的使用4.4數(shù)據(jù)庫表4.5永久關系與參照完整性4.1VFP數(shù)據(jù)庫概述

數(shù)據(jù)庫——一個容器,是許多相關的數(shù)據(jù)庫表及其關系(聯(lián)系)的集合。數(shù)據(jù)庫不僅包括表,還包括表之間的聯(lián)系。VFP提供的數(shù)據(jù)庫設計工具:1、數(shù)據(jù)庫向?qū)?、數(shù)據(jù)庫設計器4.2數(shù)據(jù)庫的創(chuàng)建創(chuàng)建一個數(shù)據(jù)庫將生成3個文件:

數(shù)據(jù)庫文件(.dbc)數(shù)據(jù)庫備注文件(.dct)數(shù)據(jù)庫索引文件(.dcx)4.2.1數(shù)據(jù)庫的創(chuàng)建1.利用界面操作方式創(chuàng)建數(shù)據(jù)庫●打開已建立的項目文件,出現(xiàn)項目管理器窗口。●選擇“數(shù)據(jù)”標簽的“數(shù)據(jù)庫”,然后單擊“新建”按鈕?!癯霈F(xiàn)新建數(shù)據(jù)庫對話框,單擊“新建數(shù)據(jù)庫”按鈕,出現(xiàn)“新建”對話框?!襁x擇數(shù)據(jù)庫的路徑并輸入數(shù)據(jù)庫名后單擊“保存”按鈕,完成數(shù)據(jù)庫的建立,并打開該數(shù)據(jù)庫設計器。(1)在“項目管理器”窗口中新建數(shù)據(jù)庫●選擇【文件】→【新建】出現(xiàn)新建對話框?!襁x擇“數(shù)據(jù)庫”單選按鈕,再單擊“新建文件”按鈕,出現(xiàn)“創(chuàng)建”對話框?!裨凇皠?chuàng)建”對話框中輸入文件名。選擇“保存”按鈕,系統(tǒng)自動打開數(shù)據(jù)庫文件,并且將數(shù)據(jù)庫設計器也自動打開。(2)通過“新建”對話框創(chuàng)建【格式】CreateDatabase[數(shù)據(jù)庫文件名|?]【功能】建立一個新的擴展名為.DBC的數(shù)據(jù)庫文件并打開此數(shù)據(jù)庫?!菊f明】若省略擴展名,則默認為.DBC,同時也自動建立相關聯(lián)的數(shù)據(jù)庫備注文件擴展名為.DCT,關聯(lián)的索引文件擴展名為.DCX。

保存后該數(shù)據(jù)庫文件被建立,并且自動打開該數(shù)據(jù)庫。2.利用命令方式創(chuàng)建數(shù)據(jù)庫4.2.2數(shù)據(jù)庫的組成1.數(shù)據(jù)庫表——屬于一個數(shù)據(jù)庫的表。前鏈——保存在.dbc中的表文件名消息和路徑。后鏈——保存在.dbf中的數(shù)據(jù)庫文件名消息和路徑。2.視圖——虛表,數(shù)據(jù)源于一張或多張表。分為本地視圖和遠程視圖3.連接——指定了遠程數(shù)據(jù)源的名稱。4.存儲過程——保存在數(shù)據(jù)庫中的過程代碼。4.3數(shù)據(jù)庫的使用1.打開數(shù)據(jù)庫(1)菜單方式①選擇【文件】|【打開】,出現(xiàn)打開對話框。②選擇數(shù)據(jù)庫文件所在的文件夾,將文件類型選擇為“數(shù)據(jù)庫(.dbc)”。③選擇所要打開的數(shù)據(jù)庫文件名,單擊“確定”按鈕。(2)利用項目管理器打開數(shù)據(jù)庫打開已建立的項目文件,出現(xiàn)項目管理器窗口,選擇“數(shù)據(jù)”標簽,選擇要打開的數(shù)據(jù)庫名,然后單擊“打開”按鈕。(3)命令方式

P114【格式】OpenDatabase[<數(shù)據(jù)庫文件名>] [SHARED]|[EXCLUSIVE]【功能】將磁盤上一個擴展名為.DBC的指定數(shù)據(jù)庫文件打開?!菊f明】打開一個數(shù)據(jù)庫文件,同名的.DCT相關的數(shù)據(jù)庫備份文件與.DCX相關的索引文件也一起被打開。

數(shù)據(jù)庫打開后,在常用工具欄中可以看見當前正在使用的數(shù)據(jù)庫名,同時當數(shù)據(jù)庫設計器為當前窗口時,系統(tǒng)菜單上出現(xiàn)【數(shù)據(jù)庫】菜單項。注意:在數(shù)據(jù)庫被打開的情況下,它所包含的所有表可以使用。但是,表并沒有被真正打開,用戶要打開它,仍要用USE命令。(1)使用項目管理器關閉數(shù)據(jù)庫打開已建立的項目文件,出現(xiàn)項目管理器窗口,選擇“數(shù)據(jù)”標簽,選擇“數(shù)據(jù)庫”下面需要關閉的數(shù)據(jù)庫名,然后單擊“關閉”按鈕。在常用工具欄上的當前數(shù)據(jù)庫下拉列表框中該數(shù)據(jù)庫名消失,同時在項目管理器中“關閉”按鈕變成“打開”按鈕。2.關閉數(shù)據(jù)庫(2)命令方式【格式1】CLOSEDATABASE【功能】關閉當前打開的數(shù)據(jù)庫?!靖袷?】CLOSEALL【功能】選ALL將關閉所有區(qū)打開的所有數(shù)據(jù)庫文件及其數(shù)據(jù)表、自由表以及各類文件。(1)命令方式【格式】DeleteDatabase<數(shù)據(jù)庫文件名>【功能】從磁盤上刪除指定的數(shù)據(jù)庫文件(.DBC,.DCT,.DCX全刪)。被刪除的數(shù)據(jù)庫中的表成為自由表?!菊f明】①被刪除的數(shù)據(jù)庫不能處于打開狀態(tài)。②若從磁盤上刪除數(shù)據(jù)庫文件,則數(shù)據(jù)庫中的表仍保留著對數(shù)據(jù)庫的引用,不能成為自由表。3.刪除數(shù)據(jù)庫(2)使用項目管理器打開已建立的項目文件,出現(xiàn)項目管理器窗口,單擊“數(shù)據(jù)”標簽,選擇要刪除的“數(shù)據(jù)庫”,然后單擊“移去”按鈕。出現(xiàn)選擇對話框,若選擇“移去”僅將數(shù)據(jù)庫從項目中移去,若選擇“刪除”將從磁盤上刪除數(shù)據(jù)庫。被刪除的數(shù)據(jù)庫中的表成為自由表。

4.修改數(shù)據(jù)庫【格式】ModifyDatabase[數(shù)據(jù)庫名]【功能】打開數(shù)據(jù)庫設計器供用戶修改當前數(shù)據(jù)庫。5、改變當前數(shù)據(jù)庫【格式】SetDatabaseTo[數(shù)據(jù)庫名]【功能】將指定的數(shù)據(jù)庫設置為當前數(shù)據(jù)庫。【說明】1、指定的數(shù)據(jù)庫必須已經(jīng)打開。2、可以同時打開多個數(shù)據(jù)庫,但只有一個可能成為當前數(shù)據(jù)庫。3、若省略數(shù)據(jù)庫名,則打開的數(shù)據(jù)庫都不會成為當前數(shù)據(jù)庫。6、整理數(shù)據(jù)庫【格式】PackDatabase【功能】整理數(shù)據(jù)庫【說明】當前數(shù)據(jù)庫必須以獨占方式打開,否則報錯。且數(shù)據(jù)庫中不能打開任何表或視圖。4.4數(shù)據(jù)庫表4.4.1數(shù)據(jù)庫表的創(chuàng)建1.通過界面操作創(chuàng)建數(shù)據(jù)庫表①利用“項目管理器”②利用“數(shù)據(jù)庫設計器”工具欄上的“新建表”按鈕③菜單命令“新建/文件”2.利用命令方式創(chuàng)建數(shù)據(jù)庫CREATETABLE-SQL命令4.4.2數(shù)據(jù)庫表的添加【格式】AddTable<表名/?>[Name<長表名>]【功能】將指定的自由表添加到當前數(shù)據(jù)庫中,并命名長表名?!菊f明】1、一個表只能屬于一個數(shù)據(jù)庫。2、數(shù)據(jù)庫必須以獨占方式打開。4.4.3移去數(shù)據(jù)庫表【格式】RemoveTable<表名>[Delete]【功能】將當前數(shù)據(jù)庫中指定的表移去?!菊f明】1、[DELETE]:移去表的同時從磁盤上刪除該表。2、從數(shù)據(jù)庫中移去表后,與該表有關的規(guī)則、關系不再有效。3、表移去后就成為自由表。4.4.4轉(zhuǎn)成自由表【格式】FreeTable<表名>【功能】從一個表中對刪除數(shù)據(jù)庫的引用,即刪除后鏈?!菊f明】若偶然從磁盤上刪除了一個數(shù)據(jù)庫文件,該數(shù)據(jù)庫中的表仍保留著對數(shù)據(jù)庫的引用,使用該命令可以從一個表中刪除對數(shù)據(jù)庫的引用,允許打開該表或?qū)⒃摫硖砑拥狡渌麛?shù)據(jù)庫中。4.4.5改表名【格式】RenameTable<舊長表名>To<新長表名>【功能】將指定的表的長表名改成新長表名?!菊f明】1、改表名前必須先以獨占方式打開包含表的數(shù)據(jù)庫,且將其設置為當前數(shù)據(jù)庫。2、該命令不能用來更改自由表的名稱。4.4.6數(shù)據(jù)庫表的字段擴展屬性1.字段顯示屬性(1)字段的格式【舉例】xs表中的xh(學號)的格式:T!。(2)輸入掩碼【舉例】js表中的jbgz(基本工資)的輸入掩碼:99,999.99。(3)字段的標題和注釋【舉例】xs表中的xh(學號)的標題:學號,注釋:學生的學號。2.字段驗證(1)字段有效性規(guī)則和有效性信息【舉例】xs表中的xh(學號)的有效性規(guī)則:LEN(ALLTRIM(xh))=6,有效性信息:學號必須為6位。(2)默認值【舉例】xs表中的xb(性別)的默認值:‘女’。4.4.7數(shù)據(jù)庫表的屬性1.長表名與表注釋2.記錄驗證

P101字段有效性規(guī)則:僅對當前字段有效;記錄有效性規(guī)則:校驗多個字段之間的關系是否滿足某種規(guī)則。【舉例】

P102ALTERTABLEjsSETCHECKgzrq<csrqERROR‘出生日期必須大于工作日期’3.表的觸發(fā)器觸發(fā)器——綁定在表上的邏輯表達式,表在插入、更新或刪除記錄時進行的檢驗規(guī)則。種類:插入觸發(fā)器、更新觸發(fā)器、刪除觸發(fā)器?!九e例】在學生表中創(chuàng)建一個刪除觸發(fā)器以防止刪除記錄。CREATETRIGGERONxsFORDELETEAS.F.4.5表間關系與參照完整性4.5.1表之間的關系1.關系的種類(1)一對一關系實際不常使用,因為兩張表的信息可以合并成一張表。(2)一對多關系【舉例】學生表與成績表之間。(3)多對多關系【舉例】學生表與課程表之間。多對多關系不能直接利用,要建立“紐帶表”。即把一個多對多關系轉(zhuǎn)變成兩個一對多關系。4.6.2表之間的臨時關系在一個應用程序中使用多個表時,往往會希望一個表(子表)的記錄指針能自動隨另一個表(父表)的記錄指針移動。在VFP中用戶可以通過在表間建立臨時關聯(lián)來實現(xiàn)這種功能。所謂臨時關系是指這種關系是臨時性的,一旦退出操作,不會保留所建立的關聯(lián),在每次使用表時都需要重新創(chuàng)建。一、表之間的臨時關系的建立建立臨時關聯(lián)的方法有兩種:一種是利用“數(shù)據(jù)工作區(qū)”窗口,即菜單方式另一種是使用SETRELATION命令。兩表要有相同關聯(lián)字的字段,并要求子表按關聯(lián)字段建立索引且指定主索引標記。

1、菜單方式(1)單擊菜單中“窗口”中的“數(shù)據(jù)工作期”命令打開工作區(qū)窗口,在該窗口中用“打開”按鈕將準備建立臨時關系的表打開。(2)首先選定一個父表,然后單擊“關系”按鈕,接著再選定另一個表(子表),彈出“設置索引順序”對話框,在已建立的索引中選擇索引標識。按“確定”后,彈出“表達式生成器”對話框,在其中需要設置用于建立關系的表達式(一般是兩表中的共同字段)。在確定了該表達式后,便完成了在這兩個表之間建立關系的工作。

2、命令方式【格式一】SetRelationTo[<關鍵字表達式>INTO<工作區(qū)別名>|<子表別名>

【功能】建立當前工作表(父表)與另外工作區(qū)打開的表(子表)的關聯(lián)。【說明】①不選任何可選項是取消聯(lián)系。父表可以與多個子表建立聯(lián)系。②要求子表必須按關鍵字表達式中的關鍵字段建立索引,且被指定為主控索引標記。4.6.2表之間的永久關系永久關系——數(shù)據(jù)庫表之間的關系,一旦建立,永久保存在數(shù)據(jù)庫中。

永久關系根據(jù)表的索引建立。P107方法:

在“數(shù)據(jù)庫設計器”窗口中,將主(父)表的主(或候選)索引標識拖放到相關(或子)表的普通(或唯一)索引標識上?!九e例】在學生表(xs.dbf)和成績表(cj.dbf)之間創(chuàng)建永久關系(一對多關系)。4.6.3參照完整性

數(shù)據(jù)的完整性——數(shù)據(jù)的正確性和相容性。參照完整性——數(shù)據(jù)庫完整性控制的一種,控制相關表之間的主關鍵字和外部關鍵字之間數(shù)據(jù)一致性的規(guī)則。1.參照完整性的一般要求(3個)P1082.參照完整性的設置P108表4-5

三種規(guī)則:更新規(guī)則、刪除規(guī)則、插入規(guī)則。三個級別:級聯(lián)、限制、忽略。4.6.4VFP數(shù)據(jù)完整性綜述關系型數(shù)據(jù)庫有3類完整性:實體完整性包括字段的數(shù)據(jù)完整性(通過字段的有效性規(guī)則實施)和記錄的數(shù)據(jù)完整性(通過記錄的有效性規(guī)則實施)。

參照完整性——相關表之間的數(shù)據(jù)一致性(表的觸發(fā)器實施)。用戶自定義完整性——用戶通過編程來控制數(shù)據(jù)的完整性。補充函數(shù)1、DBGETPROP()函數(shù)【格式】DBGETPROP(C對象名,C類型,C屬性)【功能】返回當前數(shù)據(jù)庫或當前數(shù)據(jù)庫中表的字段、表或視圖的屬性?!纠纭縪pendatabasejsgl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論