



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第三章第三章 數(shù)據(jù)庫數(shù)據(jù)庫問題的提出: 前面我們所創(chuàng)建的表都是自由表,在實際應(yīng)用中自由表很難滿足管理信息系統(tǒng)中存貯數(shù)據(jù)的要求,那么將如何解決這一問題?解決問題的方法: 我們可以通過建立數(shù)據(jù)庫及數(shù)據(jù)庫表來解決上述問題。第三章第三章 數(shù)據(jù)庫數(shù)據(jù)庫本章主要介紹的內(nèi)容有: 數(shù)據(jù)庫的創(chuàng)建; 數(shù)據(jù)庫的操作; 排序、索引和查找; 計算與統(tǒng)計; 表之間的關(guān)系; 數(shù)據(jù)庫表的屬性。 通過學(xué)習(xí)本章內(nèi)容,您能夠做到: 掌握數(shù)據(jù)庫的創(chuàng)建; 掌握數(shù)據(jù)庫的操作; 掌握數(shù)據(jù)的排序、索引和查找; 掌握數(shù)據(jù)的計算與統(tǒng)計處理; 掌握表之間的關(guān)系; 掌握數(shù)據(jù)庫表的屬性。 本章目錄本章目錄 3.1引 例 3.2數(shù)據(jù)庫的創(chuàng)建 3.3數(shù)據(jù)
2、庫的操作 3.4排序、索引和查詢 3.5數(shù)據(jù)統(tǒng)計 3.6表之間的關(guān)系 3.7數(shù)據(jù)完整性 HOME3.1 引例 在“學(xué)生管理系統(tǒng)”應(yīng)用程序中,我們設(shè)計了一個學(xué)生管理數(shù)據(jù)庫(xsgl.dbc),如圖所示。其中包含學(xué)生檔案表、學(xué)生成績表、學(xué)生課程表,也包含相關(guān)表之間按關(guān)鍵字建立的關(guān)系。 那么如何創(chuàng)建數(shù)據(jù)庫呢?3.2 數(shù)據(jù)庫的創(chuàng)建數(shù)據(jù)庫的創(chuàng)建 3.2.1數(shù)據(jù)庫的設(shè)計 3.2.2創(chuàng)建新的數(shù)據(jù)庫 3.2.1數(shù)據(jù)庫的設(shè)計 以學(xué)生管理(xsgl.dbc)數(shù)據(jù)庫為例來講解設(shè)計的一般步驟: 1.確定數(shù)據(jù)庫的用途 對在校學(xué)生檔案和成績等數(shù)據(jù)進(jìn)行管理。 2.確定需要的表 根據(jù)調(diào)查決定設(shè)計xsda.dbf、xscj.d
3、bf 、xskc.dbf等。 3.確定所需的字段 以xscj.dbf為例,所需的字段為xh、kcdm、cj。 4.確定各表之間的關(guān)系 將xsda.dbf和xscj.dbf按xh建立關(guān)系,將xscj.dbf和xskc.dbf 按kcdm建立關(guān)系。 5.改進(jìn)整個設(shè)計 對整個設(shè)計方案進(jìn)行改進(jìn)和優(yōu)化。3.2.2創(chuàng)建新的數(shù)據(jù)庫 用戶可以通過三種方式創(chuàng)建一個新的數(shù)據(jù)庫:菜單方式、項目管理器方式和命令方式。 1.菜單方式 以創(chuàng)建XSGL.DBC為例,操作步驟如下: 選“文件”菜單中的“新建”菜單項或直接單擊常用工具欄上的“新建”按鈕在“新建”對話框中選“數(shù)據(jù)庫”單選按鈕單擊“新建文件”按鈕在“創(chuàng)建”對話框的
4、“數(shù)據(jù)庫名”文本框中輸入要建立的數(shù)據(jù)庫名“XSGL”單擊“保存”按鈕。 創(chuàng)建數(shù)據(jù)庫后,進(jìn)入數(shù)據(jù)庫設(shè)計器,如下圖:注 意:此時,用戶已經(jīng)建立了名為XSGL.DBC的空數(shù)據(jù)庫,系統(tǒng)還會自動生成一個名為XSGL.DCT的數(shù)據(jù)庫備注文件和一個名為XSGL.DCX的數(shù)據(jù)庫索引文件。 2.項目管理器方式項目管理器方式 打開“項目管理器”選擇項目管理器中的“數(shù)據(jù)”選項卡選中“數(shù)據(jù)庫”單擊“新建”按鈕,其余步驟同菜單方式。 3.命令方式命令方式 創(chuàng)建數(shù)據(jù)庫的命令如下: 格式:格式:CREATE DATABASECREATE DATABASE數(shù)據(jù)庫文件名|? 功能:功能:創(chuàng)建并打開一個數(shù)據(jù)庫。 示例:CREAT
5、E DATABASE xsglCREATE DATABASE xsgl 剛建好的數(shù)據(jù)庫只是一個數(shù)據(jù)庫的框架,里面還沒有數(shù)據(jù),用戶可以向其中添加各種數(shù)據(jù)庫對象,如表、視圖、表之間的關(guān)系等。數(shù)據(jù)庫的.DBC(數(shù)據(jù)庫容器)文件中存儲有關(guān)該數(shù)據(jù)庫的所有信息(包括和它關(guān)聯(lián)的文件和對象名),數(shù)據(jù)庫文件并不在物理上包含任何對象(如表和字段),而僅存儲指向表文件的路徑指針等。 3.33.3數(shù)據(jù)庫的操作數(shù)據(jù)庫的操作 數(shù)據(jù)庫創(chuàng)建后,用戶可以進(jìn)行如下一系列操作:建立新表、添加表到數(shù)據(jù)庫中、瀏覽數(shù)據(jù)庫中的表、修改數(shù)據(jù)庫中的表、移去數(shù)據(jù)庫中的表、建立各表之間的關(guān)系、編輯存儲過程、編輯參照完整性等。 3.33.3數(shù)據(jù)庫的
6、操作數(shù)據(jù)庫的操作 3.3.1數(shù)據(jù)庫的打開與關(guān)閉 3.3.2數(shù)據(jù)庫的修改 3.3.1數(shù)據(jù)庫的打開與關(guān)閉 1.數(shù)據(jù)庫的打開 在數(shù)據(jù)庫中建立表或?qū)?shù)據(jù)庫中的表進(jìn)行相關(guān)操作時,都必須先打開數(shù)據(jù)庫。 操作方式同樣有兩種。菜單方式與數(shù)據(jù)表的操作相似 命令方式: 格式:格式: OPEN DATABASE數(shù)據(jù)庫文件名|?EXCLUSIVESHARED 功能:功能:打開一個指定的數(shù)據(jù)庫。示例:示例:clearclose allopen database xsgl &打開數(shù)據(jù)庫xsgl.dbcopen database mydata &打開數(shù)據(jù)庫mydata.dbc 2.數(shù)據(jù)庫的關(guān)閉 當(dāng)暫時不使用
7、數(shù)據(jù)庫時,為防止意外斷電或誤操作而破壞數(shù)據(jù)庫文件中的數(shù)據(jù),應(yīng)及時將其關(guān)閉。關(guān)閉數(shù)據(jù)庫,可以用項目管理器或CLOSE DATABASE命令關(guān)閉數(shù)據(jù)庫。 命令方式: 格式1:CLOSE DATABASE ALL 功能:關(guān)閉數(shù)據(jù)庫和表。 格式2:CLOSE ALL 功能:關(guān)閉除命令窗口、調(diào)試窗口、跟蹤窗口和幫助窗口以外的所有文件。 3.設(shè)置當(dāng)前數(shù)據(jù)庫 在VFP中,可以同時打開多個數(shù)據(jù)庫,但在同一時刻僅有一個為“當(dāng)前數(shù)據(jù)庫” 。在打開多個數(shù)據(jù)庫時,最后一個打開的數(shù)據(jù)庫為當(dāng)前數(shù)據(jù)庫。用戶可在列表框中選擇其他已經(jīng)打開的數(shù)據(jù)庫成為當(dāng)前數(shù)據(jù)庫,也可以使用下列命令設(shè)置當(dāng)前數(shù)據(jù)庫。 格式:SET DATABASE
8、 TO 數(shù)據(jù)庫文件名 功能:指定當(dāng)前數(shù)據(jù)庫。 3.3.2 數(shù)據(jù)庫的修改1.在數(shù)據(jù)庫中建立新表 在數(shù)據(jù)庫設(shè)計器中單擊右鍵在快捷菜單中選擇“新建表”在彈出對話框中選擇“新建表”輸入新表名進(jìn)入“表設(shè)計器”,用戶可以按照第2章介紹的方法建立一個新表。 注 意:數(shù)據(jù)庫表的表設(shè)計器與自由表的表設(shè)計器不同,在數(shù)據(jù)庫中建立的表為數(shù)據(jù)庫表。 2.向數(shù)據(jù)庫中添加表 在數(shù)據(jù)庫設(shè)計器中,用戶可以選定目前不屬于任何其他數(shù)據(jù)庫的表(自由表),將其添加到數(shù)據(jù)庫中,使之成為一個數(shù)據(jù)表。有兩種方法。 (1)菜單法 選“數(shù)據(jù)庫”菜單中選擇“添加表”或右擊數(shù)據(jù)庫選“添加表”。 (2)命令方式格式:ADD TABLE |?NAME功
9、能:在當(dāng)前數(shù)據(jù)庫中添加一個表。示例:將xsda表添加到數(shù)據(jù)庫xsgl.dbc中。 clear Open database xsgl.dbc Add table xsda.dbf name 學(xué)生的基本情況表 &將xsda.dbf添加到xsgl.dbc中,成為數(shù)據(jù)庫表,并命名為“學(xué)生的基本情況表”。注 意:數(shù)據(jù)庫表可以定義長文件名表。 3.從數(shù)據(jù)庫中移去表或刪除表 當(dāng)數(shù)據(jù)庫不再需要某個表或其他數(shù)據(jù)庫需用此表時,可以從該數(shù)據(jù)庫中移去此表。同樣有菜單方式和命令方式。 注 意:一個表在同一時間內(nèi)只能屬于一個數(shù)據(jù)庫。 (1)菜單方式 選定要移去或刪除的表選“數(shù)據(jù)庫”菜單中“移去”菜單項(或者在數(shù)據(jù)
10、庫表上右擊在快捷菜單中選“刪除”命令) 在如圖所示的對話框中單擊“移去”按鈕。 (2)命令方式 REMOVE TABLE |?DELETE 示例:示例: 將數(shù)據(jù)庫表學(xué)生檔案xsda.dbf從數(shù)據(jù)庫xsgl.dbc中移去,使其成為自由表。 clear Open database xsgl.dbc Remove table xsda.dbf實驗三 數(shù)據(jù)庫的創(chuàng)建與操作 實驗?zāi)康模和ㄟ^上機(jī)實驗掌握數(shù)據(jù)庫建立的方法和有關(guān)的操作。 實驗步驟:首先布置上機(jī)實驗內(nèi)容。 應(yīng)用菜單法和命令法進(jìn)行下列操作: 1、建立數(shù)據(jù)庫 2、打開和關(guān)閉數(shù)據(jù)庫 3、在數(shù)據(jù)庫中建立數(shù)據(jù)庫表 4、在數(shù)據(jù)庫中添加表 5、將數(shù)據(jù)庫中的表變
11、為自由表3.4排序、索引和查詢 建立數(shù)據(jù)庫的主要目的之一,就是要方便、靈活、快速、高效地提取所要的信息。在實際應(yīng)用中,數(shù)據(jù)庫是很大的,它有成千上萬個記錄。因此必須有一套科學(xué)的、迅速而又方便的查詢方法,用前面所述的定位、顯示等方法是不能滿足需要的。為此,本節(jié)將討論如何組織排序文件和索引文件,以達(dá)到快速查詢的目的。3.43.4排序、索引和查詢排序、索引和查詢 3.4.1排序 3.4.2索引 3.4.3查詢 3.4.1排序 排序的特點是將已建好的表記錄按某一關(guān)鍵字規(guī)定的順序重新排列,產(chǎn)生一新的表文件,但原文件不變。 排序命令: 格式: SORT TO ON /A/C/D,/A/C/DFIELDSFO
12、R|WHILE 功能:對當(dāng)前表文件,按指定字段值重新排序,排序后生成一個以命名的表文件。 【例3.1】對XSDA表按“XH”降序排序,排序后的文件名為XSDA1;按“RXF”升序排序,排序后的文件名為XSDA2,且排序后的表文件中只有XH、XM、RXF 3個字段。 輸入命令: Clear Open database xsgl.dbc use xsda list sort to xsda1 on xh/d use xsda1 list use xsda sort to xsda2 on rxf fields xh,xm,rxf use xsda2 list實例演示顯示結(jié)果: 3.4.2索引 通過
13、SORT命令可以對表中某一個字段進(jìn)行排序,排序后將產(chǎn)生一個新的表文件,每排一次序就產(chǎn)生一個新的表文件,這樣將占據(jù)大量的空間,要解決這樣的問題可以通過建立索引來解決。 1.索引的概念 為了更好地處理和組織數(shù)據(jù),Visual FoxPro 6.0提供了一個非常方便的工具索引。Visual FoxPro 6.0中的索引和書中的目錄類似,書中的目錄是一份頁碼的列表,根據(jù)內(nèi)容指向書中的頁號。而Visual FoxPro 6.0中表的索引是一個記錄號的列表,它指向待處理的記錄,并確定了記錄的處理順序。 2.索引類型 (1)索引類型 索引分為主索引、候選索引、普通索引、惟一索引4種類型。 (2)索引文件類型
14、 根據(jù)索引文件包含索引的個數(shù)和索引文件的打開方式不同,索引文件可分為獨立索引文件和復(fù)合索引文件。復(fù)合索引文件又分為非結(jié)構(gòu)化復(fù)合索引文件和結(jié)構(gòu)化復(fù)合索引文件。 獨立索引文件。 復(fù)合索引文件。 3.索引操作 索引操作主要是指建立、插入、刪除索引等,可通過表設(shè)計器和命令方式進(jìn)行。 (1)表設(shè)計器方式 下面以在XSDA.DBF為例建立索引,按“XH”字段建立主索引、升序,按“XM”字段建立普通索引,按“RXF”字段建立普通索引。 操作步驟: 打開xsda表進(jìn)入表設(shè)計器在“學(xué)號”字段的“索引”項中選“升序”選“索引”選項卡設(shè)置xh的索引類型為“主索引”,其他索引操作類似。 (2)表達(dá)式生成器的使用 在“
15、表設(shè)計器”的“索引”選項卡中,單擊“表達(dá)式”編輯框右邊的“”生成器按鈕,進(jìn)入表達(dá)式生成器窗口,可以用可視化的設(shè)計建立索引表達(dá)式。 (3)命令方式 格式:格式: INDEX ONINDEX ON索引表達(dá)式TAGTAG索引標(biāo)識符OFOFCDXCDX文件名|TOTO索引文件名 FORFOR條件ASCENDINGASCENDING|DESCENDINGDESCENDINGUNIQUEUNIQUE|CANDIDATECANDIDATEADDITIADDITIVEVE 功能功能: :為當(dāng)前表建立一個索引文件。 實例演示【例3.2】對xsda表按xh建立獨立索引文件xsdaxh。 輸入命令: Clear U
16、se xsda List Index on xh to xsdaxh &對xsda表按xh建立獨立索引 List 運行結(jié)果: 【例3.3】對xsda表先按xm索引,再按csrq索引建立獨立索引文件xsdaxc。 輸入命令: Clear Use xsda Index on xm+dtoc(csrq) to xsdaxc List 運行結(jié)果: 【例3.4】對xsda.dbf表按xh降序建立結(jié)構(gòu)化復(fù)合索引文件,索引標(biāo)識為“學(xué)號” 。 輸入命令: Clear Use xsda Index on xh tag 學(xué)號 descending List 運行結(jié)果: 【例3.5】對xsda.dbf表按x
17、b建立結(jié)構(gòu)化復(fù)合索引文件,索引標(biāo)識為“性別”,指定為惟一索引。 Clear Use xsda Index on xb tag 性別 unique List 運行結(jié)果: 4.使用索引 要使用索引進(jìn)行查詢,必須打開表與索引文件。一個表可以打開多個相關(guān)的索引文件,同一個復(fù)合索引文件中也可能包含多個索引標(biāo)識,但任何時候只有一個索引文件能起作用,在復(fù)合索引中也只能有一個索引標(biāo)識能起作用。當(dāng)前起作用的索引文件稱為主控索引文件,當(dāng)前起作用的索引標(biāo)識稱為當(dāng)前索引。也就是說,實現(xiàn)索引查詢必須滿足以下的條件:打開表、打開索引文件、確定主控索引文件,對復(fù)合索引文件還需確定當(dāng)前索引。 (1)索引文件的打開。 索引文件
18、的打開有以下幾種方式: 自動打開 建立索引文件時,剛建立的獨立索引文件和結(jié)構(gòu)化復(fù)合索引文件由系統(tǒng)自動打開。 打開表的同時,打開索引文件 格式1:USE ORDER TAG 功能:格式1打開表文件同時,與之同名的結(jié)構(gòu)型復(fù)合索引文件自動打開,并設(shè)置當(dāng)前索引。 格式2:USE INDEX ORDER TAG 功能:格式2打開表文件的同時,打開非結(jié)構(gòu)化復(fù)合索引文件和獨立索引文件,可設(shè)置當(dāng)前索引。示 例 1.打開xsda表的同時將自動打開結(jié)構(gòu)化復(fù)合索引文件xsda.cdx,并指定關(guān)鍵字為“學(xué)號”的索引為當(dāng)前索引。 Use xsda order tag 學(xué)號 2.打開xsda表的同時,打開非結(jié)構(gòu)化復(fù)合索引
19、文件xsdaxb.cdx,并指定關(guān)鍵字為“性別” 的索引為當(dāng)前索引。 Use xsda index xsdaxb.cdx order tag 性別 在表文件已打開的情況下,單獨打開相關(guān)聯(lián)的索引文件。 格式:SET INDEX TO索引文件名表|?ORDERTAG標(biāo)識符OFCDX文件名ADDITIVE 功能:打開當(dāng)前表的一個或多個索引文件。 【例3.6】打開XSDA表中的獨立索引文件和非結(jié)構(gòu)化復(fù)合索引文件。 Use xsda List Set index to xsdaxc List Set index to xsdaxh additive List運行結(jié)果: (2)設(shè)置當(dāng)前索引 一個文件在某一
20、時刻,只有一個索引起作用,稱為主控索引或當(dāng)前索引,主控索引就是控制當(dāng)前顯示順序的索引。設(shè)置當(dāng)前索引的命令如下: 格式: SET ORDER TO順序號|IDX文件名|TAG標(biāo)識名OFCDX文件名 功能:指定當(dāng)前索引。 【例3.7】設(shè)置當(dāng)前索引。Use xsdaIndex on xh tag 學(xué)號 of xsda22.cdxIndex on csrq tag 出生日期 xsda22.cdxIndex on rxf tag 入學(xué)分 xsda22.cdxClose allUse xsda index xsda22 order tag 出生日期ListClose allUse xsda Set ind
21、ex to xsda22 order tag 入學(xué)分List Close allUse xsda Set index to xsda22Set order to tag 學(xué)號ListClose all運行結(jié)果: (3)關(guān)閉索引文件。 格式1:USE 功能:關(guān)閉表文件的同時,也關(guān)閉了所有已打開的索引文件。 格式2:SET INDEX TO 功能:關(guān)閉所有已打開的索引文件,但表文件仍處于打開狀態(tài)。 格式3:CLOSE INDEX 功能:與格式2相同。 (4)索引的更新。 自動更新。 當(dāng)表中的數(shù)據(jù)發(fā)生變化時(如對其進(jìn)行了插入、刪除、添加或修改操作之后),所有當(dāng)前已打開的索引文件都會跟隨數(shù)據(jù)的改變自動
22、改變記錄的邏輯順序,實現(xiàn)索引文件的自動更新。 重新索引。 若修改表中記錄之后再打開索引文件,可在打開需要重建索引的全部索引文件后,使用如下命令重新索引。 格式:REINDEX (5)刪除索引 獨立索引文件可采取刪除文件的方法直接刪除,復(fù)合索引文件可用下列命令刪除: 格式:DETELE TAG索引標(biāo)識符|ALLOFCDX文件名 說明: DETELE TAG索引標(biāo)識符刪除復(fù)合索引文件中的指定索引。 DETELE TAG ALL刪除復(fù)合索引文件中的所有索引,此時,復(fù)合索引文件將不復(fù)存在。 對于復(fù)合索引文件,也可以在表設(shè)計器中刪除索引標(biāo)識。 實驗四 排序與索引 實驗?zāi)康模和ㄟ^實驗掌握排序的方法和索引文
23、件建立的方法及索引文件的打開、關(guān)閉、設(shè)置當(dāng)前索引等方法。 實驗步驟:首先布置本次上機(jī)的實驗內(nèi)容及實驗過程中要注意的問題。 1、設(shè)置當(dāng)前盤和當(dāng)前文件夾; 2、通過排序命令排序后建立新的表文件,并打開新的表文件查看排序結(jié)果; 3、用表設(shè)計器建立索引文件,并設(shè)置當(dāng)前索引,通過LIST或瀏覽命令查看結(jié)果; 4、用INDEX命令建立獨立索引、結(jié)構(gòu)化復(fù)合索引、非結(jié)構(gòu)化索引文件,并查看結(jié)果; 5、將表文件關(guān)閉,再打開表和相應(yīng)的索引文件,學(xué)會打開索引文件、設(shè)置當(dāng)前索引。3.4.3查詢 所謂查詢,就是在表中查找用戶指定條件的記錄和字段。查詢時,我們先將記錄指針快速定位到所查記錄處,然后通過顯示命令查看數(shù)據(jù)內(nèi)容。
24、Visual FoxPro 6.0提供了兩種查詢方法:一種是順序查詢;另一種是索引查詢。 1.順序查詢 順序查詢是在表文件中依次查找滿足條件的記錄。順序查詢也稱直接查詢,包括LOCATE和CONTINUE兩條命令。 格式: LOCATE范圍FOR條件WHILE條件 CONTINUE【例3.9】在XSDA表中按順序查找不是團(tuán)員的所有記錄。 Close all Open database xsgl Use xsda Locate for tyf=.f. ? found() 顯示是否找到記錄 ? recno() 顯示當(dāng)前記錄號 disp 顯示找到的記錄 continue 繼續(xù)查找 ? recno()
25、 disp continue ? found() ? recno() ? eof() cont ? eof() cont ? eof() 顯示是否到文件尾 2.索引查詢 索引查詢的速度很快但其算法要求表的記錄是有序的,這就需要事先對表建立索引文件,方可采用索引查詢。索引查詢的命令有FIND和SEEK,下面分別介紹。 (1)FIND命令 格式:FIND 字符串|常數(shù) (2)SEEK命令 格式:SEEK表達(dá)式 功能:在已確定當(dāng)前索引的表文件中快速查找滿足表達(dá)式值的第一個記錄。 實驗五 索引、查找實驗?zāi)康模哼M(jìn)一步熟悉索引文件的有關(guān)操作,掌握索引查找和順序查找法。實驗步驟:首先布置上機(jī)任務(wù),提出上機(jī)中
26、應(yīng)注意的問題。1. 熟悉索引文件的打開和設(shè)置當(dāng)前索引的方法;2. 應(yīng)用索引查找來查找字符型數(shù)據(jù)、數(shù)值型數(shù)據(jù)和日期型數(shù)據(jù)。3. 應(yīng)用順序查找的方法查找各種類型的數(shù)據(jù)。3.5數(shù)據(jù)統(tǒng)計 在數(shù)據(jù)庫應(yīng)用中,不僅可以對表中的信息進(jìn)行各種形式的查詢,還可以對表中的數(shù)據(jù)進(jìn)行各類統(tǒng)計處理。VFP提供了計數(shù)(COUNT)、求和(SUM)、求平均值(AVERAGE)和分類匯總(TOTAL)等命令,以完成數(shù)據(jù)統(tǒng)計處理工作。 3.5數(shù)據(jù)統(tǒng)計 3.5.1統(tǒng)計記錄個數(shù)命令 3.5.2求和命令 3.5.3求平均值命令 3.5.4分類匯總命令3.5.1統(tǒng)計記錄個數(shù)命令 格式:COUNT范圍FOR條件TO內(nèi)存變量 功能:統(tǒng)計當(dāng)前
27、表中指定范圍內(nèi)滿足條件的記錄個數(shù),并存于內(nèi)存變量中。 說明:范圍缺省指ALL;TO內(nèi)存變量選項表示把符合條件的記錄個數(shù)保存到內(nèi)存變量中去,不指定內(nèi)存變量時,結(jié)果顯示在屏幕上。另外,函數(shù)RECCOUNT()返回當(dāng)前表中的記錄總數(shù)。【例3.12】統(tǒng)計xsda.dbf表中的全部記錄數(shù)。clearOpen database xsglUse xsdaCount to n? n? reccount()運行結(jié)果:993.5.2求和命令 格式:SUM范圍數(shù)值表達(dá)式表FOR條件TO內(nèi)存變量表 功能:在當(dāng)前表中,對指定范圍內(nèi)給定條件的數(shù)值型字段或含數(shù)值型字段的數(shù)值表達(dá)式進(jìn)行縱向求和計算,并把結(jié)果存放在對應(yīng)的內(nèi)存變
28、量表標(biāo)識的變量中。 Sum cj for xh=199921608 to zf3.5.3求平均值命令 格式:AVERAGE范圍數(shù)值表達(dá)式表FOR條件TO內(nèi)存變量表 功能:對當(dāng)前表中指定范圍內(nèi)滿足條件的數(shù)值型字段求算術(shù)平均值,并把結(jié)果存放在對應(yīng)的內(nèi)存變量表標(biāo)識的變量中。 average cj for kcdm=2 to pj 3.5.4分類匯總命令 格式:格式:TOTAL ONTOTAL ON關(guān)鍵字TOTO文件名范圍FIELDSFIELDS字段名表FORFOR條件 功能:功能:按關(guān)鍵字對當(dāng)前表文件的數(shù)值型字段進(jìn)行分類合計,結(jié)果存入新生成的表文件中。 【例3.16】對xsda表按性別分類統(tǒng)計男女同
29、學(xué)的入學(xué)分總分。clearUse xsgl!xsdaIndex on xb tag 性別Total on xb to xsdarxf fields rxfUse xsdarxfList3.63.6表之間的關(guān)系表之間的關(guān)系 3.6.1工作區(qū) 3.6.2多表之間的關(guān)系式 3.6.3設(shè)置表的永久關(guān)系 3.6.4設(shè)置表的臨時關(guān)系 3.6.1工作區(qū) 1.工作區(qū)的概念 工作區(qū)就是用來存放表的內(nèi)存空間。VFP提供了32767個工作區(qū),編號從1-32767。 在每個工作區(qū)可以打開一個表,即在某一時刻該工作區(qū)中只有一個表處于“工作”狀態(tài),可以對該表進(jìn)行各種操作。 2.工作區(qū)的選擇打開表的同時選擇工作區(qū)格式:US
30、E IN 功能:在指定工作區(qū)打開表文件。打開表的同時指定表的別名格式:USE ALIAS注 意:命令SELECT 0表示選定當(dāng)前未使用的最小工作區(qū)號。 3.工作區(qū)中數(shù)據(jù)的訪問工作區(qū)中數(shù)據(jù)的訪問 用戶可以用SELECT命令切換工作區(qū)使用不同的表,也可以在一個工作區(qū)中訪問其他工作區(qū)中的表。各工作區(qū)中的表文件記錄指針是相互獨立的,轉(zhuǎn)換工作區(qū)時不影響指針的位置,對現(xiàn)行工作區(qū)進(jìn)行與其他工作區(qū)無關(guān)的操作時,其他區(qū)中的記錄指針也不會受到影響。 為了不至于混淆不同工作區(qū)中表的字段內(nèi)容,VFP規(guī)定:從當(dāng)前工作區(qū)對其他工作區(qū)中打開的表進(jìn)行訪問時,必須在被訪問的表字段前面加上該表所在工作區(qū)的別名和連接符(.或-)。
31、3.6.2多表之間的關(guān)系式 一個數(shù)據(jù)庫中的多個表既相互獨立,又存在聯(lián)系。對數(shù)據(jù)庫的一個重要操作就是建立表之間的關(guān)系,即以其中一個表中的字段與另一個表中的同名字段建立關(guān)系。若要在數(shù)據(jù)庫表之間建立表間關(guān)系,前提是建立關(guān)系的表具有相同的字段;每個表都要以該字段建立索引。 多表之間的關(guān)系存在以下幾種類型:一對一關(guān)系、一對多關(guān)系、多對多關(guān)系表之間可以建立永久關(guān)系和臨時關(guān)系。建立的方法可通過界面方法和命令方法進(jìn)行。被關(guān)聯(lián)的表為從表,發(fā)起關(guān)聯(lián)的表為主表(或父表)。3.6.3設(shè)置表的永久關(guān)系 永久關(guān)系 只能在數(shù)據(jù)庫表中建立永久關(guān)系。 1.建立永久關(guān)系的方法:在數(shù)據(jù)庫設(shè)計器中用鼠標(biāo)左鍵從一個表的索引處直接拖到需
32、要建立關(guān)系的另一個表的相應(yīng)索引上。 注 意: 索引是建立永久關(guān)系的前提。在一對一關(guān)系中,主表和從表均應(yīng)按相同的關(guān)鍵字建立主索引或候選索引。而對于一對多關(guān)系,主表建立主索引或候選索引,而從表可以建立普通索引。 2.刪除表之間的永久關(guān)系 選中關(guān)系,按DEL鍵或右擊關(guān)系,選“刪除關(guān)系”。 3.編輯表之間的永久關(guān)系 右擊關(guān)系,選“編輯關(guān)系”。3.6.4設(shè)置表的臨時關(guān)系 表之間的永久關(guān)系建立后,在每次使用表時不需要重新建立,但永久關(guān)系不能控制不同工作區(qū)中記錄的聯(lián)動。因此,用戶可以建立臨時關(guān)系來控制表間記錄指針。在建立表間的臨時關(guān)系后,就會使得一個表(子表)的記錄指針自動隨另一個表(父表)的記錄指針移動。
33、這樣,當(dāng)關(guān)系中的“一”方(或父表)選擇一個記錄時,會自動去訪問表關(guān)系中“多”方(或子表)的相關(guān)記錄。 操作步驟: (1)打開從表,并索引(設(shè)置當(dāng)前索引); (2)打開主表,與從表建立臨時關(guān)系。 格式:SET RELATION TO INTO |ADDITIVE 實驗六 統(tǒng)計、計算和建立關(guān)系 實驗?zāi)康模簩W(xué)會統(tǒng)計記錄個數(shù)、縱向求和、縱向求平均;學(xué)會在多工作區(qū)之間進(jìn)行表的操作、在表之間建立永久關(guān)系和臨時關(guān)系的方法。 實驗步驟:首先布置上機(jī)實驗任務(wù),其次說明上機(jī)過程中容易出現(xiàn)的問題及解決的辦法。 1、統(tǒng)計滿足范圍和條件的記錄數(shù); 2、對xscj.dbf縱向求各科總和和各科平均分; 3、在多個工作區(qū)中打
34、開若干個表,選擇某工作區(qū)為當(dāng)前工作區(qū),在當(dāng)前工作區(qū)中訪問其它工作區(qū)中字段; 4、在xsda和xscj表之間建立永久關(guān)系; 5、在xscj和kcsz表之間建立臨時關(guān)系。3.73.7數(shù)據(jù)完整性數(shù)據(jù)完整性 在表設(shè)計器對話框中,顯示了“字段”、“索引”和“表”三個選項卡名,稱之為數(shù)據(jù)詞典。數(shù)據(jù)詞典用于保存對數(shù)據(jù)庫表中各種數(shù)據(jù)的定義或設(shè)置信息,包括表字段屬性、記錄屬性和參照完整性等。這些屬性或信息均可通過表設(shè)計器來設(shè)置、顯示或修改,并且將作為數(shù)據(jù)庫的一部分保存起來,當(dāng)表從數(shù)據(jù)庫中移去,這些屬性也不再保存。 3.73.7數(shù)據(jù)完整性數(shù)據(jù)完整性 3.7.1設(shè)置表的字段屬性 3.7.2設(shè)置表的記錄屬性 3.7.3數(shù)據(jù)的完整性3.7.1設(shè)置表的字段屬性 1.顯示組框 設(shè)置表中字段的格式。 輸入掩碼。 顯示標(biāo)題。 2.字段注釋 在建立數(shù)據(jù)表結(jié)構(gòu)時,對字段加以注釋,可以提醒自已或其他用戶,清楚地掌握字段的屬性、意義及特殊用途等。 3.字段有效性組框 在字段有效性組框中可以定義字段的有效性規(guī)則、違反規(guī)則時的提示信息和字段的默認(rèn)值。 設(shè)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)音響設(shè)備銷售與售后維修服務(wù)協(xié)議
- 進(jìn)口巧克力購貨合同協(xié)議
- 培訓(xùn)機(jī)構(gòu)職工大會
- 建筑工程補(bǔ)充協(xié)議付款方式
- 企業(yè)并購后權(quán)益共享協(xié)議
- 廣告行業(yè)居間合同
- 消防安全培訓(xùn)實施指南
- 法院免還協(xié)議書
- 轉(zhuǎn)讓全閑置合同協(xié)議
- 水源保潔協(xié)議書
- Festo氣動基礎(chǔ)知識介紹
- 吊裝作業(yè)票(樣本)
- InfoQ:2023中國企業(yè)數(shù)字化人才發(fā)展白皮書
- 物流管理專業(yè)畢業(yè)答辯論文答辯PPT模板
- 乒乓球-循環(huán)賽積分表人-人
- 胸腔積液診斷的中國專家共識(2022版)解讀
- 數(shù)學(xué)競賽之平面幾何課件
- 浙江省臺州市2022-2023學(xué)年高二下學(xué)期期末物理試題
- HIV實驗室SOP文件-新版
- 孤獨癥兒童評估填寫范例(一表兩圖)
- 【九年級】北京市豐臺區(qū)初三一模數(shù)學(xué)試卷及答案
評論
0/150
提交評論