第三章數(shù)據(jù)庫與表的創(chuàng)建及使用_1.ppt_第1頁
第三章數(shù)據(jù)庫與表的創(chuàng)建及使用_1.ppt_第2頁
第三章數(shù)據(jù)庫與表的創(chuàng)建及使用_1.ppt_第3頁
第三章數(shù)據(jù)庫與表的創(chuàng)建及使用_1.ppt_第4頁
第三章數(shù)據(jù)庫與表的創(chuàng)建及使用_1.ppt_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1,第3章 數(shù)據(jù)庫與表的創(chuàng)建和使用,3.1 VFP數(shù)據(jù)庫概述,2,定義:數(shù)據(jù)庫是一個包容器,用來組織和聯(lián)系表,它提供了存儲數(shù)據(jù)的一種結(jié)構(gòu)。,文件類型:DBC/DCT/DCX 內(nèi)容:數(shù)據(jù)庫表、視圖(本地、遠(yuǎn)程)、連接、存儲過程,3,確定建立數(shù)據(jù)庫的目的,進(jìn)行數(shù)據(jù)需求分析 確定需要的各種表 確定表的字段 確定表之間的關(guān)系 改進(jìn)設(shè)計、優(yōu)化設(shè)計,一、數(shù)據(jù)庫設(shè)計的步驟,4,1、數(shù)據(jù)庫包括表以及表之間的關(guān)系,教學(xué)管理數(shù)據(jù)庫,學(xué)生表,教師表,課程表,任課表,成績表,實(shí)體,關(guān)系,專業(yè)表,5,2、數(shù)據(jù)庫中概念的結(jié)構(gòu)圖,6,3、確定表的結(jié)構(gòu)是最重要的,例如:,符合第一范式但是不好的結(jié)構(gòu),7,拆分成3個表,數(shù)據(jù)冗余

2、少,關(guān)系清晰,紐帶表(關(guān)系),8,二、數(shù)據(jù)庫的組成,1、數(shù)據(jù)庫表 從屬于某一個數(shù)據(jù)庫的表,稱為“數(shù)據(jù)庫表”。 數(shù)據(jù)庫表(.DBF)與數(shù)據(jù)庫(.DBC)之間由雙向鏈接保持相關(guān)性。,9,前鏈指向庫中的表,包括各個表文件的路徑和文件名; 后鏈指向擁有該表的數(shù)據(jù)庫,包括數(shù)據(jù)庫的路徑和數(shù)據(jù)庫名。,10,2、視圖(View) 用戶不僅可以使用數(shù)據(jù)庫表的數(shù)據(jù),還可以在若干數(shù)據(jù)庫表之間提取相關(guān)的數(shù)據(jù),構(gòu)成一張“虛表”,這就是視圖。視圖的詳細(xì)內(nèi)容在第4章介紹。,3、連接(Connection) 連接是保存在數(shù)據(jù)庫中的一個定義,它指定了遠(yuǎn)程數(shù)據(jù)源的名稱。建立遠(yuǎn)程數(shù)據(jù)連接的目的是創(chuàng)建遠(yuǎn)程視圖,當(dāng)激活遠(yuǎn)程視圖時,視圖

3、連接將成為通向遠(yuǎn)程數(shù)據(jù)源的管道。,11,4、存儲過程: 數(shù)據(jù)庫中的用戶自定義函數(shù)、永久關(guān)系中的參照完整性代碼等保存在存儲過程中,存儲過程可以在打開“數(shù)據(jù)庫設(shè)計器”時,從“數(shù)據(jù)庫”菜單中選擇“編輯存儲過程”項(xiàng)來創(chuàng)建、修改或移去存儲過程。,12,三、 數(shù)據(jù)字典概述,數(shù)據(jù)字典指存儲在數(shù)據(jù)庫中的用于描述表和對象的數(shù)據(jù),也稱為元數(shù)據(jù)。 數(shù)據(jù)字典包括以下內(nèi)容: 表中的標(biāo)題、注釋、默認(rèn)值等 數(shù)據(jù)庫表之間的永久關(guān)系 長表名和表注釋 字段級和記錄級有效性規(guī)則 存儲過程、觸發(fā)器,13,3.2 數(shù)據(jù)庫的創(chuàng)建、打開與使用,一、數(shù)據(jù)庫的創(chuàng)建 1、界面方式 a.“項(xiàng)目管理器”選擇“數(shù)據(jù)庫”“新建” b.使用“新建”命令(

4、按鈕),這樣新建的數(shù)據(jù)庫不會自動加到項(xiàng)目中。,14,2、命令方式, 數(shù)據(jù)庫不會自動加到項(xiàng)目中。 CREATE DATABASE 數(shù)據(jù)庫名|? 數(shù)據(jù)庫創(chuàng)建完成后,將同時產(chǎn)生3個文件: 數(shù)據(jù)庫文件: 數(shù)據(jù)庫名.DBC 備注文件: 數(shù)據(jù)庫名.DCT 索引文件: 數(shù)據(jù)庫名.DCX,15,二、 數(shù)據(jù)庫的打開與關(guān)閉,1、打開數(shù)據(jù)庫 數(shù)據(jù)庫的打開有多種方式,見P74。 命令格式: OPEN DATABASE 數(shù)據(jù)庫名 可以同時打開多個數(shù)據(jù)庫,例: OPEN DATABASE DB1 OPEN DATABASE DB2 OPEN DATABASE DB3,16,2、設(shè)置當(dāng)前數(shù)據(jù)庫 (1)最后打開的數(shù)據(jù)庫為當(dāng)前

5、的; (2)在“常用”工具欄的數(shù)據(jù)庫列表中選擇; (3)命令格式: SET DATABASE TO 數(shù)據(jù)庫名,17,3、檢查數(shù)據(jù)庫的有效性,如果數(shù)據(jù)庫文件或表文件的相對路徑發(fā)生改變,可能破壞數(shù)據(jù)庫和表之間的雙向鏈接,此時可使用如下命令檢查數(shù)據(jù)庫的有效性和更新鏈接,命令格式為: VALIDATE DATABASE RECOVER TO PRINT / TO FILE 文件名 說明:該命令用于檢查數(shù)據(jù)庫的有效性, RECOVER用于更新鏈接 該命令只能處理以獨(dú)占方式打開的當(dāng)前數(shù)據(jù)庫,18,4、關(guān)閉數(shù)據(jù)庫,可以從項(xiàng)目管理器中關(guān)閉 使用CLOSE DATABASE命令關(guān)閉當(dāng)前數(shù)據(jù)庫 使用CLOSE D

6、ATABASE ALL關(guān)閉所有打開的數(shù)據(jù)庫,19,5、刪除數(shù)據(jù)庫,刪除數(shù)據(jù)庫意味著刪除數(shù)據(jù)庫中的一切信息,如存儲過程、視圖、表之間的關(guān)系、數(shù)據(jù)庫表的擴(kuò)展屬性等。 可以從資源管理器中刪除或用DELETE FILE 命令刪除;不會刪除數(shù)據(jù)庫所包含的表中的鏈接信息,因此,數(shù)據(jù)庫所包含的表不會自動成為自由表 在“項(xiàng)目管理器”中“移去”,刪除數(shù)據(jù)庫所包含的表中的鏈接信息,數(shù)據(jù)庫表將變?yōu)樽杂杀?20,3.3 表的創(chuàng)建與使用,在VFP中,表分為兩種類型: 數(shù)據(jù)庫表:從屬于某個數(shù)據(jù)庫的表 自由表:不從屬于任何數(shù)據(jù)庫的表 數(shù)據(jù)庫表除具有自由表的所有特性外,還具有數(shù)據(jù)庫管理的其他特性。,21,表的概念,表(Tab

7、le):是指存放在磁盤文件中的一張二維表。一張表保存為一個表文件(.DBF)。表文件名:遵守windows系統(tǒng)對文件名的約定,不可用AJ中的單個字母作文件名。,22,字段(Field):表中的一列。 字段規(guī)定了數(shù)據(jù)的特征。 記錄(Record):表的一行。 記錄是多個字段的集合。同一個表 的每一個記錄都有相同的字段。 表結(jié)構(gòu):存儲表中記錄的一個公共的結(jié)構(gòu)。,23,學(xué)生表(DBF文件),字段(Field),表結(jié)構(gòu),記錄,24,3.3.1 表結(jié)構(gòu)概述,1.字段名(Field Name) 用以標(biāo)識一個字段的名字。 規(guī)定: 以字母、漢字或下劃線開頭,長度在10個字符之內(nèi)。 例如: “姓名”、“XIMI

8、NG”、“_XM”等都可以做字段名。,25,2.字段的數(shù)據(jù)類型(Type) 二維表中的每列的數(shù)據(jù)來自同一個域,即同一種數(shù)據(jù)類型,叫做字段類型。 指定數(shù)據(jù)類型是為了方便VFP處理這些數(shù)據(jù)。 VFP支持的基本數(shù)據(jù)類型如 表3-1(P76),26,表 3-1 VFP表中字段的數(shù)據(jù)類型,27,例如: “姓名”字段,應(yīng)為字符型(C), “學(xué)號”字段,可以為數(shù)值型(N), 也可為字符型(C)。 備注字段的數(shù)據(jù)保存在單獨(dú)的文件中。文件名與表文件相同,并且擴(kuò)展名為 .fpt,28,3.字段寬度(Width) 指該字段所能容納數(shù)據(jù)的最大字節(jié)數(shù)。 注意:1)字段寬度應(yīng)能容納可能出現(xiàn)的最大數(shù)據(jù)信息; 2)字段寬度與

9、字段名的長度是不同的概念 。 例如:“姓名”字段的寬度,考慮到4個漢字,應(yīng)為8個字符,再考慮到少數(shù)民族,還應(yīng)大些。而字段名“姓名”本身只有2個漢字,4個字符。 3)有些字段的寬度由系統(tǒng)指定。(P77),29,4.小數(shù)位數(shù)(Decimal) 小數(shù)位數(shù)指數(shù)值型數(shù)據(jù)中的小數(shù)部分的寬度。 數(shù)值型數(shù)據(jù)的寬度整數(shù)部分的寬度+小數(shù)位數(shù)+小數(shù)點(diǎn),30,5.空值支持(Null) 空值是用來指示記錄中的一個字段“有或沒有”數(shù)據(jù)的標(biāo)識。 Null不是一種數(shù)據(jù)類型或一個值,確切地講,它是用來指示數(shù)據(jù)存在或不存在的一種屬性。 注意:數(shù)值型數(shù)據(jù)的“0”、字符型數(shù)據(jù)的“空格”,是有確定的值,不 是Null。,31,下面我們

10、給“學(xué)生”表定義表結(jié)構(gòu):,字段名 類型 寬度 小數(shù)位 學(xué)號 C 10 0 姓名 C 10 0 性別 C 2 0 專業(yè)代號 C 6 0 系名 C 18 0,注意:一張表必須先定義表結(jié)構(gòu),然后才能輸入記錄!,表結(jié)構(gòu),32,表結(jié)構(gòu)定義完成后,必須要把它送入計算機(jī)中,即創(chuàng)建表結(jié)構(gòu),創(chuàng)建表結(jié)構(gòu)的方式有兩種: 1.表設(shè)計器(Table Designer) 2.SQL命令方式,3.3.2 利用表設(shè)計器創(chuàng)建和修改表結(jié)構(gòu),33,1、用表設(shè)計器創(chuàng)建表結(jié)構(gòu) 操作步驟:,當(dāng)表結(jié)構(gòu)創(chuàng)建完成后,單擊“確認(rèn)”按鈕,將彈出“現(xiàn)在輸入數(shù)據(jù)記錄嗎?”的對話框,如要輸入,單擊“是”;如不要,單擊“否”。,34,學(xué)生表創(chuàng)建后,在磁盤

11、上生成了文件:xs.dbf,如果表的字段有備注型或通用型,則會產(chǎn)生2個文件: xs.dbf, xs.fpt。,35,修改表結(jié)構(gòu)的方式有兩種: (1)、用表設(shè)計器修改表結(jié)構(gòu),在項(xiàng)目中修改表結(jié)構(gòu) MODIFY STRUCTURE 命令,2、利用表設(shè)計器修改表結(jié)構(gòu),(2)、用ALTER TABLE命令(后續(xù)介紹),36,也可以使用命令打開表設(shè)計器: USE 表文件名 & 打開表 MODIFY STRUCTURE & 打開表設(shè)計器,如果表已存在于項(xiàng)目中,則可選定表,單擊“修改”,打開“表設(shè)計器”,在表設(shè)計器中,可以對字段進(jìn)行增加、刪除、改名、改類型等各種操作,37,3.3.3 字段屬性與表屬性,數(shù)據(jù)庫

12、表除具有自由表的所有特性外,還具有數(shù)據(jù)庫管理的其他特性。 數(shù)據(jù)庫表的創(chuàng)建 通過界面操作創(chuàng)建 通過命令創(chuàng)建 如果數(shù)據(jù)庫已打開,則用CREATE TABLE-SQL命令創(chuàng)建的表屬于該數(shù)據(jù)庫,38,1、數(shù)據(jù)庫表字段的擴(kuò)展屬性,數(shù)據(jù)庫表的字段除了具有字段的基本屬性,如字段名、類型、寬度、小數(shù)位等,還具有自由表所沒有的擴(kuò)展屬性。例如,字段的顯示格式、輸入掩碼、默認(rèn)值、標(biāo)題、注釋以及字段的驗(yàn)證規(guī)則等。這些高級屬性可以在數(shù)據(jù)庫表的“表設(shè)計器” 中設(shè)置,并作為數(shù)據(jù)字典保存在數(shù)據(jù)庫文件中。,39,字段標(biāo)題和注釋是為了增加表的可讀性,如字段名是“XH”,“XM”,為了更好地說明字段的含義,可設(shè)置字段標(biāo)題“學(xué)號”、

13、“姓名”。但在命令中只能使用“XH”和“XM”,(1)字段標(biāo)題(Caption)和注釋(Comment),40,(2)字段的顯示屬性 用來指定輸入和顯示字段時的格式,包括格式和輸入掩碼。 格式(Format) 字段格式用來規(guī)定在顯示數(shù)據(jù)時,如“瀏覽”、“表單”或“報表”中數(shù)據(jù)的顯示格式,字段格式包括字母的大小寫、日期格式、貨幣符號、是否用科學(xué)記數(shù)法顯示數(shù)字等。,41,輸入掩碼(Input Mask) 輸入掩碼規(guī)定輸入數(shù)據(jù)的格式,如小數(shù)位、正負(fù)號、字符等。 見P79表3-3。,42,數(shù)據(jù)庫表在追加新記錄之后,輸入數(shù)據(jù)之前,某些字段就已經(jīng)有值了,稱為該字段的默認(rèn)值。如: 邏輯型: .F. 字符型:

14、 空字符 數(shù)值型: 0 日期型: 空的日期格式,(3) 默認(rèn)值,43,為減少數(shù)據(jù)的輸入量,用戶也可以為字段設(shè)置適當(dāng)?shù)哪J(rèn)值,例如,為xb(性別)字段設(shè)置默認(rèn)值“男”,將“記帳日期”字段的默認(rèn)值設(shè)置為日期函數(shù)DateTime()。 注意:如果字段設(shè)置為允許NULL,則該字段的默認(rèn)值可設(shè)置為空值(.NULL.),否則不可設(shè)為空值。,44,字段有效性規(guī)則用于控制輸入到字段中的數(shù)據(jù)的取值范圍。該規(guī)則應(yīng)是一個邏輯表達(dá)式,且當(dāng)前字段應(yīng)包含在該表達(dá)式中。如果用戶輸入的值不滿足規(guī)則要求(即邏輯表達(dá)式的值為.F.),則拒絕該字段值并顯示一個消息框。該有效性規(guī)則僅對相應(yīng)字段輸入或修改的值驗(yàn)證其有效性,因此稱為“字

15、段級規(guī)則”。,(4)字段有效性規(guī)則和信息,45,字段有效性信息也稱為字段有效性說明,它是一個字符表達(dá)式,通常與字段的有效性規(guī)則配合使用,用于指定在不滿足規(guī)則要求時所顯示的消息框中的說明信息。,(4)字段有效性規(guī)則和信息,46,例如,在成績表中,成績字段的數(shù)據(jù)應(yīng)當(dāng)在0100之間,所以可設(shè)置字段有效性規(guī)則: “CJ=0 .AND. CJ=100”。 設(shè)置方法: 在“表設(shè)計器”的“字段”選項(xiàng)卡的“字段驗(yàn)證”框內(nèi)輸入規(guī)則。還可以在“信息”框內(nèi)設(shè)置違反規(guī)則時需要顯示的信息。,47,注意:如果表中已有記錄,且需要設(shè)置或修改某字段的有效性規(guī)則,則必須先確保表中所有記錄滿足將要設(shè)置的有效性規(guī)則,否則有效性規(guī)則

16、無法設(shè)置(也可在保存表時不選擇“用此規(guī)則對照現(xiàn)有數(shù)據(jù)”選項(xiàng),以強(qiáng)制設(shè)置。),48,(5) 字段的默認(rèn)控件類,第6章介紹,49,2、 數(shù)據(jù)庫表的表屬性,(1)長表名和表注釋 在創(chuàng)建表時,表文件名就是表名。表文件名的長度,受到操作系統(tǒng)的限制: MS-DOS 為 8個字符 WINDOWS 為255個字符。 VFP 表名的最大長度為 128個字符。 數(shù)據(jù)庫表可以設(shè)置長表名屬性(自由表不可以),而且長表名和文件名可以同樣使用。,50,使用長表名打開表,表所屬數(shù)據(jù)庫必須是打開的,且所屬數(shù)據(jù)庫是當(dāng)前庫,否則不能成功打開它。而使用表文件名打開表時,如果所屬數(shù)據(jù)庫未打開,將會自動打開數(shù)據(jù)庫。,設(shè)置方法: “表設(shè)

17、計器”“表”選項(xiàng)卡“表名”文本框,表注釋是表的說明信息,當(dāng)在“項(xiàng)目管理器”中選擇一張表后,在窗口的下部會顯示表注釋。,51,(2) 記錄有效性規(guī)則和信息,什么是記錄級驗(yàn)證規(guī)則 記錄級規(guī)則用于規(guī)定同一記錄不同字段之間的數(shù)據(jù)必須滿足的約束條件。 例如:在教師表JS.DBF中可設(shè)置,工齡年齡-20,這個約束條件可用如下表達(dá)式表示: JS.GLYEAR(DATE( )-YEAR(JS.CSRQ)- 20,52,設(shè)置記錄級驗(yàn)證規(guī)則 “表設(shè)計器”“表”選項(xiàng)卡“規(guī)則”框 記錄級驗(yàn)證規(guī)則在記錄值改變時被激活,不滿足規(guī)則的數(shù)據(jù)將被拒絕。,例如:在教師表中,規(guī)定工齡在10年以上,職稱在副教授以上的,基本工資應(yīng)在6

18、00元以上,這個約束條件可表示為: IIF(GL10 .AND. (ZC=副教授 .OR. ZC=教授) , JBGZ600 , JBGZ=600),53,當(dāng)追加或是修改記錄時,VFP會自動按給定的約束條件檢查數(shù)據(jù)是否滿足約束條件。 注意事項(xiàng)同字段驗(yàn)證規(guī)則的設(shè)置,54,(3)表的觸發(fā)器,什么是表的觸發(fā)器 (Trigger) 表的觸發(fā)器是在對表進(jìn)行某一種操作之后運(yùn)行的事件代碼。 觸發(fā)器是綁定在表上的表達(dá)式,表達(dá)式必須返回“.T.”或“.F.”,當(dāng)值為.F.時,不允許執(zhí)行相應(yīng)的操作,即“觸發(fā)器失敗”。 對表的操作規(guī)定為:插入、更新、刪除,因此可以創(chuàng)建 3 個觸發(fā)器。,55,創(chuàng)建觸發(fā)器 界面方式: 在“表設(shè)計器”的“表”選項(xiàng)卡中,輸入觸發(fā)器表達(dá)式。,56,命令方式: 創(chuàng)建插入觸發(fā)器: CREATE TRIGGER ON 表名 FOR INSERT AS 邏輯表達(dá)式,創(chuàng)建刪除觸發(fā)器: CREATE TRIGGER ON 表名 FOR DELETE AS

溫馨提示

  • 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

提交評論