數(shù)據(jù)庫基礎(chǔ)理論與基本操作_第1頁
數(shù)據(jù)庫基礎(chǔ)理論與基本操作_第2頁
數(shù)據(jù)庫基礎(chǔ)理論與基本操作_第3頁
數(shù)據(jù)庫基礎(chǔ)理論與基本操作_第4頁
數(shù)據(jù)庫基礎(chǔ)理論與基本操作_第5頁
已閱讀5頁,還剩293頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本資料來源,目錄,第1章Visual FoxPro基礎(chǔ) 第2章數(shù)據(jù)與數(shù)據(jù)運算 第3章數(shù)據(jù)庫操作 第4章查詢與視圖 第5章程序設(shè)計基礎(chǔ),第6章面向?qū)ο蟪绦蛟O(shè)計 第7章表單 第8章報表 第9章菜單 第10章項目與項目管理器 第11章小型系統(tǒng)開發(fā)實例,第一章,數(shù)據(jù)庫基礎(chǔ)理論,返回目錄,本章要點,信息、數(shù)據(jù)和數(shù)據(jù)處理 數(shù)據(jù)模型 數(shù)據(jù)庫系統(tǒng) 關(guān)系數(shù)據(jù)庫及其設(shè)計,返回目錄,1.1 信息、數(shù)據(jù)和數(shù)據(jù)處理,1.1.1 信息與數(shù)據(jù) 信息:是對客觀世界的抽象描述。 數(shù)據(jù):數(shù)據(jù)是用于記錄客觀事物屬性的 物理符號,數(shù)據(jù):包括文本形式數(shù)據(jù)和多媒體數(shù)據(jù) 如:聲音和視頻、圖片等,1、從信息處理角度看,任何事物的屬性都是通過

2、數(shù)據(jù)來表示,數(shù)據(jù)經(jīng)過加工處理后,從而形成信息。 2、從計算機的角度看,數(shù)據(jù)泛指那些可以被計算機接受并能夠被計算機識別處理的符號。 3、總之,信息是有用的數(shù)據(jù),數(shù)據(jù)是信息的表現(xiàn)形式,信息是通過數(shù)據(jù)符號來傳播的,數(shù)據(jù)與信息的區(qū)別,數(shù)據(jù)處理是指利用計算機將數(shù)據(jù)轉(zhuǎn)換成信息的過程,包括對數(shù)據(jù)的收集、存儲、加工、分類、排序、檢索、傳播等一系列活動。 其目的是從大量的原始數(shù)據(jù)中抽取和推導出有價值的信息,作為決策的依據(jù),1.1.2 數(shù)據(jù)處理,信息、數(shù)據(jù)與數(shù)據(jù)處理的關(guān)系可用下式簡單表示: 信息 = 數(shù)據(jù) + 數(shù)據(jù)處理 數(shù)據(jù)是原料(輸輸入),信息是產(chǎn)出(輸出),“信 息處理” 則是為了產(chǎn)生信息而處理數(shù)據(jù),1.1.

3、3 數(shù)據(jù)管理技術(shù)(可分為3個階段,1人工管理階段(20世紀50年代中期以前) 特點:數(shù)據(jù)不長期保存,沒有對數(shù)據(jù)進行管理的軟 件,一組數(shù)據(jù)對應(yīng)于一個程序,2文件系統(tǒng)階段,時間:20世紀50年代后期至60年代。 特點 :數(shù)據(jù)以文件形式長期保存;數(shù)據(jù)與程序有一定的獨立性。 缺點 :數(shù)據(jù)冗余度大 ;數(shù)據(jù)獨立性差;缺乏對數(shù)據(jù)的統(tǒng)一控制管理,圖示,3數(shù)據(jù)庫系統(tǒng)管理階段,時間:20世紀60年代后期開始 特點:(1)有了數(shù)據(jù)庫管理系統(tǒng)(DBMS) (Database Management System)。 (2)面向全局。 (3)具有較高的數(shù)據(jù)獨立性 (4)有統(tǒng)一的數(shù)據(jù)控制功能,圖示,數(shù)據(jù)庫系統(tǒng)管理階段即對所

4、有的數(shù)據(jù)實行統(tǒng)一規(guī)劃管理,形成一個數(shù)據(jù)中心,構(gòu)成一個數(shù)據(jù)“倉庫,1.2 數(shù)據(jù)模型,數(shù)據(jù)模型是對客觀事物及其聯(lián)系的數(shù)據(jù)描述,反映實體內(nèi)部和實體之間的聯(lián)系。 1.2.1 實體及其聯(lián)系 1、實體 從數(shù)據(jù)處理的角度看,現(xiàn)實世界中的客觀事物稱為實體,2. 實體間的聯(lián)系 實體之間的對應(yīng)關(guān)系稱為聯(lián)系,它反映了現(xiàn)實世界事物之間的相互關(guān)聯(lián)。 1)一對一聯(lián)系(1:1) 2)一對多聯(lián)系(1:n) 3)多對多聯(lián)系(m:n,1.2.2 具體數(shù)據(jù)模型,在數(shù)據(jù)庫系統(tǒng)中,常用的數(shù)據(jù)模型有: 層次模型 網(wǎng)絡(luò)模型 關(guān)系模型,1.2.1 層次模型,1層次模型:層次模型用樹形結(jié)構(gòu)來表示實體及其之間的聯(lián)系。特點: 1)有一個結(jié)點沒有父

5、親,稱為根結(jié)點。 2)其它結(jié)點有且僅有一個父親。 實體之間的聯(lián)系是1:M聯(lián)系(包括1:1聯(lián)系,層次結(jié)構(gòu)圖示,實例,層次模型優(yōu)點:層次清晰、構(gòu)造簡單、易于實現(xiàn)1:1和1:M的實體聯(lián)系。 采用層次模型來設(shè)計的數(shù)據(jù)庫稱為層次數(shù)據(jù)庫,2、網(wǎng)狀模型,是用以實體型為結(jié)點的有向圖來表示各 實體及其之間的聯(lián)系。特點: 1) 可以有一個以上的結(jié)點無父親。 2) 至少有一個結(jié)點有多于一個的父親。 能表示 M:N 聯(lián)系。 缺點:編寫應(yīng)用程序復(fù)雜,模型結(jié)構(gòu)復(fù)雜,圖示,圖示,關(guān)系模型 是用二維表格來表示實體及其相互之間的聯(lián)系。在關(guān)系模型中,把實體集看成一個二維表,每一個二維表稱為一個關(guān)系。每個關(guān)系均有一個名字,稱為關(guān)系

6、名,3.關(guān)系模型,關(guān)系模型圖例,元組 (記錄值,屬性(數(shù)據(jù)項,表頭,學生成績關(guān)系,后退,(1) 關(guān)系中每一分量不可再分,是最基本的數(shù)據(jù)單位; (2) 每一豎列的分量是同屬性的,列數(shù)根據(jù)需要而設(shè),且各列的順序是任意的; (3) 每一橫行由一個個體事物的諸多屬性構(gòu)成,且各行的順序可以是任意的; (4) 一個關(guān)系是一張二維表,不允許有相同的屬性名,也不允許有相同的元組,關(guān)系模型的主要特點,1.3 數(shù)據(jù)庫系統(tǒng),1.3.1 數(shù)據(jù)庫 數(shù)據(jù)庫(Data Base)是數(shù)據(jù)庫系統(tǒng)的核心和管理對象,所謂數(shù)據(jù)庫,就是以一定的組織方式將相關(guān)的數(shù)據(jù)組織在一起,存放在計算機外存儲器上形成的,能為多個用戶共享的,與應(yīng)用程序

7、彼此獨立的一組相關(guān)數(shù)據(jù)的集合,1、 數(shù)據(jù)庫系統(tǒng)的組成 數(shù)據(jù)庫系統(tǒng)DBS(Database System)是由計算機硬件、軟件、 數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)有關(guān)人員組成。是具有高度組織性的總體,1.3.2 數(shù)據(jù)庫管理系統(tǒng),硬件及軟件構(gòu)成,1. 硬件 除要求CPU的處理速度高、內(nèi)存容量大以外,還要求有足夠的外存空間以存儲數(shù)據(jù)庫中的數(shù)據(jù),2. 軟件 數(shù)據(jù)庫系統(tǒng)中的軟件包括操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫應(yīng)用系統(tǒng)等,數(shù)據(jù)庫管理系統(tǒng)DBMS,DBMS(DataBase Management System)是數(shù)據(jù)庫系統(tǒng)的核心軟件之一。 主要目標是使數(shù)據(jù)成為方便用戶使用的資源,易于為各種用戶所共享,并增進數(shù)據(jù)的安全

8、性、完整性和可用性。它提供數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)庫管理、數(shù)據(jù)庫建立和維護以及通信等功能,現(xiàn)今流行的DBMS,目前較流行的數(shù)據(jù)庫管理系統(tǒng)有:Oracle、Sybase、SQLServer、Access、Visual Foxpro等,數(shù)據(jù)庫中的數(shù)據(jù)由DBMS進行統(tǒng)一管理和控制,用戶對數(shù)據(jù)庫進行的各種數(shù)據(jù)操作都是通過DBMS實現(xiàn)的,數(shù)據(jù)庫系統(tǒng)的組成示意圖,1.4 關(guān)系數(shù)據(jù)庫及其設(shè)計,1.4.1 關(guān)系數(shù)據(jù)庫 關(guān)系數(shù)據(jù)庫(Relational Data Base)是若干個關(guān)系的集合。也可以說,關(guān)系數(shù)據(jù)庫是由若干張二維表組成的。 在關(guān)系數(shù)據(jù)庫中,將一個關(guān)系視為是一張二維表,又稱其為數(shù)據(jù)表。 一個關(guān)系數(shù)據(jù)

9、庫由若干個數(shù)據(jù)表組成,數(shù)據(jù)表又由若干個記錄組成,而每一個記錄是由若干個以字段屬性加以分類的數(shù)據(jù)項組成的,關(guān)系 模型理論與關(guān)系數(shù)據(jù)庫中術(shù)語的對照關(guān)系,在數(shù)據(jù)表中,若某一字段或幾個字段的組合值能夠標識一個記錄,則稱其為關(guān)鍵字(或鍵),當一個數(shù)據(jù)表有多個關(guān)鍵字時,可從中選出一個作為主關(guān)鍵字(或主鍵)。見表,關(guān)鍵字及主鍵,在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)表之間是具有相關(guān)性的。數(shù)據(jù)表之間的這種相關(guān)性是依靠每一個獨立的數(shù)據(jù)表內(nèi)部具有相同屬性的字段建立的。一般地,兩個數(shù)據(jù)表之間建立關(guān)聯(lián)關(guān)系,是將一個數(shù)據(jù)表視為父表,另外一個數(shù)據(jù)表視為子表,其中子表中與父表主關(guān)鍵字段相對應(yīng)的字段作為外鍵,數(shù)據(jù)表之間的關(guān)聯(lián)就是通過主鍵與外鍵

10、作為紐帶實現(xiàn)關(guān)聯(lián)的。見表,數(shù)據(jù)表之間的關(guān)聯(lián),在關(guān)系數(shù)據(jù)庫中,數(shù)據(jù)表為基本文件,每個數(shù)據(jù)表之間具有獨立性,而且若干個數(shù)據(jù)表間又具有相關(guān)性,使得數(shù)據(jù)操縱方式簡單,這一特點使其具有極大的優(yōu)越性,并能得以迅速普及,表1-4 信息中心專門人才基本情況一覽表,1.4.2 關(guān)系的規(guī)范化,專門人才基本情況一覽表(如表1-5所示),它收入了自然情況。 專門人才專業(yè)特長一覽表(如表1-6所示),它收入了專業(yè)特長情況。 專門人才成就成果情況一覽表(如表1-7所示),它收入了成就及成果情況,構(gòu)建數(shù)據(jù)表,表5 信息中心專門人才基本情況一覽表,表1-6 信息中心專門人才專業(yè)特長一覽表,表1-7 信息中心專門人才成就成果一

11、覽表,專門人才基本情況數(shù)據(jù)庫,如何反映客觀事物數(shù)據(jù)間的多種對應(yīng)關(guān)系?通常將對應(yīng)數(shù)據(jù)表放入同一個數(shù)據(jù)庫中,并建立表間關(guān)聯(lián)來刻畫聯(lián)系。 在同一個數(shù)據(jù)庫中,相關(guān)聯(lián)的表間關(guān)系的類型有一對一、一對多和多對一3種關(guān)系,1.4.3 表間關(guān)聯(lián)關(guān)系的類型,1一對一關(guān)系 一對一關(guān)系即在兩個數(shù)據(jù)表中選一個相同屬性字段作為關(guān)鍵字段,把其中一個數(shù)據(jù)表中的關(guān)鍵字段稱為主關(guān)鍵字段,該字段值是唯一的,而另一個數(shù)據(jù)表中的關(guān)鍵字段稱為外來關(guān)鍵字段,該字段值也是唯一的,一對一(編號,后退到,到,到,到,2一對多關(guān)系 一對多關(guān)系,即在兩個數(shù)據(jù)表中選一個相同屬性字段作為關(guān)鍵字段,把其中一個數(shù)據(jù)表的關(guān)鍵字段稱為主關(guān)鍵字段,該字段值是唯一

12、的,而把另一個數(shù)據(jù)表中的關(guān)鍵字段稱為外來關(guān)鍵字段,該字段值是重復(fù)的,一對多(編號,到,到,3多對一關(guān)系 多對一關(guān)系與一對多關(guān)系是類似的,唯一的區(qū)別是在兩個相關(guān)聯(lián)的數(shù)據(jù)表中,選擇哪一個數(shù)據(jù)表中的關(guān)鍵字段為主關(guān)鍵字段,該字段值是重復(fù)的,與它關(guān)聯(lián)的另一個數(shù)據(jù)表中的關(guān)鍵字段為外來關(guān)鍵字段,該字段值是唯一的,多對一(編號,關(guān)系的完整性,即關(guān)系中的數(shù)據(jù)及具有關(guān)聯(lián)關(guān)系的數(shù)據(jù)間必須遵循的制約和依存關(guān)系,以保證數(shù)據(jù)的正確性、有效性和相容性。 關(guān)系的完整性主要包括域完整性、實體完整性和參照完整性三種,1.4.4 關(guān)系的完整性,1域完整性 域完整性是對數(shù)據(jù)表中字段屬性的約束,它包括字段的值域、字段的類型及字段的有效

13、規(guī)則等約束,它是由確定關(guān)系結(jié)構(gòu)時所定義的字段的屬性決定的。 見表,2實體完整性 實體完整性是對關(guān)系中的記錄唯一性,也就是主鍵的約束。準確地說,實體完整性是指關(guān)系中的主屬性值不能為Null且不能有相同值。見表,3參照完整性 參照完整性是對關(guān)系數(shù)據(jù)庫中建立關(guān)聯(lián)關(guān)系的數(shù)據(jù)表間數(shù)據(jù)參照引用的約束,也就是對外鍵的約束。準確地說,參照完整性是指關(guān)系中的外鍵必須是另一個關(guān)系的主鍵有效值,或者是NULL。見表,關(guān)系運算是以關(guān)系為運算對象的運算,在關(guān)系運算中,變量是關(guān)系,運算結(jié)果仍然是關(guān)系。 常見的關(guān)系運算有選擇運算、投影運算和連接運算三種,1.4.5 關(guān)系運算,1選擇(Select) 選擇運算是從關(guān)系中選擇某

14、些滿足條件的記錄組成一個新的關(guān)系。也可以說,選擇運算是在關(guān)系R中選擇滿足給定條件的元組。見表,2投影(Projec) 投影運算是從關(guān)系中選擇某些字段的所有值組成一個新的關(guān)系。也可以說,投影運算是在關(guān)系R中選擇出若干屬性列。見表,3連接(Join) 連接運算是將兩個或多個關(guān)系通過連接條件組成一個新的關(guān)系。也可以說,連接運算是在關(guān)系R和關(guān)系S中選擇屬性間滿足一定條件的元組。見表,表1 選修數(shù)據(jù)庫學生成績,選擇(成績(數(shù)據(jù)庫)=90,投影(表1.學號,表1.成績,連接(表1.學號=表2.學號,表2 選修法律學生成績,關(guān)系運算實例,到58,到59,到60,本章小結(jié),第1章 數(shù)據(jù)庫基礎(chǔ)理論,1、數(shù)據(jù)庫的

15、3種模型 2、數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、DBMS的概念 3、關(guān)系數(shù)據(jù)庫的相關(guān)概念 4、關(guān)系的完整性 5、關(guān)系的運算,no2,復(fù)習,數(shù)據(jù)庫管理發(fā)展階段,人工管理階段、文件、數(shù)據(jù)庫,數(shù)據(jù)庫系統(tǒng)組成,軟件、硬件、數(shù)據(jù)庫管理人員,數(shù)據(jù)模型,實體、屬性、聯(lián)系,數(shù)據(jù)模型分類,層次、網(wǎng)絡(luò)、關(guān)系,關(guān)系數(shù)據(jù)庫,關(guān)系模型,元組(行、紀錄),屬性(列,字段,關(guān)系運算,選擇、投影、聯(lián)結(jié),Visual FoxPro系統(tǒng)概述,本章要點,Visual FoxPro的安裝與啟動 Visual FoxPro系統(tǒng)環(huán)境的配置 Visual FoxPro用戶界面 Visual FoxPro向?qū)?Visual FoxPro生成器 Visua

16、l FoxPro設(shè)計器,2.1Visual FoxPro的安裝與啟動,2.1.1 安裝環(huán)境 2.1.2 Visual FoxPro 的安裝,啟動Visual FoxPro有多種方法,可采用以下三種方式之一。 1從“開始”菜單啟動 2從資源管理器中啟動 3從“運行”對話框中啟動,2.1.3 啟動Visual FoxPro,在Microsoft Visual FoxPro主菜單中,打開“文件”菜單,選擇“退出”選項; 按Alt+F4組合鍵; 按Ctrl+Alt+Del組合鍵,進入“關(guān)閉程序”窗口,按“結(jié)束任務(wù)”按鈕; 在Microsoft Visual FoxPro的系統(tǒng)環(huán)境窗口,單擊其右上角的“

17、退出”按鈕; 在“命令”窗口,輸入命令Quit,2.1.4 退出Visual FoxPro,2.2Visual FoxPro系統(tǒng)環(huán)境的配置,Visual FoxPro系統(tǒng)環(huán)境的配置,決定了Visual FoxPro系統(tǒng)的操作環(huán)境和工作方式。 Visual FoxPro系統(tǒng)允許用戶設(shè)置大量參數(shù)控制其工作方式。通過設(shè)置系統(tǒng)環(huán)境,可以添加或刪除Visual FoxPro控件、更新Windows Registry注冊項、改變選項欄和工具欄、安裝ODBC數(shù)據(jù)源等,系統(tǒng)環(huán)境配置操作步驟,工具,選項,常規(guī),數(shù)據(jù),顯示,文件位置,表單,項目,控件,確定,2. Visual FoxPro用戶界面,2.1 Vis

18、ual FoxPro的界面 Visual FoxPro界面,是由標欄、菜單欄、工具欄、工作區(qū)、狀態(tài)欄和命令窗口組成的,2.2 標題欄,標題欄位于屏幕界面的第一行,它包含系統(tǒng)程序圖標、主屏幕標題、最小化按鈕、最大化按鈕和關(guān)閉按鈕5個對象,菜單欄,工具欄,命令窗口,狀態(tài)欄,工作區(qū),標題欄,Visual FoxPro菜單項的功能 (1) “文件”菜單 (2) “編輯”菜單 (3) “顯示”菜單 (4) “格式”菜單 (5) “工具”菜單 (6) “程序”菜單 (7) “窗口”菜單 (8) “幫助”菜單,2.3 菜單欄,Visual FoxPro系統(tǒng)提供了11種常用的工具欄: (1)常用工具欄 (2)

19、布局工具欄 (3)表單控件工具欄 (4)表單設(shè)計器工具欄 (5)查詢設(shè)計器工具欄 (6)視圖設(shè)計器工具欄 (7)數(shù)據(jù)庫設(shè)計器工具欄(8)報表控件工具欄 (9)報表設(shè)計器工具欄 (10)調(diào)色板工具欄 (11)打印預(yù)覽工具欄,2.4.4 工具欄,激活工具欄的操作步驟,顯示,工具欄,常用,確定,命令窗口位于菜單欄和狀態(tài)欄之間,是Visual FoxPro系統(tǒng)命令執(zhí)行、編輯的窗口。 在“窗口”菜單下,選擇“隱藏”,可以關(guān)閉命令窗口;選擇“命令窗口”,可以彈出命令窗口,2.4.5 命令窗口,狀態(tài)行位于屏幕的最底部,用于顯示某一時刻的管理數(shù)據(jù)的工作狀態(tài)。 (1) Set Status off/ on,可控

20、制屏幕上的狀態(tài)行是否出現(xiàn)。 (2) 當前工作區(qū)中表文件打開后,狀態(tài)行顯示將顯示該表的相關(guān)內(nèi)容,2.4.6 工作區(qū)與狀態(tài)行,2.5 Visual FoxPro向?qū)?用戶通過系統(tǒng)提供的各種不同的向?qū)гO(shè)計器,不用編程就可以創(chuàng)建良好的應(yīng)用程序界面,并完成許多有關(guān)對數(shù)據(jù)庫的操作。 常用的向?qū)гO(shè)計器有:表向?qū)?、表單向?qū)?、報表向?qū)?、查詢向?qū)?等,2.6 Visual FoxPro生成器,Visual FoxPro系統(tǒng)提供的生成器,可以簡化創(chuàng)建和修改用戶界面程序的設(shè)計過程,提高軟件開發(fā)的質(zhì)量。每個生成器都由一系列選項卡組成,允許用戶訪問并設(shè)置所選對象的屬性。 常用的生成器有:組合框生成器、命令組生成器、表達式

21、生成器、列表框生成器等,2.7 Visual FoxPro設(shè)計器,系統(tǒng)提供的設(shè)計器,為用戶提供了一個友好的圖形界面。用戶可以通過它創(chuàng)建并定制數(shù)據(jù)表結(jié)構(gòu)、數(shù)據(jù)庫結(jié)構(gòu)、報表格式和應(yīng)用程序組件等。 常用的設(shè)計器有:表設(shè)計器、查詢設(shè)計、視圖設(shè)計器、列表框生成器、報表設(shè)計器、數(shù)據(jù)庫設(shè)計器、菜單設(shè)計器等。,本章小結(jié),第章 系統(tǒng)概述,熟悉的用戶界面,掌握各組成部分的大致功能 如何設(shè)置系統(tǒng)的系統(tǒng)環(huán)境,第2章,數(shù)據(jù)與數(shù)據(jù)運算,本章要點,數(shù)據(jù)類型 數(shù)據(jù)存儲 函數(shù) 表達式,2.1 數(shù)據(jù)類型,概念: 數(shù)據(jù)記錄了客觀事物的屬性,包括兩個方 面:數(shù)據(jù)內(nèi)容和數(shù)據(jù)形式 。前者是數(shù)據(jù)的值, 后者是數(shù)據(jù)的存儲形式和使用方式,也稱

22、為數(shù) 據(jù)類型,字符型,數(shù)據(jù)類型,不能進行算術(shù)運算 用字母C表示 包括一切可打印字符,例如,中文字符、英文字符、數(shù)字字符和其他ASCII字符等 長度(即字符個數(shù))范圍為0254,每個字符占一個字節(jié),數(shù)值型,數(shù)據(jù)類型,表示數(shù)量并可以進行算術(shù)運算 用字母N表示 數(shù)值型數(shù)據(jù)在內(nèi)存中占用8個字節(jié),數(shù)據(jù)長度(即數(shù)據(jù)位數(shù))為120位,貨幣型,用來存儲貨幣值 用字母Y表示 默認保留4位小數(shù),占用8字節(jié)存儲空間,數(shù)據(jù)類型,日期型,日期型數(shù)據(jù)表示不帶時間的日期數(shù)據(jù) 用字母D表示 長度固定為8個字節(jié),年月日之間的分隔符占一個字節(jié),數(shù)據(jù)類型,日期時間型,表示日期和時間的數(shù)據(jù) 用字母T表示 長度固定為8個字節(jié),數(shù)據(jù)類型

23、,邏輯型,描述客觀事物真假 ,表示邏輯判斷的結(jié)果 用字母L表示 長度固定為1個字節(jié),數(shù)據(jù)類型,備注型,用于存放較多字符型數(shù)據(jù)(超過254個字符)或者長度不一的字符型數(shù)據(jù) 用字母M表示 備注型數(shù)據(jù)只能作為數(shù)據(jù)表中備注型字段的值 備注型字段長度固定為4個字節(jié),這4個字節(jié)存儲的是實際數(shù)據(jù)在.fpt文件中的存儲位置,數(shù)據(jù)類型,通用型,數(shù)據(jù)類型,存儲OLE(對象鏈接與嵌入)對象 (比如:電子表格、文檔、圖形、聲音 ) 用字母G表示 只能用于數(shù)據(jù)表中的字段類型定義 通用型數(shù)據(jù)字段長度固定為4個字節(jié),實際數(shù)據(jù)存放在與表文件同名的備注文件(.fpt)中,整型/浮點型/雙精度型,都具有數(shù)值特征 都只能用于字段變

24、量 浮點型用字母F表示,功能上與數(shù)值型等價。 雙精度型提供更高的數(shù)據(jù)精度 ,每個雙精度型數(shù)據(jù)占8個字節(jié) 整型用于存儲無小數(shù)部分的數(shù)值 ,整型字段占4個字節(jié) ,用字母I表示,數(shù)據(jù)類型,常量與變量,常量是以直觀的數(shù)據(jù)形態(tài)和意義的形式出現(xiàn)的數(shù)據(jù),其值保持不變。按常量取值的數(shù)據(jù)類型,可將常量分為6種類型,變量是在操作過程中其值可以被改變的數(shù)據(jù)對象,必須在對其賦值之后才能使用。詳細講解,字符型常量,用規(guī)定的定界符括起來的一串字符,又稱為字符串 字符串定界符有單引號( )、雙引號( )、方括號( )三種 定界符內(nèi)沒有任何字符就是空串( ) 選出正確的字符型常量:3*9 hello 你好 Iam a stu

25、dent,數(shù)值型常量,由阿拉伯數(shù)字、小數(shù)點和正負號組成 沒有定界符,可以是整數(shù)和小數(shù),不能直接表示分數(shù) 兩種表示方法:小數(shù)形式和指數(shù)形式 正確:117、-12.5、2.1E3(表示2.1*1000) 錯誤:117、1/5,貨幣型常量,貨幣型常量的書寫格式與數(shù)值型常量類似,但要加上一個前置的$ ,例如$1000 貨幣型數(shù)據(jù)在存儲和計算時,采用4位小數(shù) ,不能采用指數(shù)形式 。例如,貨幣型常量$3.1415926,將存儲為$3.1416,日期型常量,定界符為花括號( 或者 ) 輸入格式為yyyy/mm/dd(唯一,例如:2006/10/18) 年月日之間用分隔符隔開,分隔符可以是“/” 、“-” 、

26、“.” 等符號 輸出顯示格式有多種,具體使用哪一種格式主要與日期格式的設(shè)置相關(guān),日期的默認顯示格式是mm/dd/yyyy,嚴格的日期格式,日期時間型常量,定界符也為花括號( 或者 ) 輸入格式為yyyy/mm/dd,hh:mm:ssa|p,例如:2006/02/10 22:22:22 p 其分隔符與日期型數(shù)據(jù)分隔符相同,時分秒之間用“ :”分隔 輸出顯示格式有多種,具體使用哪一種格式主要與日期格式的設(shè)置相關(guān),日期時間的默認顯示格式為 :mm/dd/yyyy , hh:mm:ssa|p ,例如,09/01/2005 11:45:30 pm,嚴格的日期與時間格式,邏輯型常量,邏輯型常量只有“真”和

27、“假”兩種值 定界符為圓點(. .) 邏輯真用.T.、.t.、.Y.或.y.表示,邏輯假用.F.、.f.、.N.或.n.表示。 注意:字母前后的圓點不能省略,變量,常量與變量,概念,命名規(guī)則,字段變量,內(nèi)存變量,變量實質(zhì)是具有某一地址的存儲單元 ,該地址被賦以名字,通過名字可以訪問和存取該地址中的值,這個指向某個地址的名字就是變量名,1) 只能使用字母、漢字、下劃線和數(shù)字命名。 (2) 命名必須以字母、漢字或下劃線開頭。除自由表中字段名、索引的TAG標識名最多只能10個字符外,其他的命名可使用1128個字符。 (3) 不可與系統(tǒng)保留字同名。例如,for、quit、list等系統(tǒng)保留字,a2b、

28、年齡、Dept_3 2ab、*B、for、a,字段變量指表中的字段,是一種多值變量,其值是表記錄指針當前所指的那條記錄對應(yīng)字段的值,可以是任意數(shù)據(jù)類型,內(nèi)存變量是一種獨立于表,并使用臨時工作單元的變量,用戶退出VFP或關(guān)機就會消失。 內(nèi)存變量的類型一般是常用的六種。用內(nèi)存變量名實現(xiàn)對內(nèi)存變量的訪問,如果內(nèi)存變量與字段變量同名,則在調(diào)用該內(nèi)存變量時應(yīng)在內(nèi)存變量名前加上符號“M.”或“M-” 。例如,M.姓名表示內(nèi)存變量“姓名”的值,備注型、通用型、整型、浮點型、雙精度型、二進制字符型和二進制備注型等數(shù)據(jù)類型只能用于字段變量中,內(nèi)存變量,內(nèi)存變量的賦值 命令格式1:= 命令格式2:STORE TO

29、 例子:a=.t. AND 性別“男” 顯示:.T. 解析:這是將三個關(guān)系表達式用邏輯運算符連接起來構(gòu)成的邏輯表達式,主要是清楚三個邏輯運算符之間的優(yōu)先級問題,4)SET EXACT ON A湖南長沙 BALEFT(A,4) ?IIF(B, 長沙,北京) 顯示:北京 解析:BALEFT(A,4)是一個賦值語句,是將關(guān)系表達式ALEFT(A,4)的值賦給變量B,因為ALEFT(A,4)左邊的值為“湖南長沙”,右邊為“湖南” ,而且是精確比較,所以其值是邏輯假,故B=.F.,例3】學生表的結(jié)構(gòu)如下: 學生(學號 C 6,姓名 C 10,性別 C 2 ,出生日 期 D,少數(shù)民族否 L,籍貫 C 10

30、,入學成績 N 5.1,簡歷 M,照片 G) 針對學生表,寫出下列條件: (1)姓“張”的學生。 (2)20歲以下的學生。 (3)家住湖南或湖北的學生。 (4)漢族學生。 (5)入學成績在580分以上的湖南或湖北的學生。 (6)20歲以下的少數(shù)民族學生,1)姓“張”的學生 條件1:AT(張,姓名)=1 條件2:SUBSTR(姓名,1,2)=張 條件3:姓名=張 (2)20歲以下的學生 條件1:DATE()-出生日期0,4)漢族學生 條件1:NOT 少數(shù)民族否 條件2:少數(shù)民族否.F. 條件3:IIF(少數(shù)民族否,少數(shù)民族,漢族)=漢族 (5)入學成績在580分以上的湖南或湖北的學生 條件1:入

31、學成績580 AND “湖” $ 籍貫 條件2:入學成績580 AND (籍貫=“湖南” OR 籍貫=湖北) 由于AND運算優(yōu)先級比OR要高,為了保證先做OR運算,條件2中的括號是必不可少的。 (6)20歲以下的少數(shù)民族學生 YEAR(DATE()-YEAR(出生日期)=20 AND 少數(shù)民族否,No 3,數(shù)據(jù)類型:字符型C,數(shù)值型N,貨幣型Y,邏輯型L,通用型G,備注型M,日期型D,時間型T VARTYPE中:U未定義,X null值,O對象型 變量: STORE TO ? |? 數(shù)組 DIMENSON (下標1,下標2,表達式,函數(shù),數(shù)值型 字符型 日期時間型 數(shù)據(jù)類型轉(zhuǎn)換型 測試型,第3

32、章,數(shù)據(jù)庫 數(shù)據(jù)表 索引和排序 數(shù)據(jù)完整性 多工作區(qū)操作,主要內(nèi)容,3.1 創(chuàng)建數(shù)據(jù)庫,1 建立數(shù)據(jù)庫 Create DataBase,創(chuàng)建數(shù)據(jù)庫的操作步驟,文件,新建,數(shù)據(jù)庫,新建文件,數(shù)據(jù)庫設(shè)計器,保存,數(shù)據(jù)庫名,確定,2 打開數(shù)據(jù)庫 Open DataBase Modify DataBase,關(guān)閉數(shù)據(jù)庫 close DataBase 關(guān)閉數(shù)據(jù)庫和除主窗口外的窗口 close all,修改數(shù)據(jù)庫 MODIFY DataBase 刪除數(shù)據(jù)庫 DELETE DataBase DELETE TABLES參數(shù)表示數(shù)據(jù)表也刪除,數(shù)據(jù)庫添加數(shù)據(jù)表的操作步驟,文件,打開,數(shù)據(jù)庫,數(shù)據(jù)庫設(shè)計器,添加表,打

33、開,數(shù)據(jù)庫設(shè)計器,添加表,打開,保存,通常數(shù)據(jù)表只能屬于一個數(shù)據(jù)庫文件,如果想向當前數(shù)據(jù)庫中添加的表已被添加到了別的數(shù)據(jù)庫中,則必須先將其從其他數(shù)據(jù)庫中移去后才能添加到當前數(shù)據(jù)庫中,命令方式,自由表加入數(shù)據(jù)庫Add table 先要打開數(shù)據(jù)庫 數(shù)據(jù)庫表移出數(shù)據(jù)庫remove table,表的基本操作包括:數(shù)據(jù)表的建立與維護,表結(jié)構(gòu)的顯示與修改,記錄的顯示、追加、定位、插入、修改與刪除,數(shù)據(jù)表的復(fù)制,數(shù)據(jù)表的排序、索引、查詢,數(shù)據(jù)表統(tǒng)計與匯總以及多表操作等,VFP數(shù)據(jù)表基本操作,4.1.1 設(shè)計表的結(jié)構(gòu),建立表文件包括給表文件命名、建立表結(jié)構(gòu)、輸入數(shù)據(jù)記錄等,建立表結(jié)構(gòu)就是確定表文件中每一個字段

34、的字段名、字段類型、字段寬度、小數(shù)位數(shù)以及允許是否為空,1. 表文件的命名規(guī)則,2. 設(shè)計表文件結(jié)構(gòu),1)字段名(Field Name) 字段名是以漢字、字母或下劃線開頭,后面可以是漢字、字母、數(shù)字或下劃線組成,但不可以有空格,自由表的長度不超過10個字符。 (2). 字段類型(Type) 字段類型對應(yīng)于二維表格欄目填寫內(nèi)容的類型,是字段變量的類型,3).字段寬度(Width) 字段寬度用以表明該字段存放數(shù)據(jù)所需的寬度。用戶在建立表時,只有字符型、數(shù)值型、浮點型需要用戶輸入所需的寬度,其他類型字段的寬度由系統(tǒng)自動確定,4). 小數(shù)位(Dec) 只有數(shù)值型和浮點型字段才有小數(shù)位, 小數(shù)位的寬度是

35、015位。 (5).是否允許為空 表示是否允許該字段接受空值(NULL,4.1.2 建立表的結(jié)構(gòu),在Visual FoxPro中,可以采用二種方式創(chuàng)建一個表的結(jié)構(gòu),命令方式:使用Create命令,菜單方式:使用“文件”菜單中的“新建”命令,1. 命令方式,命令格式1: Create table (字段1 類型(長度), (字段2 類型(長度) 命令格式2: Create 功能:該命令用于在命令窗口中直接創(chuàng)建一個表。 注意:一個自由表,那么在執(zhí)行該命令時不能打開任何數(shù)據(jù)庫。否則,創(chuàng)建的是一個數(shù)據(jù)庫表,2. 菜單方式,通過菜單“文件”“新建”“表,4.1.3 輸入記錄,表結(jié)構(gòu)輸入或修改完成后單擊“

36、確定” ,保存表結(jié)構(gòu);系統(tǒng)提示“現(xiàn)在輸入數(shù)據(jù)記嗎?”,打入Y,表明立即輸入記錄內(nèi)容,否則表明僅僅建立了一空表文件。 特別注意備注和通用型數(shù)據(jù)的輸入,它們的輸入方法和其它類型數(shù)據(jù)的輸入有所不同,4.2表的顯示與維護,建立了表以后,需要對表進行維護,這包括表的修改、記錄的增加與刪除、表的復(fù)制等操作,通過這些操作保證表的合理性和正確性。為了及時了解表的變化需要對表進行顯示操作,4.2.1 表的打開與關(guān)閉,1 表的打開 (1)命令方式 USE表文件名NoupdateExclusiveShared 功能:該命令用于在指定的工作區(qū)打開指定的表。 說明:其中Noupdate指定以只讀方式打開表,Exclus

37、ive指定以獨占方式打開表,Shared指定以共享方式打開表,2)菜單方式,2. 關(guān)閉表,1.命令方式 命令格式: USE 命令功能:該命令用于關(guān)閉當前工作區(qū)中的表,2.菜單方式: 使用“數(shù)據(jù)工作期”窗口,4.2.2 表的顯示,一個表由兩部分組成:表結(jié)構(gòu)和表記錄,因此表的顯示就有兩類命令,分別顯示表結(jié)構(gòu)和表記錄,1. 表結(jié)構(gòu)的顯示,1.命令方式 命令格式:ListDisplay Structure to printer |to file 功能:查看數(shù)據(jù)表各字段的名字、類型、寬度等信息。 2.菜單方式 選擇”顯示”菜單表設(shè)計器選項,進入表設(shè)計器對話框, 可查看,2. 表記錄的顯示,List/Di

38、splay命令 命令格式: List | Display fields 范圍for whileto printer prompt |to file OFF 功能:顯示當前表中指定范圍內(nèi)符合條件的記錄的指定字段的內(nèi)容,范圍:有種限定方法 ALL NEXT RECORD REST,FOR與WHILE的區(qū)別: 其子句都為邏輯表達式,用來指定選 擇記錄的條件 但后者僅在當前記錄滿足條件的時候 開始依次篩選記錄,一旦遇到不滿足條件 的記錄時就停止篩選 OFF用于在顯示記錄時不顯示記錄號,4.2.3 表的修改,1.表結(jié)構(gòu)的修改 (1)命令方式 命令格式:modify structure 功能:修改當前打開

39、的表的結(jié)構(gòu),2)菜單方式 選擇”顯示”菜單表設(shè)計器選項,進入”表設(shè)計器”對話框,命令格式: BROWSE FIELDS,FOR|WHILE NOAPPENDNODELETENOEDIT | NOMODIFY 功能:以窗口方式顯示記錄,同時還能輸入和修改記錄。 菜單方式,2表記錄的修改Browse命令,1)FIELDS ,子句用于指定在瀏覽窗口中顯示哪些字段。 :R 用于設(shè)置相關(guān)字段為只讀。 :H=“字符表達式”表示將其前的字段用字符表達式代替,2)NOAPPEND不能用Ctrl+N鍵追加記錄,3)NODELETE不能用Ctrl+T鍵刪除記錄,命令說明,例】 在瀏覽窗口中,將Student表的s

40、tudid字段和name字段設(shè)置為只讀,那么應(yīng)執(zhí)行如下命令: USE Student BROW FIEL studid:R,name:R,sex,birthday,例】 在瀏覽窗口中,若要對Student表的studid字段和name字段分別設(shè)置字段標題:“學號”和“姓名”, 那么應(yīng)執(zhí)行如下命令: USE Student BROW FIEL studid:H=學號,name:H=姓名,3. 記錄的修改,1)CHANGE/EDIT命令 格式:CHANGE/EDIT FIELDS FOR|WHILE 功能:以全屏幕編輯方式修改記錄,2)REPLACE命令 格式:REPLACE FOR|WHILE

41、WITH ADDITIVE ,WITH ADDITIVE 功能:在指定范圍內(nèi),將滿足條件的記錄的指定字段用對應(yīng)表達式的值替換。 如果有for條件而且范圍缺省,則范圍表示為ALL. 如果沒有for條件,范圍缺省,則范圍表示為當前記錄,例】若要將Stud表婚否字段的數(shù)據(jù)“T”全部更新為“F”, 那么可以使用的命令,USE Student REPLACE 婚否 WITH .F. FOR 婚否=.T,4.2.4 表記錄指針的定位,1.記錄指針 對于表文件來說,記錄指針是一個重要的概念,每個打開的表文件均有一惟一的記錄指針,2記錄定位命令 (1)指針絕對定位 命令格式: GOTO|TOP|BOTTOM,

42、命令格式:Skip記錄數(shù) 功能:以當前記錄為基準,將記錄指針向前或向后移動,移動記錄個數(shù)由記錄數(shù)的值確定,為正時向后移動,為負時向前移動。若缺省記錄數(shù),則系統(tǒng)默認表達式值為1,2)指針相對定位,格式:LOCATE FOR |WHILE 功能:查找出所有符合條件的記錄并將指針指向第一條符合條件的記錄,若要繼續(xù),用CONTINUE命令。 注:若項缺省,則等價于all,后同,3)查詢定位,是按照某些條件在數(shù)據(jù)表中查找所需的記錄,4.2.5 表記錄的增加與刪除,1. 插入記錄 格式: INSERT BLANK BEFORE 功能:在指定的記錄前面或后面插入記錄。若無選擇項,則在指定記錄的后面插入記錄,

43、并提供編輯狀態(tài)。選擇BEFORE選項表示在指定記錄前面插入記錄,提供編輯狀態(tài)。選擇BLANK 則在指定記錄前面插入一條空白記錄,不提供編輯狀態(tài),2. 追加記錄 命令格式:APPEND BLANK 功能:在當前表文件的尾部追加記錄,追加的記錄需從鍵盤輸入。有可選項BLANK時表示在當前表文件的尾部追加一空記錄,記錄的刪除分邏輯刪除和物理刪除。邏輯刪除的記錄可以恢復(fù)(去掉刪除標記);物理刪除的記錄將無法恢復(fù)。 (1)邏輯刪除(給要刪除的記錄做刪除標記) 格式:DELETE FOR | WHILE 給指定范圍內(nèi)和滿足條件的記錄加刪除標記“,3. 刪除記錄,例】若要邏輯刪除Stud表中的第3條記錄,例

44、】若要邏輯刪除Stud表中的第3、4、5條記錄,USE Stud,USE Stud GO 3,GO 3,DELETE,DELETE NEXT 3,2) 取消刪除 格式:RECALL FOR 條件WHILE 條件 功能:取消指定范圍內(nèi)符合條件記錄前面的“*”號。省略和,則為恢復(fù)當前記錄,例】若要在Stud表的第3、4、5條記錄中恢復(fù)已做了邏輯刪除并且入學成績大于520的記錄,則命令為,USE Stud,GO 3,RECALL NEXT 3 FOR 入學成績520,3) 真正刪除記錄 (刪除有刪除標記的記錄) 格式:PACK 功能:將做刪除標記的數(shù)據(jù)真正刪除,并且重新整理記錄的排列順序。此命令必須

45、與DELETE連用,例】若要對Student表中已做了邏輯刪除的記錄進行物理刪除操作,則命令,USE Student PACK,4) 刪除全部記錄 格式:ZAP 功能:一次性刪除當前表文件中的所有記錄,USE Student zap,4.2.6 表的復(fù)制,1. 復(fù)制表 格式:COPY TO FIELDS FOR |WHILE 功能:把當前表文件中指定的記錄和字段復(fù)制成一個新的表文件。如果命令選項缺省,則復(fù)制所得的新的表文件為當前表文件的一個副本,2表文件結(jié)構(gòu)的復(fù)制 格式:COPY STRUCTURE TO FIELDS 功能:僅復(fù)制當前表文件的結(jié)構(gòu),不復(fù)制其中的數(shù)據(jù)。若有可選項FIELDS,則

46、新表文件結(jié)構(gòu)只包含其中指明的字段,同時也決定了這些字段在新表文件中的排列次序,格式:APPEND FROM 文件名 FIELDS 字段名表FOR 條件 WHILE 條件 功能:該命令將指定文件(源文件)中的數(shù)據(jù)添加到當前表的尾部,3 從其他文件向表添加數(shù)據(jù),將表的記錄數(shù)據(jù)傳送到數(shù)組 格式:SCATTER FIELDS 字段名表 TO 數(shù)組名 MEMO 功能:命令按順序?qū)斍氨懋斍坝涗浿付ㄗ侄蔚膬?nèi)容依次存入數(shù)組。第一個字段存入數(shù)組的第一個元素中,第二個字段存入數(shù)組的第二個元素中,依次類推,4. 表與數(shù)組間的數(shù)據(jù)傳送,2) 將數(shù)組數(shù)據(jù)傳送到表記錄 格式: GATHER FROM FIELDS ME

47、MO 功能:命令將數(shù)組中的數(shù)據(jù)作為一個記錄傳送到當前打開的表中的當前記錄,3) 把表的一批記錄同時復(fù)制到數(shù)組 格式: COPY TO ARRAY 數(shù)組名FIELDS 范圍FORWHILE 功能:命令將當前表指定記錄中指定字段的數(shù)據(jù)復(fù)制到指定的數(shù)組之中,4) 從數(shù)組向表添加記錄 格式: APPEND FROM ARRAY FOR FIELDS 功能:命令將滿足條件的數(shù)組行的數(shù)據(jù)按記錄形式依次添加到當前表中,但它忽略備注型字段。 注意一維數(shù)組與二維數(shù)組的區(qū)別,第一次上機內(nèi)容,1、熟悉VF環(huán)境 2、對常用函數(shù)進行練習 3、建表,如: 4、對上表進行基本操作:USE、LIST/DISPLAY、BROW

48、SE、INSERT、 APPEND、DELETE、PACK、LOCATE、GO TOP/BOTTOM/N、ZAP,4.3 表的排序與索引,排序與索引的概念及二者的區(qū)別。 重點:索引及其使用,排序(SORT):對表中的記錄進行物理排序。 格式: SORT TO ON /A|/D/C ,/A|/D/C ASCENDING|DESCENDING FORWHILE FIELDS,4.3.1 表的排序,功能:按給定的字段名值由大到小或由小到大的順序?qū)Ξ斍氨砦募匦屡帕校⑸梢粋€新的表文件,例 把stud.dbf中入學成績大于520的,按入學成績從高到低排序,保存在strxcj.dbf中,use stu

49、d Sort to strxcj on 入學成績/d for 入學成績480,use strxcj list,例 把stud.dbf表按入學成績(升序)、性別、姓名均按降序排列,保存在strxcj2.dbf中,use stud Sort to strxcj2 on 入學成績/a,性別,姓名 desc,use strxcj2 list,4.3.2 索引概述,1索引的概念 索引(INDEX):對表中的記錄進行邏輯排序。即另外形成一個索引關(guān)鍵表達式值與記錄號之間的對照表,這個對照表就是索引文件,索引文件是一個二維表,其中僅有二列數(shù)據(jù):關(guān)鍵字值和記錄的物理位置。關(guān)鍵字值是包含有字段的排序規(guī)則表達式,記

50、錄的物理位置指向關(guān)鍵字值在表中所在的物理位置,例如,在表4-1的Stud表中,根據(jù)入學成績的高低來建立索引文件。建立好的索引文件如表4-2所示,表4-1 Stud表中的記錄,表4-2根據(jù)入學成績字段建立的索引文件,注意:索引并未改變表中記錄的物理位置,僅僅改變了表中記錄的邏輯排序。但是,當用戶將建立好的索引文件打開以后,記錄的顯示順序或讀取處理記錄的順序?qū)凑账饕募帕械挠涗涰樞蜻M行。這樣大大提高了記錄的檢索速度。 可以為一個表同時建立多個索引文件,每個索引文件表示處理記錄的不同順序,2.索引文件的種類,單一索引文件的內(nèi)部結(jié)構(gòu)如圖4-1所示。單一索引文件的擴展名為.IDX,圖4-1 單一索

51、引文件結(jié)構(gòu),復(fù)合索引文件的內(nèi)部結(jié)構(gòu)如圖4-2所示。復(fù)合索引文件的擴展名為.CDX,圖4-2 復(fù)合索引文件結(jié)構(gòu),從圖中可以看到復(fù)合索引文件可以由多個關(guān)鍵字值和其對應(yīng)的多個記錄的物理位置構(gòu)成。每一個關(guān)鍵字值和其對應(yīng)的記錄的物理位置構(gòu)成了一個索引標識(TagName)。在復(fù)合索引文件中,每一個索引標識等價于一個單一索引文件。換句話說,復(fù)合索引文件等價于多個單一索引文件,結(jié)構(gòu)復(fù)合索引文件的文件名稱與相關(guān)的表同名,另外結(jié)構(gòu)復(fù)合索引文件將隨著相關(guān)表的打開而自動打開。 非結(jié)構(gòu)復(fù)合索引文件的文件名稱與相關(guān)的表不同名,另外非結(jié)構(gòu)復(fù)合索引文件不會隨著相關(guān)表的打開而自動打開,要由用戶自行打開,索引與排序的不同點,生

52、成的文件不是.dbf文件,不需占用單獨的工作區(qū),索引不改變原表文件中各記錄的物理順序,索引文件占用空間小,3.索引的類型(索引可分為4種類型,索引,主索引,候選索引,不允許在指定字段和表達式中出現(xiàn)重復(fù)值的索引。一個表可以建立多個候選索引,不允許在指定字段和表達式中出現(xiàn)重復(fù)值的索引。只有數(shù)據(jù)表才能建立,惟一索引,只在索引文件中保留第一次出現(xiàn)的索引關(guān)鍵字值,普通索引,存儲在.cdx結(jié)構(gòu)復(fù)合索引文件中,與表文件同時打開和關(guān)閉,可存儲在.cdx獨立復(fù)合索引文件和.idx單索引文件中,4.3.3 建立索引文件,一、菜單方式 二、命令方式:使用INDEX命令來建立索引 格式: INDEX ON TO,功能

53、:對當前表建立一個索引文件或增加索引標識,TAG OF FOR COMPACT ASENDING|DESCENDING UNIQUECANDIDATEADDITIVE,說明: (1)若給出TO 子句,則建立一個單索引文件。 若給出TAG ,則建立一個結(jié)構(gòu)復(fù)合索引文件,或為已建立并打開的復(fù)合索引文件增加索引標識。 OF 選項用于指定非結(jié)構(gòu)復(fù)合索引文件的名字,省略此選項時,表示建立結(jié)構(gòu)復(fù)合索引文件,2)COMPACT 參數(shù)僅在建立單一索引文件時使用。該參數(shù)用于為單一索引文件獲得壓縮處理快速存取索引文件技術(shù)的支持,從而大大提高單一索引文件的使用效率。 (3)ASCENDING|DESCENDING

54、參數(shù)用于指定復(fù)合索引文件的某一索引標識是按照升序(ASCENDING)還是降序(DESCENDING)方式進行排序,4)UNIQUE 參數(shù)用于建立唯一索引。也就是說對于擁有相同關(guān)鍵鍵值的若干條記錄而言,只有第一條記錄才會列入該索引文件中,其他具有此關(guān)鍵值的所有記錄都將被排除在該索引文件之外。 (5)CANDIDATE 參數(shù)用于建立候選索引。 (6)ADDITIVE 參數(shù)用于在建立新的索引文件時,已打開的其他索引文件仍保持打開狀態(tài),例】對stud表按入學成績升序建立索引文件,Use stud index on 入學成績 to cja List,建立單一索引文件,單一索引文件只能按照升序方式進行排

55、列,Use stud index on -入學成績 to cjd List,例】對stud表按入學成績降序建立索引文件,建立結(jié)構(gòu)復(fù)合索引,在INDEX命令中使用 TAG 標識名 參數(shù),例】對stud.DBF: 用學號作關(guān)鍵字,建立結(jié)構(gòu)復(fù)合索引文件,標識名為xh,Use stud,Index on 學號 tag xh,用姓名作關(guān)鍵字,建立結(jié)構(gòu)索引文件,標記名為xm,Use stud,Index on 姓名 tag xm,在建立復(fù)合索引文件時,可使用ASCENDINGDESCENDING參數(shù)指定某一索引標識是按照升序(ASCENDING)還是降序(DESCENDING)方式進行排序,例】 若要為

56、Stud表根據(jù)入學成績字段建立結(jié)構(gòu)復(fù)合索引文件,索引標識為Et,并且希望按降序方式排列,那么應(yīng)執(zhí)行的命令為,USE Stud INDEX ON 入學成績 TAG Et DESCENDING,例】對stud.DBF,用入學成績, 出生日期, 姓名作關(guān)鍵字,建立結(jié)構(gòu)索引文件,標記為strcx,Use stud,Index on str(入學成績) +dtoc(出生日期) +姓名 tag strcx,上述操作相當于鍵入如下命令,Use stud Index on 入學成績 tag rxcj additive Index on 出生日期 tag csrq additive Index on 姓名 ta

57、g xm additive,例】對stud表按學號建立非結(jié)構(gòu)復(fù)合索引文件,文件名為scxh.CDX,索引標識為xh,Use stud,index on 學號 tag xh of scxh,建立非結(jié)構(gòu)復(fù)合索引,在INDEX命令中使用 TAG OF參數(shù),例】若要為Stud表根據(jù)入學成績字段建立單一索引文件(單一索引文件名為en1.IDX),希望只有滿足入學成績大于520這一條件的記錄才會出現(xiàn)在索引文件的索引關(guān)鍵字值列表中,那么應(yīng)執(zhí)行命令,Use stud,INDEX ON 入學成績 TO En1.IDX FOR 入學成績520,設(shè)置有條件的索引,例】若要為Stud表根據(jù)出生日期字段建立單一索引文件

58、(單一索引文件名為 nl.IDX),并且該索引文件是唯一索引,那么應(yīng)執(zhí)行的命令,Use stud,INDEX ON 出生日期 TO nl.IDX unique,設(shè)置惟一索引,例】若要為Stud表根據(jù)學號字段建立結(jié)構(gòu)復(fù)合索引文件(索引標識為stuid),并且該索引標識為候選索引,那么應(yīng)執(zhí)行命令,Use stud,INDEX ON 學號 Tag stuid candidate,設(shè)置候選索引,4.3.4 索引文件的使用,命令格式:USE INDEX ORDER TAG 標記名 OF ASCENDING | DESCENDING IN,1.打開索引文件,1) 打開表文件的同時打開索引文件,功能:打開指

59、定的表及其索引文件,例】 已知stud.DBF有scxh.cdx(標記名有xh,xm) 、cja.idx 和 nl.idx 等索引文件,Use stud index cja, nl, scxh,打開表文件時打開所有索引文件,并以cja.idx作為主索引文件,命令是,Use stud index nl,cja,scxh order cja,或,Use stud index cja, scxh, nl order tag xm of scxh,打開表文件時打開所有索引文件,并以scxh.cdx作為主索引文件,標記名為xm,命令是,例】 已知stud.DBF有scxh.cdx(標記名有xh,xm)

60、、cja.idx 和 nl.idx 等索引文件,2) 在打開表后再打開索引文件,除結(jié)構(gòu)復(fù)合索引能隨著表文件的打開而打開外,其他索引文件必須用索引文件的打開命令來打開,命令格式:SET INDEX TO 索引文件名表 ADDITIVE,功能:在已打開表文件的前提下,打開指定的索引文件,ORDER |TAG 標記名 OF ASCENDING|DESCENDING,Use stud,打開索引文件cja.idx和nl.idx,并用nl作為主控制索引(主索引)。命令為,Set index to nl, cja,例】 已知stud.DBF有scxh.cdx(標記名有xh,xm) 、cja.idx 和 nl

溫馨提示

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

評論

0/150

提交評論