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

下載本文檔

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

文檔簡介

1、Visual FoxPro,講授 鐘 丹,江蘇省普通高校計算機等級考試教程,第 四 章,數(shù)據(jù)庫的創(chuàng)建和使用,一、數(shù)據(jù)庫的基本概念,數(shù)據(jù)庫的概念:數(shù)據(jù)庫是一個容器,是許多相關(guān)的 數(shù)據(jù)庫表及其關(guān)系的集合數(shù)據(jù)庫的功能:存儲一系列表,在表間建立關(guān)系, 設(shè)置屬性和數(shù)據(jù)有效性規(guī)則使相關(guān)

2、 聯(lián)的表協(xié)同工作。庫文件類型:每創(chuàng)建一個新的數(shù)據(jù)庫都將產(chǎn)生三個 文件:數(shù)據(jù)庫文件.dbc,關(guān)聯(lián)的數(shù)據(jù)庫 備注文件.dct,關(guān)聯(lián)的數(shù)據(jù)庫索引文 件.dcx,設(shè)計一個完善、高效和結(jié)構(gòu)優(yōu)化的數(shù)據(jù)庫,是創(chuàng)建以數(shù)據(jù)庫為基礎(chǔ)的信息系統(tǒng)中必不可

3、少的重要環(huán)節(jié),VFP的主要操作對象就是數(shù)據(jù)庫(庫表),數(shù)據(jù)庫的創(chuàng)建:界面方式:1、 在“項目管理器”中創(chuàng)建,創(chuàng)建的庫在項目中 2 、通過“新建”按鈕或“文件”—“新建”來創(chuàng)建,創(chuàng) 建的庫不在項目中命令方式:用create database [databasename|?]VFP數(shù)據(jù)庫的組成數(shù)據(jù)庫表:從屬于某個數(shù)據(jù)庫的表,與自由表相比具有許多

4、 擴展功能和管理特性注:庫表與庫之間的相關(guān)性是通過庫表文件(.dbf)和庫文 件(.dbc)之間的雙向鏈接來實現(xiàn)的,雙向鏈接包括前 鏈和后鏈;前鏈保存在庫中,后鏈保存在表中 視圖(view):把分散在相關(guān)表中的數(shù)據(jù)通過聯(lián)接條件將它們收集到一起,構(gòu)成一張?zhí)摫?,視圖就是這樣一種虛表類型。連接(connection)存儲過程,二、數(shù)據(jù)庫的創(chuàng)建,打開一個庫:界面方式:新建一個數(shù)據(jù)

5、庫,保存后會自動打開在打開一個數(shù)據(jù)庫表時,系統(tǒng)也會自動的打開相應(yīng)的庫在“項目管理器”中用“打開”或“修改”按鈕命令方式:注意點:P84Open database [databaseName][exclusive|shared][noupdate][validate]設(shè)置當(dāng)前數(shù)據(jù)庫在“常用”工具欄“數(shù)據(jù)庫下拉列表”中選擇利用set database to databaseName命令來進行設(shè)置,三、數(shù)據(jù)庫的使用,檢查數(shù)據(jù)庫的

6、有效性:若用戶移動了數(shù)據(jù)庫文件(.dbc,.dct,.dcx)或與數(shù)據(jù)庫相關(guān)聯(lián)的表文件,則這些文件的相對路徑會改變,那么有可能破壞VFP關(guān)聯(lián)庫和表的雙向鏈接,就需要重建鏈接或檢查有效性,使用命令:Validata database [recover][to printer|to file filename]修改庫:啟動庫設(shè)計器:“修改”按鈕 MODIFY DATABASE關(guān)閉庫:“項

7、目管理器”—“關(guān)閉”按鈕 close database [all]命令 刪除庫:“項目管理器”—“移去”按鈕,概念:數(shù)據(jù)字典是指存儲在數(shù)據(jù)庫中,用于描述所管理的表和對象的數(shù)據(jù);存儲在數(shù)據(jù)字典中的信息稱之為元數(shù)據(jù)(Metadata),換言之,其記錄的是關(guān)于數(shù)據(jù)的數(shù)據(jù)。數(shù)據(jù)字典的功能:創(chuàng)建和指定以下內(nèi)容表中字段的標(biāo)題、注釋、默認(rèn)值、輸入掩碼和顯示格式,以及表單中的默認(rèn)控件表的主索引關(guān)鍵

8、字長表名和表注釋字段級和記錄級有效性規(guī)則存儲過程插入、更新和刪除事件觸發(fā)器,四、VFP數(shù)據(jù)字典概述,五、數(shù)據(jù)庫表,庫表的創(chuàng)建 :界面方式:選中“項目管理器”—“數(shù)據(jù)庫”—“表”,新建按鈕“數(shù)據(jù)庫設(shè)計器”—“數(shù)據(jù)庫設(shè)計器工具欄”—“新建表”在數(shù)據(jù)庫打開時,“文件”—“新建”或“新建”按鈕命令方式:在數(shù)據(jù)庫打開時,利用create table-SQL語句來創(chuàng)建表,此時若在命令中不使用free子句,則創(chuàng)建的為庫表注意:在

9、利用命令創(chuàng)建庫表時,可以使用name子句定義長 表名(表名長度可超過128個字符),數(shù)據(jù)庫表具有自由表的所有功能,對自由表適用的所有操作也同樣適用于數(shù)據(jù)庫表,庫表還另外擴展了數(shù)據(jù)管理和控制等功能,庫表的字段擴展屬性 :字段顯示屬性:只要求會根據(jù)給出的條件進行設(shè)置字段格式:用于指定字段顯示時的格式,包括瀏覽窗口、表單和報表中顯示時的大小寫和樣式等,可用的格式字母代號見 表4-1輸入掩碼:用于指定字段中輸入數(shù)據(jù)的格式

10、,可用的掩碼字符見 表4-2字段的標(biāo)題和注釋:標(biāo)題和注釋是為了使表具有更好的可讀性和可理解性,不是必需的;在“項目管理器”中選中字段,窗口下部的狀態(tài)欄會顯示字段注釋,數(shù)據(jù)庫表除了具有自由表的屬性之外,還可以設(shè)置一些擴展屬性;這些屬性在“表設(shè)計器”中設(shè)置,并作為數(shù)據(jù)字典保存在數(shù)據(jù)庫中,字段級驗證:用來限定字段的取值及取值范圍,包括有效性規(guī)則,有效性信息以及默認(rèn)值字段有效性規(guī)則:用來控制輸入到字段中的數(shù)據(jù)的取值范圍,是一個邏輯表達

11、式,且當(dāng)前字段包含在表達式當(dāng)中;當(dāng)輸入數(shù)據(jù)時,系統(tǒng)根據(jù)表達式進行驗證,若結(jié)果為.t.,則接收輸入的值;否則,拒絕輸入的值,并且顯示一個提示框字段有效性信息:它是有效性規(guī)則的說明,是一個字符表達式,是在拒絕輸入值時顯示的提示框中的說明信息默認(rèn)值:向一張數(shù)據(jù)庫表中添加新記錄時所指定的最初的值稱為該字段的默認(rèn)值,它必須是一個與字段類型相同的表達式,適當(dāng)?shù)脑O(shè)置默認(rèn)值可以減少輸入的工作量字段的默認(rèn)控件類型:作用是指定在使用“表單向?qū)А鄙杀?/p>

12、單或從數(shù)據(jù)環(huán)境中將字段拖放到表單上時,與字段相對應(yīng)的控件類,相關(guān)例題,還可以利用命令來進行擴展屬性的設(shè)置:Create table 表名 (字段名 類型(寬度)[default 表達式][check 表達式][error ‘提示信息’]……)Alter table 表名 alter column 字段名 [set defa 表達式][set check 表達式][error ‘提示信息’]例1:在數(shù)據(jù)庫中創(chuàng)建表CJ_TEMP1,給

13、XH字段設(shè)置默認(rèn)值980000,給CJ字段設(shè)置驗證規(guī)則0<=CJ<=100,驗證信息為:成績必須在0~100之間例2:給已經(jīng)在數(shù)據(jù)庫中的表CJ設(shè)置字段屬性:XH字段的默認(rèn)值為980000,CJ字段的驗證規(guī)則為:0<=CJ<=100,驗證信息為:成績必須在0~100之間,庫表的表屬性 :例長表名和表注釋:長表名:創(chuàng)建表時,若不做任何規(guī)定則表文件名就是表名;若設(shè)置了長表名屬性,則該數(shù)據(jù)庫在任何場合均以長表名代替

14、表文件名使用 在“表設(shè)計器”—“表”卡片—“表名”中設(shè)置,也可在使用create table命令創(chuàng)建庫表時用Name子句來設(shè)置(如前述)表注釋:表的說明信息,在“表設(shè)計器”—“表”卡片中進行設(shè)置;設(shè)置后在“項目管理器”中選中相應(yīng)的表,可在窗口的下部狀態(tài)欄中看到表的注釋,數(shù)據(jù)庫表不僅可以設(shè)置字段的擴展屬性,還可以為表設(shè)置一些屬性,如長表名、記錄級驗證、觸發(fā)器等,這些屬性在“表設(shè)計器”中設(shè)置,也保存在數(shù)據(jù)字典中,記錄級驗證:用于

15、定義記錄級校驗規(guī)則,包括了記錄的有效性規(guī)則和有效性信息注意比較字段級驗證和記錄級驗證的區(qū)別記錄有效性規(guī)則和信息的設(shè)置類似于字段有效性規(guī)則和信息的設(shè)置,也可在create table時利用check子句來進行設(shè)置或在alter table時利用set check子句來進行設(shè)置注意比較利用命令進行字段驗證設(shè)置和記錄驗證設(shè)置的區(qū)別表觸發(fā)器:是綁定在表上的邏輯表達式,是表在進行插入、更新或刪除記錄是的檢驗規(guī)則觸發(fā)器分為三種:插入、更新

16、、刪除觸發(fā)器的返回值為.t.或.f.,若為.t.,則允許該操作執(zhí)行;否則,就,不允許該操作執(zhí)行觸發(fā)器可在“表設(shè)計器”—“表”卡片中設(shè)置,也可通過create trigger on來設(shè)置觸發(fā)器,通過delete trigger on來刪除觸發(fā)器,庫表的索引:前述有關(guān)自由表索引的一切內(nèi)容均適用于庫表,但庫表多出一個主索引設(shè)置主索引時必須注意:主索引必須是一個候選索引,即記錄的值必須唯一主索引對每張庫表都只有一個,庫表的添加和移去:

17、向庫中添加表是指將自由表添加到庫中,使自由表成為數(shù)據(jù)庫表,本質(zhì)上是建立了庫表和庫之間的雙向鏈接;而從庫中移去表,則是刪除了庫表和庫之間的雙向鏈接添加:“項目管理器”—“添加”“數(shù)據(jù)庫設(shè)計器”—“工具欄”—“添加”按鈕在數(shù)據(jù)庫打開并為當(dāng)前庫時,用add table 表名 來添加注意:一張表只能添加到一個庫中去移去:“項目管理器”中選中表—“移去”“庫設(shè)計器”中選中表—“工具欄”—“移去”按鈕在數(shù)據(jù)庫打開并為當(dāng)前庫時,用r

18、emove table 表名來移去,有關(guān)庫和庫表的幾點說明:盡可能使用數(shù)據(jù)庫表,因它存在這一些約束條件可以使用!來指定數(shù)據(jù)庫(在打開多個庫時)移動和復(fù)制庫文件時要考慮到相應(yīng)庫表的位置,以防出現(xiàn)前、后鏈的錯誤不要輕易的從庫中移去表做過多次修改庫結(jié)構(gòu)、庫表結(jié)構(gòu)的操作后,要進行“數(shù)據(jù)庫清理”,以防出現(xiàn)錯誤和數(shù)據(jù)的冗余在刪除庫后,應(yīng)該有一個FREE TABLE 表名的命令若多次移動、刪除了庫或庫表,應(yīng)使用validate d

19、atabase recover命令重建雙向聯(lián)接,六、永久關(guān)系和參照完整性,表之間的關(guān)系:三種關(guān)系一對一關(guān)系:甲表的每一個記錄在乙表中只能對應(yīng)一個記錄,而乙表中的每一個記錄在甲表中也只能有一個記錄與之對應(yīng)一對多關(guān)系:設(shè)有甲乙兩張表,如果甲表中的任意一個記錄在乙表中可以有幾個記錄與之對應(yīng),而乙表中的每個記錄在甲表中就有一個記錄與之對應(yīng),則稱甲乙兩張表之間存在一對多關(guān)系,并稱甲表為“父表”,乙表為“子表”多對多關(guān)系:若甲表的一個記錄在

20、乙表中可以對應(yīng)多個記錄,而乙表中的一個記錄在甲表中也可以對應(yīng)多個記錄,則稱這兩張表具有多對多關(guān)系,數(shù)據(jù)庫中,用戶可以為存在一對多關(guān)系的兩張表創(chuàng)建永久性關(guān)系,且基于永久性關(guān)系可以創(chuàng)建這兩張表之間的數(shù)據(jù)完整性規(guī)則,紐帶表:在使用中,多對多關(guān)系不能直接被使用;遇到多對多的情況,必須建立第三張表,把一個多對多關(guān)系分解為兩個一對多關(guān)系;這第三張表就稱為紐帶表,紐帶表中要存儲兩張父表的主關(guān)鍵字分析并確定表之間的關(guān)系: 分析每張表,并確定它

21、們之間的關(guān)系,必要時可以在表中添加字段或者創(chuàng)建一張新表來明確關(guān)系;要求會根據(jù)給出的條件判定表之間的關(guān)系,特別是要能夠找出紐帶表,表之間的永久性關(guān)系:永久性關(guān)系:是在數(shù)據(jù)庫表之間的一種關(guān)系,這種關(guān)系不僅在運行時存在,而且一直保留;擁有永久性關(guān)系的表必須在數(shù)據(jù)庫中;永久性關(guān)系是根據(jù)表的索引來建立的補充:臨時關(guān)系:是在打開的表之間在“數(shù)據(jù)工作期”窗口中設(shè)置,,還可以用set relation命令建立臨時性關(guān)系(P111 例4.13),它不

22、保存,運行結(jié)束時就結(jié)束。永久性關(guān)系的作用:在“查詢/視圖設(shè)計器”中,自動作為默認(rèn)聯(lián)接條件作為表單和報表的默認(rèn)關(guān)系,在“數(shù)據(jù)環(huán)境設(shè)計器”中顯示出來用來存儲參照完整性信息,創(chuàng)建永久性關(guān)系的操作:確定兩張具有一對多/一對一關(guān)系的表建立主表的主索引或候選索引若為一對多關(guān)系,則在子表中以主表的主關(guān)鍵字作為該表的外部關(guān)鍵字建立普通索引;若為一對一關(guān)系,則在子表中以與主表相同的關(guān)鍵字建立主索引或候選索引在“庫設(shè)計器”中,將主表的主索引

23、或候選索引標(biāo)識拖放到子表相同的索引標(biāo)識上,則完成了永久關(guān)系的設(shè)置在“庫設(shè)計器”中,可以建立、刪除或編輯庫表之間的永久關(guān)系:刪除—單擊連線,DEL 編輯—雙擊連線,參照完整性:p102定義:用來控制數(shù)據(jù)的一致性,尤其是控制數(shù)據(jù)庫相關(guān)表之間的主關(guān)鍵字和外部關(guān)鍵字之間數(shù)據(jù)一致性的規(guī)則參照完整性的一般要求:三個規(guī)則子表中的每一個記錄在對應(yīng)的主表中必須有一個父記錄在子表中插入記錄時,其外部

24、關(guān)鍵字必須是父表主關(guān)鍵字值中的一個在父表中刪除記錄時,與該記錄相關(guān)的子表中的記錄必須全部刪除設(shè)置參照完整性:雙擊連線——單擊“參照完整性”按鈕右擊連線——“編輯參照完整性”,參照完整性設(shè)置規(guī)則: 表 例一般我們使用“更新”、“刪除”級聯(lián),“插入”限制,但要會根據(jù)給出的條件對照規(guī)則表設(shè)置參照完整性。VFP完整性綜述:主要使用前兩類,系統(tǒng)自動實體完整性:字段級和記錄級有效性驗證參照完整性:表之間數(shù)據(jù)的一致性用戶自

25、定義完整性:用戶通過編寫代碼來控制數(shù)據(jù) 的完整性,數(shù)據(jù)庫操作常用函數(shù):DBC()與DBUSED()前者返回當(dāng)前打開的數(shù)據(jù)庫的完整文件名,該函數(shù)無參數(shù)后者返回指定的數(shù)據(jù)庫文件是否已打開,若打開則為T,未打開為F,該函數(shù)的參數(shù)為數(shù)據(jù)庫名(C型)DBGETPROP(名稱,類型,屬性) DBSETPROP(名稱,類型,屬性,表達式)類型有:DATABASE

26、,TABLE,F(xiàn)IELD,VIEW屬性有:Caption標(biāo)題,Comment注釋,DefaultValue默認(rèn)值,Path路徑,PrimaryKey主索引,RuleExpression有效性驗證規(guī)則,RuleText有效性驗證信息,DeleteTrigger刪除觸發(fā)器,InsertTrigger插入觸發(fā)器,UpdateTrigger更新觸發(fā)器,,庫表的字段格式代號表,,庫表的字段輸入掩碼代號表,,按照下述設(shè)置JS表的字段屬性,,1)為

27、GH字段設(shè)置標(biāo)題工號,并刪除輸入時的前后空格,在輸入時第1位為字母,后四位為數(shù)字,加注釋:主關(guān)鍵字2)為XB字段設(shè)置標(biāo)題性別,并將默認(rèn)值設(shè)置為男,設(shè)置驗證規(guī)則:性別必須為男或女;并且寫入相應(yīng)的驗證信息3)為XDH字段設(shè)置標(biāo)題系代號,要求在輸入時只能輸入數(shù)字不能輸入其他的值4)為GZRQ字段設(shè)置標(biāo)題工作日期,并將默認(rèn)值設(shè)置為當(dāng)前的日期,按照下述設(shè)置JS表的表屬性,給JS表設(shè)置長表名:教師基本情況表給JS表添加注釋:這個表介紹了教師

溫馨提示

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

評論

0/150

提交評論