




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本資料來(lái)源,目錄,第1章Visual FoxPro基礎(chǔ) 第2章數(shù)據(jù)與數(shù)據(jù)運(yùn)算 第3章數(shù)據(jù)庫(kù)操作 第4章查詢與視圖 第5章程序設(shè)計(jì)基礎(chǔ),第6章面向?qū)ο蟪绦蛟O(shè)計(jì) 第7章表單 第8章報(bào)表 第9章菜單 第10章項(xiàng)目與項(xiàng)目管理器 第11章小型系統(tǒng)開發(fā)實(shí)例,第一章,數(shù)據(jù)庫(kù)基礎(chǔ)理論,返回目錄,本章要點(diǎn),信息、數(shù)據(jù)和數(shù)據(jù)處理 數(shù)據(jù)模型 數(shù)據(jù)庫(kù)系統(tǒng) 關(guān)系數(shù)據(jù)庫(kù)及其設(shè)計(jì),返回目錄,1.1 信息、數(shù)據(jù)和數(shù)據(jù)處理,1.1.1 信息與數(shù)據(jù) 信息:是對(duì)客觀世界的抽象描述。 數(shù)據(jù):數(shù)據(jù)是用于記錄客觀事物屬性的 物理符號(hào),數(shù)據(jù):包括文本形式數(shù)據(jù)和多媒體數(shù)據(jù) 如:聲音和視頻、圖片等,1、從信息處理角度看,任何事物的屬性都是通過
2、數(shù)據(jù)來(lái)表示,數(shù)據(jù)經(jīng)過加工處理后,從而形成信息。 2、從計(jì)算機(jī)的角度看,數(shù)據(jù)泛指那些可以被計(jì)算機(jī)接受并能夠被計(jì)算機(jī)識(shí)別處理的符號(hào)。 3、總之,信息是有用的數(shù)據(jù),數(shù)據(jù)是信息的表現(xiàn)形式,信息是通過數(shù)據(jù)符號(hào)來(lái)傳播的,數(shù)據(jù)與信息的區(qū)別,數(shù)據(jù)處理是指利用計(jì)算機(jī)將數(shù)據(jù)轉(zhuǎn)換成信息的過程,包括對(duì)數(shù)據(jù)的收集、存儲(chǔ)、加工、分類、排序、檢索、傳播等一系列活動(dòng)。 其目的是從大量的原始數(shù)據(jù)中抽取和推導(dǎo)出有價(jià)值的信息,作為決策的依據(jù),1.1.2 數(shù)據(jù)處理,信息、數(shù)據(jù)與數(shù)據(jù)處理的關(guān)系可用下式簡(jiǎn)單表示: 信息 = 數(shù)據(jù) + 數(shù)據(jù)處理 數(shù)據(jù)是原料(輸輸入),信息是產(chǎn)出(輸出),“信 息處理” 則是為了產(chǎn)生信息而處理數(shù)據(jù),1.1.
3、3 數(shù)據(jù)管理技術(shù)(可分為3個(gè)階段,1人工管理階段(20世紀(jì)50年代中期以前) 特點(diǎn):數(shù)據(jù)不長(zhǎng)期保存,沒有對(duì)數(shù)據(jù)進(jìn)行管理的軟 件,一組數(shù)據(jù)對(duì)應(yīng)于一個(gè)程序,2文件系統(tǒng)階段,時(shí)間:20世紀(jì)50年代后期至60年代。 特點(diǎn) :數(shù)據(jù)以文件形式長(zhǎng)期保存;數(shù)據(jù)與程序有一定的獨(dú)立性。 缺點(diǎn) :數(shù)據(jù)冗余度大 ;數(shù)據(jù)獨(dú)立性差;缺乏對(duì)數(shù)據(jù)的統(tǒng)一控制管理,圖示,3數(shù)據(jù)庫(kù)系統(tǒng)管理階段,時(shí)間:20世紀(jì)60年代后期開始 特點(diǎn):(1)有了數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS) (Database Management System)。 (2)面向全局。 (3)具有較高的數(shù)據(jù)獨(dú)立性 (4)有統(tǒng)一的數(shù)據(jù)控制功能,圖示,數(shù)據(jù)庫(kù)系統(tǒng)管理階段即對(duì)所
4、有的數(shù)據(jù)實(shí)行統(tǒng)一規(guī)劃管理,形成一個(gè)數(shù)據(jù)中心,構(gòu)成一個(gè)數(shù)據(jù)“倉(cāng)庫(kù),1.2 數(shù)據(jù)模型,數(shù)據(jù)模型是對(duì)客觀事物及其聯(lián)系的數(shù)據(jù)描述,反映實(shí)體內(nèi)部和實(shí)體之間的聯(lián)系。 1.2.1 實(shí)體及其聯(lián)系 1、實(shí)體 從數(shù)據(jù)處理的角度看,現(xiàn)實(shí)世界中的客觀事物稱為實(shí)體,2. 實(shí)體間的聯(lián)系 實(shí)體之間的對(duì)應(yīng)關(guān)系稱為聯(lián)系,它反映了現(xiàn)實(shí)世界事物之間的相互關(guān)聯(lián)。 1)一對(duì)一聯(lián)系(1:1) 2)一對(duì)多聯(lián)系(1:n) 3)多對(duì)多聯(lián)系(m:n,1.2.2 具體數(shù)據(jù)模型,在數(shù)據(jù)庫(kù)系統(tǒng)中,常用的數(shù)據(jù)模型有: 層次模型 網(wǎng)絡(luò)模型 關(guān)系模型,1.2.1 層次模型,1層次模型:層次模型用樹形結(jié)構(gòu)來(lái)表示實(shí)體及其之間的聯(lián)系。特點(diǎn): 1)有一個(gè)結(jié)點(diǎn)沒有父
5、親,稱為根結(jié)點(diǎn)。 2)其它結(jié)點(diǎn)有且僅有一個(gè)父親。 實(shí)體之間的聯(lián)系是1:M聯(lián)系(包括1:1聯(lián)系,層次結(jié)構(gòu)圖示,實(shí)例,層次模型優(yōu)點(diǎn):層次清晰、構(gòu)造簡(jiǎn)單、易于實(shí)現(xiàn)1:1和1:M的實(shí)體聯(lián)系。 采用層次模型來(lái)設(shè)計(jì)的數(shù)據(jù)庫(kù)稱為層次數(shù)據(jù)庫(kù),2、網(wǎng)狀模型,是用以實(shí)體型為結(jié)點(diǎn)的有向圖來(lái)表示各 實(shí)體及其之間的聯(lián)系。特點(diǎn): 1) 可以有一個(gè)以上的結(jié)點(diǎn)無(wú)父親。 2) 至少有一個(gè)結(jié)點(diǎn)有多于一個(gè)的父親。 能表示 M:N 聯(lián)系。 缺點(diǎn):編寫應(yīng)用程序復(fù)雜,模型結(jié)構(gòu)復(fù)雜,圖示,圖示,關(guān)系模型 是用二維表格來(lái)表示實(shí)體及其相互之間的聯(lián)系。在關(guān)系模型中,把實(shí)體集看成一個(gè)二維表,每一個(gè)二維表稱為一個(gè)關(guān)系。每個(gè)關(guān)系均有一個(gè)名字,稱為關(guān)系
6、名,3.關(guān)系模型,關(guān)系模型圖例,元組 (記錄值,屬性(數(shù)據(jù)項(xiàng),表頭,學(xué)生成績(jī)關(guān)系,后退,(1) 關(guān)系中每一分量不可再分,是最基本的數(shù)據(jù)單位; (2) 每一豎列的分量是同屬性的,列數(shù)根據(jù)需要而設(shè),且各列的順序是任意的; (3) 每一橫行由一個(gè)個(gè)體事物的諸多屬性構(gòu)成,且各行的順序可以是任意的; (4) 一個(gè)關(guān)系是一張二維表,不允許有相同的屬性名,也不允許有相同的元組,關(guān)系模型的主要特點(diǎn),1.3 數(shù)據(jù)庫(kù)系統(tǒng),1.3.1 數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)(Data Base)是數(shù)據(jù)庫(kù)系統(tǒng)的核心和管理對(duì)象,所謂數(shù)據(jù)庫(kù),就是以一定的組織方式將相關(guān)的數(shù)據(jù)組織在一起,存放在計(jì)算機(jī)外存儲(chǔ)器上形成的,能為多個(gè)用戶共享的,與應(yīng)用程序
7、彼此獨(dú)立的一組相關(guān)數(shù)據(jù)的集合,1、 數(shù)據(jù)庫(kù)系統(tǒng)的組成 數(shù)據(jù)庫(kù)系統(tǒng)DBS(Database System)是由計(jì)算機(jī)硬件、軟件、 數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)有關(guān)人員組成。是具有高度組織性的總體,1.3.2 數(shù)據(jù)庫(kù)管理系統(tǒng),硬件及軟件構(gòu)成,1. 硬件 除要求CPU的處理速度高、內(nèi)存容量大以外,還要求有足夠的外存空間以存儲(chǔ)數(shù)據(jù)庫(kù)中的數(shù)據(jù),2. 軟件 數(shù)據(jù)庫(kù)系統(tǒng)中的軟件包括操作系統(tǒng)、數(shù)據(jù)庫(kù)管理系統(tǒng)及數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)等,數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS,DBMS(DataBase Management System)是數(shù)據(jù)庫(kù)系統(tǒng)的核心軟件之一。 主要目標(biāo)是使數(shù)據(jù)成為方便用戶使用的資源,易于為各種用戶所共享,并增進(jìn)數(shù)據(jù)的安全
8、性、完整性和可用性。它提供數(shù)據(jù)定義、數(shù)據(jù)操作、數(shù)據(jù)庫(kù)管理、數(shù)據(jù)庫(kù)建立和維護(hù)以及通信等功能,現(xiàn)今流行的DBMS,目前較流行的數(shù)據(jù)庫(kù)管理系統(tǒng)有:Oracle、Sybase、SQLServer、Access、Visual Foxpro等,數(shù)據(jù)庫(kù)中的數(shù)據(jù)由DBMS進(jìn)行統(tǒng)一管理和控制,用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行的各種數(shù)據(jù)操作都是通過DBMS實(shí)現(xiàn)的,數(shù)據(jù)庫(kù)系統(tǒng)的組成示意圖,1.4 關(guān)系數(shù)據(jù)庫(kù)及其設(shè)計(jì),1.4.1 關(guān)系數(shù)據(jù)庫(kù) 關(guān)系數(shù)據(jù)庫(kù)(Relational Data Base)是若干個(gè)關(guān)系的集合。也可以說,關(guān)系數(shù)據(jù)庫(kù)是由若干張二維表組成的。 在關(guān)系數(shù)據(jù)庫(kù)中,將一個(gè)關(guān)系視為是一張二維表,又稱其為數(shù)據(jù)表。 一個(gè)關(guān)系數(shù)據(jù)
9、庫(kù)由若干個(gè)數(shù)據(jù)表組成,數(shù)據(jù)表又由若干個(gè)記錄組成,而每一個(gè)記錄是由若干個(gè)以字段屬性加以分類的數(shù)據(jù)項(xiàng)組成的,關(guān)系 模型理論與關(guān)系數(shù)據(jù)庫(kù)中術(shù)語(yǔ)的對(duì)照關(guān)系,在數(shù)據(jù)表中,若某一字段或幾個(gè)字段的組合值能夠標(biāo)識(shí)一個(gè)記錄,則稱其為關(guān)鍵字(或鍵),當(dāng)一個(gè)數(shù)據(jù)表有多個(gè)關(guān)鍵字時(shí),可從中選出一個(gè)作為主關(guān)鍵字(或主鍵)。見表,關(guān)鍵字及主鍵,在關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)表之間是具有相關(guān)性的。數(shù)據(jù)表之間的這種相關(guān)性是依靠每一個(gè)獨(dú)立的數(shù)據(jù)表內(nèi)部具有相同屬性的字段建立的。一般地,兩個(gè)數(shù)據(jù)表之間建立關(guān)聯(lián)關(guān)系,是將一個(gè)數(shù)據(jù)表視為父表,另外一個(gè)數(shù)據(jù)表視為子表,其中子表中與父表主關(guān)鍵字段相對(duì)應(yīng)的字段作為外鍵,數(shù)據(jù)表之間的關(guān)聯(lián)就是通過主鍵與外鍵
10、作為紐帶實(shí)現(xiàn)關(guān)聯(lián)的。見表,數(shù)據(jù)表之間的關(guān)聯(lián),在關(guān)系數(shù)據(jù)庫(kù)中,數(shù)據(jù)表為基本文件,每個(gè)數(shù)據(jù)表之間具有獨(dú)立性,而且若干個(gè)數(shù)據(jù)表間又具有相關(guān)性,使得數(shù)據(jù)操縱方式簡(jiǎn)單,這一特點(diǎn)使其具有極大的優(yōu)越性,并能得以迅速普及,表1-4 信息中心專門人才基本情況一覽表,1.4.2 關(guān)系的規(guī)范化,專門人才基本情況一覽表(如表1-5所示),它收入了自然情況。 專門人才專業(yè)特長(zhǎng)一覽表(如表1-6所示),它收入了專業(yè)特長(zhǎng)情況。 專門人才成就成果情況一覽表(如表1-7所示),它收入了成就及成果情況,構(gòu)建數(shù)據(jù)表,表5 信息中心專門人才基本情況一覽表,表1-6 信息中心專門人才專業(yè)特長(zhǎng)一覽表,表1-7 信息中心專門人才成就成果一
11、覽表,專門人才基本情況數(shù)據(jù)庫(kù),如何反映客觀事物數(shù)據(jù)間的多種對(duì)應(yīng)關(guān)系?通常將對(duì)應(yīng)數(shù)據(jù)表放入同一個(gè)數(shù)據(jù)庫(kù)中,并建立表間關(guān)聯(lián)來(lái)刻畫聯(lián)系。 在同一個(gè)數(shù)據(jù)庫(kù)中,相關(guān)聯(lián)的表間關(guān)系的類型有一對(duì)一、一對(duì)多和多對(duì)一3種關(guān)系,1.4.3 表間關(guān)聯(lián)關(guān)系的類型,1一對(duì)一關(guān)系 一對(duì)一關(guān)系即在兩個(gè)數(shù)據(jù)表中選一個(gè)相同屬性字段作為關(guān)鍵字段,把其中一個(gè)數(shù)據(jù)表中的關(guān)鍵字段稱為主關(guān)鍵字段,該字段值是唯一的,而另一個(gè)數(shù)據(jù)表中的關(guān)鍵字段稱為外來(lái)關(guān)鍵字段,該字段值也是唯一的,一對(duì)一(編號(hào),后退到,到,到,到,2一對(duì)多關(guān)系 一對(duì)多關(guān)系,即在兩個(gè)數(shù)據(jù)表中選一個(gè)相同屬性字段作為關(guān)鍵字段,把其中一個(gè)數(shù)據(jù)表的關(guān)鍵字段稱為主關(guān)鍵字段,該字段值是唯一
12、的,而把另一個(gè)數(shù)據(jù)表中的關(guān)鍵字段稱為外來(lái)關(guān)鍵字段,該字段值是重復(fù)的,一對(duì)多(編號(hào),到,到,3多對(duì)一關(guān)系 多對(duì)一關(guān)系與一對(duì)多關(guān)系是類似的,唯一的區(qū)別是在兩個(gè)相關(guān)聯(lián)的數(shù)據(jù)表中,選擇哪一個(gè)數(shù)據(jù)表中的關(guān)鍵字段為主關(guān)鍵字段,該字段值是重復(fù)的,與它關(guān)聯(lián)的另一個(gè)數(shù)據(jù)表中的關(guān)鍵字段為外來(lái)關(guān)鍵字段,該字段值是唯一的,多對(duì)一(編號(hào),關(guān)系的完整性,即關(guān)系中的數(shù)據(jù)及具有關(guān)聯(lián)關(guān)系的數(shù)據(jù)間必須遵循的制約和依存關(guān)系,以保證數(shù)據(jù)的正確性、有效性和相容性。 關(guān)系的完整性主要包括域完整性、實(shí)體完整性和參照完整性三種,1.4.4 關(guān)系的完整性,1域完整性 域完整性是對(duì)數(shù)據(jù)表中字段屬性的約束,它包括字段的值域、字段的類型及字段的有效
13、規(guī)則等約束,它是由確定關(guān)系結(jié)構(gòu)時(shí)所定義的字段的屬性決定的。 見表,2實(shí)體完整性 實(shí)體完整性是對(duì)關(guān)系中的記錄唯一性,也就是主鍵的約束。準(zhǔn)確地說,實(shí)體完整性是指關(guān)系中的主屬性值不能為Null且不能有相同值。見表,3參照完整性 參照完整性是對(duì)關(guān)系數(shù)據(jù)庫(kù)中建立關(guān)聯(lián)關(guān)系的數(shù)據(jù)表間數(shù)據(jù)參照引用的約束,也就是對(duì)外鍵的約束。準(zhǔn)確地說,參照完整性是指關(guān)系中的外鍵必須是另一個(gè)關(guān)系的主鍵有效值,或者是NULL。見表,關(guān)系運(yùn)算是以關(guān)系為運(yùn)算對(duì)象的運(yùn)算,在關(guān)系運(yùn)算中,變量是關(guān)系,運(yùn)算結(jié)果仍然是關(guān)系。 常見的關(guān)系運(yùn)算有選擇運(yùn)算、投影運(yùn)算和連接運(yùn)算三種,1.4.5 關(guān)系運(yùn)算,1選擇(Select) 選擇運(yùn)算是從關(guān)系中選擇某
14、些滿足條件的記錄組成一個(gè)新的關(guān)系。也可以說,選擇運(yùn)算是在關(guān)系R中選擇滿足給定條件的元組。見表,2投影(Projec) 投影運(yùn)算是從關(guān)系中選擇某些字段的所有值組成一個(gè)新的關(guān)系。也可以說,投影運(yùn)算是在關(guān)系R中選擇出若干屬性列。見表,3連接(Join) 連接運(yùn)算是將兩個(gè)或多個(gè)關(guān)系通過連接條件組成一個(gè)新的關(guān)系。也可以說,連接運(yùn)算是在關(guān)系R和關(guān)系S中選擇屬性間滿足一定條件的元組。見表,表1 選修數(shù)據(jù)庫(kù)學(xué)生成績(jī),選擇(成績(jī)(數(shù)據(jù)庫(kù))=90,投影(表1.學(xué)號(hào),表1.成績(jī),連接(表1.學(xué)號(hào)=表2.學(xué)號(hào),表2 選修法律學(xué)生成績(jī),關(guān)系運(yùn)算實(shí)例,到58,到59,到60,本章小結(jié),第1章 數(shù)據(jù)庫(kù)基礎(chǔ)理論,1、數(shù)據(jù)庫(kù)的
15、3種模型 2、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)系統(tǒng)、DBMS的概念 3、關(guān)系數(shù)據(jù)庫(kù)的相關(guān)概念 4、關(guān)系的完整性 5、關(guān)系的運(yùn)算,no2,復(fù)習(xí),數(shù)據(jù)庫(kù)管理發(fā)展階段,人工管理階段、文件、數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)系統(tǒng)組成,軟件、硬件、數(shù)據(jù)庫(kù)管理人員,數(shù)據(jù)模型,實(shí)體、屬性、聯(lián)系,數(shù)據(jù)模型分類,層次、網(wǎng)絡(luò)、關(guān)系,關(guān)系數(shù)據(jù)庫(kù),關(guān)系模型,元組(行、紀(jì)錄),屬性(列,字段,關(guān)系運(yùn)算,選擇、投影、聯(lián)結(jié),Visual FoxPro系統(tǒng)概述,本章要點(diǎn),Visual FoxPro的安裝與啟動(dòng) Visual FoxPro系統(tǒng)環(huán)境的配置 Visual FoxPro用戶界面 Visual FoxPro向?qū)?Visual FoxPro生成器 Visua
16、l FoxPro設(shè)計(jì)器,2.1Visual FoxPro的安裝與啟動(dòng),2.1.1 安裝環(huán)境 2.1.2 Visual FoxPro 的安裝,啟動(dòng)Visual FoxPro有多種方法,可采用以下三種方式之一。 1從“開始”菜單啟動(dòng) 2從資源管理器中啟動(dòng) 3從“運(yùn)行”對(duì)話框中啟動(dòng),2.1.3 啟動(dòng)Visual FoxPro,在Microsoft Visual FoxPro主菜單中,打開“文件”菜單,選擇“退出”選項(xiàng); 按Alt+F4組合鍵; 按Ctrl+Alt+Del組合鍵,進(jìn)入“關(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注冊(cè)項(xiàng)、改變選項(xiàng)欄和工具欄、安裝ODBC數(shù)據(jù)源等,系統(tǒng)環(huán)境配置操作步驟,工具,選項(xiàng),常規(guī),數(shù)據(jù),顯示,文件位置,表單,項(xiàng)目,控件,確定,2. Visual FoxPro用戶界面,2.1 Vis
18、ual FoxPro的界面 Visual FoxPro界面,是由標(biāo)欄、菜單欄、工具欄、工作區(qū)、狀態(tài)欄和命令窗口組成的,2.2 標(biāo)題欄,標(biāo)題欄位于屏幕界面的第一行,它包含系統(tǒng)程序圖標(biāo)、主屏幕標(biāo)題、最小化按鈕、最大化按鈕和關(guān)閉按鈕5個(gè)對(duì)象,菜單欄,工具欄,命令窗口,狀態(tài)欄,工作區(qū),標(biāo)題欄,Visual FoxPro菜單項(xiàng)的功能 (1) “文件”菜單 (2) “編輯”菜單 (3) “顯示”菜單 (4) “格式”菜單 (5) “工具”菜單 (6) “程序”菜單 (7) “窗口”菜單 (8) “幫助”菜單,2.3 菜單欄,Visual FoxPro系統(tǒng)提供了11種常用的工具欄: (1)常用工具欄 (2)
19、布局工具欄 (3)表單控件工具欄 (4)表單設(shè)計(jì)器工具欄 (5)查詢?cè)O(shè)計(jì)器工具欄 (6)視圖設(shè)計(jì)器工具欄 (7)數(shù)據(jù)庫(kù)設(shè)計(jì)器工具欄(8)報(bào)表控件工具欄 (9)報(bào)表設(shè)計(jì)器工具欄 (10)調(diào)色板工具欄 (11)打印預(yù)覽工具欄,2.4.4 工具欄,激活工具欄的操作步驟,顯示,工具欄,常用,確定,命令窗口位于菜單欄和狀態(tài)欄之間,是Visual FoxPro系統(tǒng)命令執(zhí)行、編輯的窗口。 在“窗口”菜單下,選擇“隱藏”,可以關(guān)閉命令窗口;選擇“命令窗口”,可以彈出命令窗口,2.4.5 命令窗口,狀態(tài)行位于屏幕的最底部,用于顯示某一時(shí)刻的管理數(shù)據(jù)的工作狀態(tài)。 (1) Set Status off/ on,可控
20、制屏幕上的狀態(tài)行是否出現(xiàn)。 (2) 當(dāng)前工作區(qū)中表文件打開后,狀態(tài)行顯示將顯示該表的相關(guān)內(nèi)容,2.4.6 工作區(qū)與狀態(tài)行,2.5 Visual FoxPro向?qū)?用戶通過系統(tǒng)提供的各種不同的向?qū)гO(shè)計(jì)器,不用編程就可以創(chuàng)建良好的應(yīng)用程序界面,并完成許多有關(guān)對(duì)數(shù)據(jù)庫(kù)的操作。 常用的向?qū)гO(shè)計(jì)器有:表向?qū)?、表單向?qū)?、?bào)表向?qū)?、查詢向?qū)?等,2.6 Visual FoxPro生成器,Visual FoxPro系統(tǒng)提供的生成器,可以簡(jiǎn)化創(chuàng)建和修改用戶界面程序的設(shè)計(jì)過程,提高軟件開發(fā)的質(zhì)量。每個(gè)生成器都由一系列選項(xiàng)卡組成,允許用戶訪問并設(shè)置所選對(duì)象的屬性。 常用的生成器有:組合框生成器、命令組生成器、表達(dá)式
21、生成器、列表框生成器等,2.7 Visual FoxPro設(shè)計(jì)器,系統(tǒng)提供的設(shè)計(jì)器,為用戶提供了一個(gè)友好的圖形界面。用戶可以通過它創(chuàng)建并定制數(shù)據(jù)表結(jié)構(gòu)、數(shù)據(jù)庫(kù)結(jié)構(gòu)、報(bào)表格式和應(yīng)用程序組件等。 常用的設(shè)計(jì)器有:表設(shè)計(jì)器、查詢?cè)O(shè)計(jì)、視圖設(shè)計(jì)器、列表框生成器、報(bào)表設(shè)計(jì)器、數(shù)據(jù)庫(kù)設(shè)計(jì)器、菜單設(shè)計(jì)器等。,本章小結(jié),第章 系統(tǒng)概述,熟悉的用戶界面,掌握各組成部分的大致功能 如何設(shè)置系統(tǒng)的系統(tǒng)環(huán)境,第2章,數(shù)據(jù)與數(shù)據(jù)運(yùn)算,本章要點(diǎn),數(shù)據(jù)類型 數(shù)據(jù)存儲(chǔ) 函數(shù) 表達(dá)式,2.1 數(shù)據(jù)類型,概念: 數(shù)據(jù)記錄了客觀事物的屬性,包括兩個(gè)方 面:數(shù)據(jù)內(nèi)容和數(shù)據(jù)形式 。前者是數(shù)據(jù)的值, 后者是數(shù)據(jù)的存儲(chǔ)形式和使用方式,也稱
22、為數(shù) 據(jù)類型,字符型,數(shù)據(jù)類型,不能進(jìn)行算術(shù)運(yùn)算 用字母C表示 包括一切可打印字符,例如,中文字符、英文字符、數(shù)字字符和其他ASCII字符等 長(zhǎng)度(即字符個(gè)數(shù))范圍為0254,每個(gè)字符占一個(gè)字節(jié),數(shù)值型,數(shù)據(jù)類型,表示數(shù)量并可以進(jìn)行算術(shù)運(yùn)算 用字母N表示 數(shù)值型數(shù)據(jù)在內(nèi)存中占用8個(gè)字節(jié),數(shù)據(jù)長(zhǎng)度(即數(shù)據(jù)位數(shù))為120位,貨幣型,用來(lái)存儲(chǔ)貨幣值 用字母Y表示 默認(rèn)保留4位小數(shù),占用8字節(jié)存儲(chǔ)空間,數(shù)據(jù)類型,日期型,日期型數(shù)據(jù)表示不帶時(shí)間的日期數(shù)據(jù) 用字母D表示 長(zhǎng)度固定為8個(gè)字節(jié),年月日之間的分隔符占一個(gè)字節(jié),數(shù)據(jù)類型,日期時(shí)間型,表示日期和時(shí)間的數(shù)據(jù) 用字母T表示 長(zhǎng)度固定為8個(gè)字節(jié),數(shù)據(jù)類型
23、,邏輯型,描述客觀事物真假 ,表示邏輯判斷的結(jié)果 用字母L表示 長(zhǎng)度固定為1個(gè)字節(jié),數(shù)據(jù)類型,備注型,用于存放較多字符型數(shù)據(jù)(超過254個(gè)字符)或者長(zhǎng)度不一的字符型數(shù)據(jù) 用字母M表示 備注型數(shù)據(jù)只能作為數(shù)據(jù)表中備注型字段的值 備注型字段長(zhǎng)度固定為4個(gè)字節(jié),這4個(gè)字節(jié)存儲(chǔ)的是實(shí)際數(shù)據(jù)在.fpt文件中的存儲(chǔ)位置,數(shù)據(jù)類型,通用型,數(shù)據(jù)類型,存儲(chǔ)OLE(對(duì)象鏈接與嵌入)對(duì)象 (比如:電子表格、文檔、圖形、聲音 ) 用字母G表示 只能用于數(shù)據(jù)表中的字段類型定義 通用型數(shù)據(jù)字段長(zhǎng)度固定為4個(gè)字節(jié),實(shí)際數(shù)據(jù)存放在與表文件同名的備注文件(.fpt)中,整型/浮點(diǎn)型/雙精度型,都具有數(shù)值特征 都只能用于字段變
24、量 浮點(diǎn)型用字母F表示,功能上與數(shù)值型等價(jià)。 雙精度型提供更高的數(shù)據(jù)精度 ,每個(gè)雙精度型數(shù)據(jù)占8個(gè)字節(jié) 整型用于存儲(chǔ)無(wú)小數(shù)部分的數(shù)值 ,整型字段占4個(gè)字節(jié) ,用字母I表示,數(shù)據(jù)類型,常量與變量,常量是以直觀的數(shù)據(jù)形態(tài)和意義的形式出現(xiàn)的數(shù)據(jù),其值保持不變。按常量取值的數(shù)據(jù)類型,可將常量分為6種類型,變量是在操作過程中其值可以被改變的數(shù)據(jù)對(duì)象,必須在對(duì)其賦值之后才能使用。詳細(xì)講解,字符型常量,用規(guī)定的定界符括起來(lái)的一串字符,又稱為字符串 字符串定界符有單引號(hào)( )、雙引號(hào)( )、方括號(hào)( )三種 定界符內(nèi)沒有任何字符就是空串( ) 選出正確的字符型常量:3*9 hello 你好 Iam a stu
25、dent,數(shù)值型常量,由阿拉伯?dāng)?shù)字、小數(shù)點(diǎn)和正負(fù)號(hào)組成 沒有定界符,可以是整數(shù)和小數(shù),不能直接表示分?jǐn)?shù) 兩種表示方法:小數(shù)形式和指數(shù)形式 正確:117、-12.5、2.1E3(表示2.1*1000) 錯(cuò)誤:117、1/5,貨幣型常量,貨幣型常量的書寫格式與數(shù)值型常量類似,但要加上一個(gè)前置的$ ,例如$1000 貨幣型數(shù)據(jù)在存儲(chǔ)和計(jì)算時(shí),采用4位小數(shù) ,不能采用指數(shù)形式 。例如,貨幣型常量$3.1415926,將存儲(chǔ)為$3.1416,日期型常量,定界符為花括號(hào)( 或者 ) 輸入格式為yyyy/mm/dd(唯一,例如:2006/10/18) 年月日之間用分隔符隔開,分隔符可以是“/” 、“-” 、
26、“.” 等符號(hào) 輸出顯示格式有多種,具體使用哪一種格式主要與日期格式的設(shè)置相關(guān),日期的默認(rèn)顯示格式是mm/dd/yyyy,嚴(yán)格的日期格式,日期時(shí)間型常量,定界符也為花括號(hào)( 或者 ) 輸入格式為yyyy/mm/dd,hh:mm:ssa|p,例如:2006/02/10 22:22:22 p 其分隔符與日期型數(shù)據(jù)分隔符相同,時(shí)分秒之間用“ :”分隔 輸出顯示格式有多種,具體使用哪一種格式主要與日期格式的設(shè)置相關(guān),日期時(shí)間的默認(rèn)顯示格式為 :mm/dd/yyyy , hh:mm:ssa|p ,例如,09/01/2005 11:45:30 pm,嚴(yán)格的日期與時(shí)間格式,邏輯型常量,邏輯型常量只有“真”和
27、“假”兩種值 定界符為圓點(diǎn)(. .) 邏輯真用.T.、.t.、.Y.或.y.表示,邏輯假用.F.、.f.、.N.或.n.表示。 注意:字母前后的圓點(diǎn)不能省略,變量,常量與變量,概念,命名規(guī)則,字段變量,內(nèi)存變量,變量實(shí)質(zhì)是具有某一地址的存儲(chǔ)單元 ,該地址被賦以名字,通過名字可以訪問和存取該地址中的值,這個(gè)指向某個(gè)地址的名字就是變量名,1) 只能使用字母、漢字、下劃線和數(shù)字命名。 (2) 命名必須以字母、漢字或下劃線開頭。除自由表中字段名、索引的TAG標(biāo)識(shí)名最多只能10個(gè)字符外,其他的命名可使用1128個(gè)字符。 (3) 不可與系統(tǒng)保留字同名。例如,for、quit、list等系統(tǒng)保留字,a2b、
28、年齡、Dept_3 2ab、*B、for、a,字段變量指表中的字段,是一種多值變量,其值是表記錄指針當(dāng)前所指的那條記錄對(duì)應(yīng)字段的值,可以是任意數(shù)據(jù)類型,內(nèi)存變量是一種獨(dú)立于表,并使用臨時(shí)工作單元的變量,用戶退出VFP或關(guān)機(jī)就會(huì)消失。 內(nèi)存變量的類型一般是常用的六種。用內(nèi)存變量名實(shí)現(xiàn)對(duì)內(nèi)存變量的訪問,如果內(nèi)存變量與字段變量同名,則在調(diào)用該內(nèi)存變量時(shí)應(yīng)在內(nèi)存變量名前加上符號(hào)“M.”或“M-” 。例如,M.姓名表示內(nèi)存變量“姓名”的值,備注型、通用型、整型、浮點(diǎn)型、雙精度型、二進(jìn)制字符型和二進(jìn)制備注型等數(shù)據(jù)類型只能用于字段變量中,內(nèi)存變量,內(nèi)存變量的賦值 命令格式1:= 命令格式2:STORE TO
29、 例子:a=.t. AND 性別“男” 顯示:.T. 解析:這是將三個(gè)關(guān)系表達(dá)式用邏輯運(yùn)算符連接起來(lái)構(gòu)成的邏輯表達(dá)式,主要是清楚三個(gè)邏輯運(yùn)算符之間的優(yōu)先級(jí)問題,4)SET EXACT ON A湖南長(zhǎng)沙 BALEFT(A,4) ?IIF(B, 長(zhǎng)沙,北京) 顯示:北京 解析:BALEFT(A,4)是一個(gè)賦值語(yǔ)句,是將關(guān)系表達(dá)式ALEFT(A,4)的值賦給變量B,因?yàn)锳LEFT(A,4)左邊的值為“湖南長(zhǎng)沙”,右邊為“湖南” ,而且是精確比較,所以其值是邏輯假,故B=.F.,例3】學(xué)生表的結(jié)構(gòu)如下: 學(xué)生(學(xué)號(hào) C 6,姓名 C 10,性別 C 2 ,出生日 期 D,少數(shù)民族否 L,籍貫 C 10
30、,入學(xué)成績(jī) N 5.1,簡(jiǎn)歷 M,照片 G) 針對(duì)學(xué)生表,寫出下列條件: (1)姓“張”的學(xué)生。 (2)20歲以下的學(xué)生。 (3)家住湖南或湖北的學(xué)生。 (4)漢族學(xué)生。 (5)入學(xué)成績(jī)?cè)?80分以上的湖南或湖北的學(xué)生。 (6)20歲以下的少數(shù)民族學(xué)生,1)姓“張”的學(xué)生 條件1:AT(張,姓名)=1 條件2:SUBSTR(姓名,1,2)=張 條件3:姓名=張 (2)20歲以下的學(xué)生 條件1:DATE()-出生日期0,4)漢族學(xué)生 條件1:NOT 少數(shù)民族否 條件2:少數(shù)民族否.F. 條件3:IIF(少數(shù)民族否,少數(shù)民族,漢族)=漢族 (5)入學(xué)成績(jī)?cè)?80分以上的湖南或湖北的學(xué)生 條件1:入
31、學(xué)成績(jī)580 AND “湖” $ 籍貫 條件2:入學(xué)成績(jī)580 AND (籍貫=“湖南” OR 籍貫=湖北) 由于AND運(yùn)算優(yōu)先級(jí)比OR要高,為了保證先做OR運(yùn)算,條件2中的括號(hào)是必不可少的。 (6)20歲以下的少數(shù)民族學(xué)生 YEAR(DATE()-YEAR(出生日期)=20 AND 少數(shù)民族否,No 3,數(shù)據(jù)類型:字符型C,數(shù)值型N,貨幣型Y,邏輯型L,通用型G,備注型M,日期型D,時(shí)間型T VARTYPE中:U未定義,X null值,O對(duì)象型 變量: STORE TO ? |? 數(shù)組 DIMENSON (下標(biāo)1,下標(biāo)2,表達(dá)式,函數(shù),數(shù)值型 字符型 日期時(shí)間型 數(shù)據(jù)類型轉(zhuǎn)換型 測(cè)試型,第3
32、章,數(shù)據(jù)庫(kù) 數(shù)據(jù)表 索引和排序 數(shù)據(jù)完整性 多工作區(qū)操作,主要內(nèi)容,3.1 創(chuàng)建數(shù)據(jù)庫(kù),1 建立數(shù)據(jù)庫(kù) Create DataBase,創(chuàng)建數(shù)據(jù)庫(kù)的操作步驟,文件,新建,數(shù)據(jù)庫(kù),新建文件,數(shù)據(jù)庫(kù)設(shè)計(jì)器,保存,數(shù)據(jù)庫(kù)名,確定,2 打開數(shù)據(jù)庫(kù) Open DataBase Modify DataBase,關(guān)閉數(shù)據(jù)庫(kù) close DataBase 關(guān)閉數(shù)據(jù)庫(kù)和除主窗口外的窗口 close all,修改數(shù)據(jù)庫(kù) MODIFY DataBase 刪除數(shù)據(jù)庫(kù) DELETE DataBase DELETE TABLES參數(shù)表示數(shù)據(jù)表也刪除,數(shù)據(jù)庫(kù)添加數(shù)據(jù)表的操作步驟,文件,打開,數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)設(shè)計(jì)器,添加表,打
33、開,數(shù)據(jù)庫(kù)設(shè)計(jì)器,添加表,打開,保存,通常數(shù)據(jù)表只能屬于一個(gè)數(shù)據(jù)庫(kù)文件,如果想向當(dāng)前數(shù)據(jù)庫(kù)中添加的表已被添加到了別的數(shù)據(jù)庫(kù)中,則必須先將其從其他數(shù)據(jù)庫(kù)中移去后才能添加到當(dāng)前數(shù)據(jù)庫(kù)中,命令方式,自由表加入數(shù)據(jù)庫(kù)Add table 先要打開數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)表移出數(shù)據(jù)庫(kù)remove table,表的基本操作包括:數(shù)據(jù)表的建立與維護(hù),表結(jié)構(gòu)的顯示與修改,記錄的顯示、追加、定位、插入、修改與刪除,數(shù)據(jù)表的復(fù)制,數(shù)據(jù)表的排序、索引、查詢,數(shù)據(jù)表統(tǒng)計(jì)與匯總以及多表操作等,VFP數(shù)據(jù)表基本操作,4.1.1 設(shè)計(jì)表的結(jié)構(gòu),建立表文件包括給表文件命名、建立表結(jié)構(gòu)、輸入數(shù)據(jù)記錄等,建立表結(jié)構(gòu)就是確定表文件中每一個(gè)字段
34、的字段名、字段類型、字段寬度、小數(shù)位數(shù)以及允許是否為空,1. 表文件的命名規(guī)則,2. 設(shè)計(jì)表文件結(jié)構(gòu),1)字段名(Field Name) 字段名是以漢字、字母或下劃線開頭,后面可以是漢字、字母、數(shù)字或下劃線組成,但不可以有空格,自由表的長(zhǎng)度不超過10個(gè)字符。 (2). 字段類型(Type) 字段類型對(duì)應(yīng)于二維表格欄目填寫內(nèi)容的類型,是字段變量的類型,3).字段寬度(Width) 字段寬度用以表明該字段存放數(shù)據(jù)所需的寬度。用戶在建立表時(shí),只有字符型、數(shù)值型、浮點(diǎn)型需要用戶輸入所需的寬度,其他類型字段的寬度由系統(tǒng)自動(dòng)確定,4). 小數(shù)位(Dec) 只有數(shù)值型和浮點(diǎn)型字段才有小數(shù)位, 小數(shù)位的寬度是
35、015位。 (5).是否允許為空 表示是否允許該字段接受空值(NULL,4.1.2 建立表的結(jié)構(gòu),在Visual FoxPro中,可以采用二種方式創(chuàng)建一個(gè)表的結(jié)構(gòu),命令方式:使用Create命令,菜單方式:使用“文件”菜單中的“新建”命令,1. 命令方式,命令格式1: Create table (字段1 類型(長(zhǎng)度), (字段2 類型(長(zhǎng)度) 命令格式2: Create 功能:該命令用于在命令窗口中直接創(chuàng)建一個(gè)表。 注意:一個(gè)自由表,那么在執(zhí)行該命令時(shí)不能打開任何數(shù)據(jù)庫(kù)。否則,創(chuàng)建的是一個(gè)數(shù)據(jù)庫(kù)表,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表的顯示與維護(hù),建立了表以后,需要對(duì)表進(jìn)行維護(hù),這包括表的修改、記錄的增加與刪除、表的復(fù)制等操作,通過這些操作保證表的合理性和正確性。為了及時(shí)了解表的變化需要對(duì)表進(jìn)行顯示操作,4.2.1 表的打開與關(guān)閉,1 表的打開 (1)命令方式 USE表文件名NoupdateExclusiveShared 功能:該命令用于在指定的工作區(qū)打開指定的表。 說明:其中Noupdate指定以只讀方式打開表,Exclus
37、ive指定以獨(dú)占方式打開表,Shared指定以共享方式打開表,2)菜單方式,2. 關(guān)閉表,1.命令方式 命令格式: USE 命令功能:該命令用于關(guān)閉當(dāng)前工作區(qū)中的表,2.菜單方式: 使用“數(shù)據(jù)工作期”窗口,4.2.2 表的顯示,一個(gè)表由兩部分組成:表結(jié)構(gòu)和表記錄,因此表的顯示就有兩類命令,分別顯示表結(jié)構(gòu)和表記錄,1. 表結(jié)構(gòu)的顯示,1.命令方式 命令格式:ListDisplay Structure to printer |to file 功能:查看數(shù)據(jù)表各字段的名字、類型、寬度等信息。 2.菜單方式 選擇”顯示”菜單表設(shè)計(jì)器選項(xiàng),進(jìn)入表設(shè)計(jì)器對(duì)話框, 可查看,2. 表記錄的顯示,List/Di
38、splay命令 命令格式: List | Display fields 范圍for whileto printer prompt |to file OFF 功能:顯示當(dāng)前表中指定范圍內(nèi)符合條件的記錄的指定字段的內(nèi)容,范圍:有種限定方法 ALL NEXT RECORD REST,FOR與WHILE的區(qū)別: 其子句都為邏輯表達(dá)式,用來(lái)指定選 擇記錄的條件 但后者僅在當(dāng)前記錄滿足條件的時(shí)候 開始依次篩選記錄,一旦遇到不滿足條件 的記錄時(shí)就停止篩選 OFF用于在顯示記錄時(shí)不顯示記錄號(hào),4.2.3 表的修改,1.表結(jié)構(gòu)的修改 (1)命令方式 命令格式:modify structure 功能:修改當(dāng)前打開
39、的表的結(jié)構(gòu),2)菜單方式 選擇”顯示”菜單表設(shè)計(jì)器選項(xiàng),進(jìn)入”表設(shè)計(jì)器”對(duì)話框,命令格式: BROWSE FIELDS,FOR|WHILE NOAPPENDNODELETENOEDIT | NOMODIFY 功能:以窗口方式顯示記錄,同時(shí)還能輸入和修改記錄。 菜單方式,2表記錄的修改Browse命令,1)FIELDS ,子句用于指定在瀏覽窗口中顯示哪些字段。 :R 用于設(shè)置相關(guān)字段為只讀。 :H=“字符表達(dá)式”表示將其前的字段用字符表達(dá)式代替,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,例】 在瀏覽窗口中,若要對(duì)Student表的studid字段和name字段分別設(shè)置字段標(biāo)題:“學(xué)號(hào)”和“姓名”, 那么應(yīng)執(zhí)行如下命令: USE Student BROW FIEL studid:H=學(xué)號(hào),name:H=姓名,3. 記錄的修改,1)CHANGE/EDIT命令 格式:CHANGE/EDIT FIELDS FOR|WHILE 功能:以全屏幕編輯方式修改記錄,2)REPLACE命令 格式:REPLACE FOR|WHILE
41、WITH ADDITIVE ,WITH ADDITIVE 功能:在指定范圍內(nèi),將滿足條件的記錄的指定字段用對(duì)應(yīng)表達(dá)式的值替換。 如果有for條件而且范圍缺省,則范圍表示為ALL. 如果沒有for條件,范圍缺省,則范圍表示為當(dāng)前記錄,例】若要將Stud表婚否字段的數(shù)據(jù)“T”全部更新為“F”, 那么可以使用的命令,USE Student REPLACE 婚否 WITH .F. FOR 婚否=.T,4.2.4 表記錄指針的定位,1.記錄指針 對(duì)于表文件來(lái)說,記錄指針是一個(gè)重要的概念,每個(gè)打開的表文件均有一惟一的記錄指針,2記錄定位命令 (1)指針絕對(duì)定位 命令格式: GOTO|TOP|BOTTOM,
42、命令格式:Skip記錄數(shù) 功能:以當(dāng)前記錄為基準(zhǔn),將記錄指針向前或向后移動(dòng),移動(dòng)記錄個(gè)數(shù)由記錄數(shù)的值確定,為正時(shí)向后移動(dòng),為負(fù)時(shí)向前移動(dòng)。若缺省記錄數(shù),則系統(tǒng)默認(rèn)表達(dá)式值為1,2)指針相對(duì)定位,格式:LOCATE FOR |WHILE 功能:查找出所有符合條件的記錄并將指針指向第一條符合條件的記錄,若要繼續(xù),用CONTINUE命令。 注:若項(xiàng)缺省,則等價(jià)于all,后同,3)查詢定位,是按照某些條件在數(shù)據(jù)表中查找所需的記錄,4.2.5 表記錄的增加與刪除,1. 插入記錄 格式: INSERT BLANK BEFORE 功能:在指定的記錄前面或后面插入記錄。若無(wú)選擇項(xiàng),則在指定記錄的后面插入記錄,
43、并提供編輯狀態(tài)。選擇BEFORE選項(xiàng)表示在指定記錄前面插入記錄,提供編輯狀態(tài)。選擇BLANK 則在指定記錄前面插入一條空白記錄,不提供編輯狀態(tài),2. 追加記錄 命令格式:APPEND BLANK 功能:在當(dāng)前表文件的尾部追加記錄,追加的記錄需從鍵盤輸入。有可選項(xiàng)BLANK時(shí)表示在當(dāng)前表文件的尾部追加一空記錄,記錄的刪除分邏輯刪除和物理刪除。邏輯刪除的記錄可以恢復(fù)(去掉刪除標(biāo)記);物理刪除的記錄將無(wú)法恢復(fù)。 (1)邏輯刪除(給要?jiǎng)h除的記錄做刪除標(biāo)記) 格式:DELETE FOR | WHILE 給指定范圍內(nèi)和滿足條件的記錄加刪除標(biāo)記“,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)符合條件記錄前面的“*”號(hào)。省略和,則為恢復(fù)當(dāng)前記錄,例】若要在Stud表的第3、4、5條記錄中恢復(fù)已做了邏輯刪除并且入學(xué)成績(jī)大于520的記錄,則命令為,USE Stud,GO 3,RECALL NEXT 3 FOR 入學(xué)成績(jī)520,3) 真正刪除記錄 (刪除有刪除標(biāo)記的記錄) 格式:PACK 功能:將做刪除標(biāo)記的數(shù)據(jù)真正刪除,并且重新整理記錄的排列順序。此命令必須
45、與DELETE連用,例】若要對(duì)Student表中已做了邏輯刪除的記錄進(jìn)行物理刪除操作,則命令,USE Student PACK,4) 刪除全部記錄 格式:ZAP 功能:一次性刪除當(dāng)前表文件中的所有記錄,USE Student zap,4.2.6 表的復(fù)制,1. 復(fù)制表 格式:COPY TO FIELDS FOR |WHILE 功能:把當(dāng)前表文件中指定的記錄和字段復(fù)制成一個(gè)新的表文件。如果命令選項(xiàng)缺省,則復(fù)制所得的新的表文件為當(dāng)前表文件的一個(gè)副本,2表文件結(jié)構(gòu)的復(fù)制 格式:COPY STRUCTURE TO FIELDS 功能:僅復(fù)制當(dāng)前表文件的結(jié)構(gòu),不復(fù)制其中的數(shù)據(jù)。若有可選項(xiàng)FIELDS,則
46、新表文件結(jié)構(gòu)只包含其中指明的字段,同時(shí)也決定了這些字段在新表文件中的排列次序,格式:APPEND FROM 文件名 FIELDS 字段名表FOR 條件 WHILE 條件 功能:該命令將指定文件(源文件)中的數(shù)據(jù)添加到當(dāng)前表的尾部,3 從其他文件向表添加數(shù)據(jù),將表的記錄數(shù)據(jù)傳送到數(shù)組 格式:SCATTER FIELDS 字段名表 TO 數(shù)組名 MEMO 功能:命令按順序?qū)?dāng)前表當(dāng)前記錄指定字段的內(nèi)容依次存入數(shù)組。第一個(gè)字段存入數(shù)組的第一個(gè)元素中,第二個(gè)字段存入數(shù)組的第二個(gè)元素中,依次類推,4. 表與數(shù)組間的數(shù)據(jù)傳送,2) 將數(shù)組數(shù)據(jù)傳送到表記錄 格式: GATHER FROM FIELDS ME
47、MO 功能:命令將數(shù)組中的數(shù)據(jù)作為一個(gè)記錄傳送到當(dāng)前打開的表中的當(dāng)前記錄,3) 把表的一批記錄同時(shí)復(fù)制到數(shù)組 格式: COPY TO ARRAY 數(shù)組名FIELDS 范圍FORWHILE 功能:命令將當(dāng)前表指定記錄中指定字段的數(shù)據(jù)復(fù)制到指定的數(shù)組之中,4) 從數(shù)組向表添加記錄 格式: APPEND FROM ARRAY FOR FIELDS 功能:命令將滿足條件的數(shù)組行的數(shù)據(jù)按記錄形式依次添加到當(dāng)前表中,但它忽略備注型字段。 注意一維數(shù)組與二維數(shù)組的區(qū)別,第一次上機(jī)內(nèi)容,1、熟悉VF環(huán)境 2、對(duì)常用函數(shù)進(jìn)行練習(xí) 3、建表,如: 4、對(duì)上表進(jìn)行基本操作:USE、LIST/DISPLAY、BROW
48、SE、INSERT、 APPEND、DELETE、PACK、LOCATE、GO TOP/BOTTOM/N、ZAP,4.3 表的排序與索引,排序與索引的概念及二者的區(qū)別。 重點(diǎn):索引及其使用,排序(SORT):對(duì)表中的記錄進(jìn)行物理排序。 格式: SORT TO ON /A|/D/C ,/A|/D/C ASCENDING|DESCENDING FORWHILE FIELDS,4.3.1 表的排序,功能:按給定的字段名值由大到小或由小到大的順序?qū)Ξ?dāng)前表文件重新排列,并生成一個(gè)新的表文件,例 把stud.dbf中入學(xué)成績(jī)大于520的,按入學(xué)成績(jī)從高到低排序,保存在strxcj.dbf中,use stu
49、d Sort to strxcj on 入學(xué)成績(jī)/d for 入學(xué)成績(jī)480,use strxcj list,例 把stud.dbf表按入學(xué)成績(jī)(升序)、性別、姓名均按降序排列,保存在strxcj2.dbf中,use stud Sort to strxcj2 on 入學(xué)成績(jī)/a,性別,姓名 desc,use strxcj2 list,4.3.2 索引概述,1索引的概念 索引(INDEX):對(duì)表中的記錄進(jìn)行邏輯排序。即另外形成一個(gè)索引關(guān)鍵表達(dá)式值與記錄號(hào)之間的對(duì)照表,這個(gè)對(duì)照表就是索引文件,索引文件是一個(gè)二維表,其中僅有二列數(shù)據(jù):關(guān)鍵字值和記錄的物理位置。關(guān)鍵字值是包含有字段的排序規(guī)則表達(dá)式,記
50、錄的物理位置指向關(guān)鍵字值在表中所在的物理位置,例如,在表4-1的Stud表中,根據(jù)入學(xué)成績(jī)的高低來(lái)建立索引文件。建立好的索引文件如表4-2所示,表4-1 Stud表中的記錄,表4-2根據(jù)入學(xué)成績(jī)字段建立的索引文件,注意:索引并未改變表中記錄的物理位置,僅僅改變了表中記錄的邏輯排序。但是,當(dāng)用戶將建立好的索引文件打開以后,記錄的顯示順序或讀取處理記錄的順序?qū)?huì)按照索引文件排列的記錄順序進(jìn)行。這樣大大提高了記錄的檢索速度。 可以為一個(gè)表同時(shí)建立多個(gè)索引文件,每個(gè)索引文件表示處理記錄的不同順序,2.索引文件的種類,單一索引文件的內(nèi)部結(jié)構(gòu)如圖4-1所示。單一索引文件的擴(kuò)展名為.IDX,圖4-1 單一索
51、引文件結(jié)構(gòu),復(fù)合索引文件的內(nèi)部結(jié)構(gòu)如圖4-2所示。復(fù)合索引文件的擴(kuò)展名為.CDX,圖4-2 復(fù)合索引文件結(jié)構(gòu),從圖中可以看到復(fù)合索引文件可以由多個(gè)關(guān)鍵字值和其對(duì)應(yīng)的多個(gè)記錄的物理位置構(gòu)成。每一個(gè)關(guān)鍵字值和其對(duì)應(yīng)的記錄的物理位置構(gòu)成了一個(gè)索引標(biāo)識(shí)(TagName)。在復(fù)合索引文件中,每一個(gè)索引標(biāo)識(shí)等價(jià)于一個(gè)單一索引文件。換句話說,復(fù)合索引文件等價(jià)于多個(gè)單一索引文件,結(jié)構(gòu)復(fù)合索引文件的文件名稱與相關(guān)的表同名,另外結(jié)構(gòu)復(fù)合索引文件將隨著相關(guān)表的打開而自動(dòng)打開。 非結(jié)構(gòu)復(fù)合索引文件的文件名稱與相關(guān)的表不同名,另外非結(jié)構(gòu)復(fù)合索引文件不會(huì)隨著相關(guān)表的打開而自動(dòng)打開,要由用戶自行打開,索引與排序的不同點(diǎn),生
52、成的文件不是.dbf文件,不需占用單獨(dú)的工作區(qū),索引不改變?cè)砦募懈饔涗浀奈锢眄樞?索引文件占用空間小,3.索引的類型(索引可分為4種類型,索引,主索引,候選索引,不允許在指定字段和表達(dá)式中出現(xiàn)重復(fù)值的索引。一個(gè)表可以建立多個(gè)候選索引,不允許在指定字段和表達(dá)式中出現(xiàn)重復(fù)值的索引。只有數(shù)據(jù)表才能建立,惟一索引,只在索引文件中保留第一次出現(xiàn)的索引關(guān)鍵字值,普通索引,存儲(chǔ)在.cdx結(jié)構(gòu)復(fù)合索引文件中,與表文件同時(shí)打開和關(guān)閉,可存儲(chǔ)在.cdx獨(dú)立復(fù)合索引文件和.idx單索引文件中,4.3.3 建立索引文件,一、菜單方式 二、命令方式:使用INDEX命令來(lái)建立索引 格式: INDEX ON TO,功能
53、:對(duì)當(dāng)前表建立一個(gè)索引文件或增加索引標(biāo)識(shí),TAG OF FOR COMPACT ASENDING|DESCENDING UNIQUECANDIDATEADDITIVE,說明: (1)若給出TO 子句,則建立一個(gè)單索引文件。 若給出TAG ,則建立一個(gè)結(jié)構(gòu)復(fù)合索引文件,或?yàn)橐呀⒉⒋蜷_的復(fù)合索引文件增加索引標(biāo)識(shí)。 OF 選項(xiàng)用于指定非結(jié)構(gòu)復(fù)合索引文件的名字,省略此選項(xiàng)時(shí),表示建立結(jié)構(gòu)復(fù)合索引文件,2)COMPACT 參數(shù)僅在建立單一索引文件時(shí)使用。該參數(shù)用于為單一索引文件獲得壓縮處理快速存取索引文件技術(shù)的支持,從而大大提高單一索引文件的使用效率。 (3)ASCENDING|DESCENDING
54、參數(shù)用于指定復(fù)合索引文件的某一索引標(biāo)識(shí)是按照升序(ASCENDING)還是降序(DESCENDING)方式進(jìn)行排序,4)UNIQUE 參數(shù)用于建立唯一索引。也就是說對(duì)于擁有相同關(guān)鍵鍵值的若干條記錄而言,只有第一條記錄才會(huì)列入該索引文件中,其他具有此關(guān)鍵值的所有記錄都將被排除在該索引文件之外。 (5)CANDIDATE 參數(shù)用于建立候選索引。 (6)ADDITIVE 參數(shù)用于在建立新的索引文件時(shí),已打開的其他索引文件仍保持打開狀態(tài),例】對(duì)stud表按入學(xué)成績(jī)升序建立索引文件,Use stud index on 入學(xué)成績(jī) to cja List,建立單一索引文件,單一索引文件只能按照升序方式進(jìn)行排
55、列,Use stud index on -入學(xué)成績(jī) to cjd List,例】對(duì)stud表按入學(xué)成績(jī)降序建立索引文件,建立結(jié)構(gòu)復(fù)合索引,在INDEX命令中使用 TAG 標(biāo)識(shí)名 參數(shù),例】對(duì)stud.DBF: 用學(xué)號(hào)作關(guān)鍵字,建立結(jié)構(gòu)復(fù)合索引文件,標(biāo)識(shí)名為xh,Use stud,Index on 學(xué)號(hào) tag xh,用姓名作關(guān)鍵字,建立結(jié)構(gòu)索引文件,標(biāo)記名為xm,Use stud,Index on 姓名 tag xm,在建立復(fù)合索引文件時(shí),可使用ASCENDINGDESCENDING參數(shù)指定某一索引標(biāo)識(shí)是按照升序(ASCENDING)還是降序(DESCENDING)方式進(jìn)行排序,例】 若要為
56、Stud表根據(jù)入學(xué)成績(jī)字段建立結(jié)構(gòu)復(fù)合索引文件,索引標(biāo)識(shí)為Et,并且希望按降序方式排列,那么應(yīng)執(zhí)行的命令為,USE Stud INDEX ON 入學(xué)成績(jī) TAG Et DESCENDING,例】對(duì)stud.DBF,用入學(xué)成績(jī), 出生日期, 姓名作關(guān)鍵字,建立結(jié)構(gòu)索引文件,標(biāo)記為strcx,Use stud,Index on str(入學(xué)成績(jī)) +dtoc(出生日期) +姓名 tag strcx,上述操作相當(dāng)于鍵入如下命令,Use stud Index on 入學(xué)成績(jī) tag rxcj additive Index on 出生日期 tag csrq additive Index on 姓名 ta
57、g xm additive,例】對(duì)stud表按學(xué)號(hào)建立非結(jié)構(gòu)復(fù)合索引文件,文件名為scxh.CDX,索引標(biāo)識(shí)為xh,Use stud,index on 學(xué)號(hào) tag xh of scxh,建立非結(jié)構(gòu)復(fù)合索引,在INDEX命令中使用 TAG OF參數(shù),例】若要為Stud表根據(jù)入學(xué)成績(jī)字段建立單一索引文件(單一索引文件名為en1.IDX),希望只有滿足入學(xué)成績(jī)大于520這一條件的記錄才會(huì)出現(xiàn)在索引文件的索引關(guān)鍵字值列表中,那么應(yīng)執(zhí)行命令,Use stud,INDEX ON 入學(xué)成績(jī) TO En1.IDX FOR 入學(xué)成績(jī)520,設(shè)置有條件的索引,例】若要為Stud表根據(jù)出生日期字段建立單一索引文件
58、(單一索引文件名為 nl.IDX),并且該索引文件是唯一索引,那么應(yīng)執(zhí)行的命令,Use stud,INDEX ON 出生日期 TO nl.IDX unique,設(shè)置惟一索引,例】若要為Stud表根據(jù)學(xué)號(hào)字段建立結(jié)構(gòu)復(fù)合索引文件(索引標(biāo)識(shí)為stuid),并且該索引標(biāo)識(shí)為候選索引,那么應(yīng)執(zhí)行命令,Use stud,INDEX ON 學(xué)號(hào) Tag stuid candidate,設(shè)置候選索引,4.3.4 索引文件的使用,命令格式:USE INDEX ORDER TAG 標(biāo)記名 OF ASCENDING | DESCENDING IN,1.打開索引文件,1) 打開表文件的同時(shí)打開索引文件,功能:打開指
59、定的表及其索引文件,例】 已知stud.DBF有scxh.cdx(標(biāo)記名有xh,xm) 、cja.idx 和 nl.idx 等索引文件,Use stud index cja, nl, scxh,打開表文件時(shí)打開所有索引文件,并以cja.idx作為主索引文件,命令是,Use stud index nl,cja,scxh order cja,或,Use stud index cja, scxh, nl order tag xm of scxh,打開表文件時(shí)打開所有索引文件,并以scxh.cdx作為主索引文件,標(biāo)記名為xm,命令是,例】 已知stud.DBF有scxh.cdx(標(biāo)記名有xh,xm)
60、、cja.idx 和 nl.idx 等索引文件,2) 在打開表后再打開索引文件,除結(jié)構(gòu)復(fù)合索引能隨著表文件的打開而打開外,其他索引文件必須用索引文件的打開命令來(lái)打開,命令格式:SET INDEX TO 索引文件名表 ADDITIVE,功能:在已打開表文件的前提下,打開指定的索引文件,ORDER |TAG 標(biāo)記名 OF ASCENDING|DESCENDING,Use stud,打開索引文件cja.idx和nl.idx,并用nl作為主控制索引(主索引)。命令為,Set index to nl, cja,例】 已知stud.DBF有scxh.cdx(標(biāo)記名有xh,xm) 、cja.idx 和 nl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司租車位合同范本
- 專家集體跳槽合同范例
- 農(nóng)村承包種植合同范本
- 專人管理合同范本
- 農(nóng)村一戶一宅合同范本
- l臨時(shí)用地合同范本
- 農(nóng)資合同范本
- 光伏租賃中介合同范本
- 公司入股股權(quán)合同范本
- 核酸采集護(hù)士個(gè)人事跡7篇
- 2024-2025學(xué)年廣東省部分學(xué)校高一(上)第一次聯(lián)合考試物理試卷(含答案)
- 《黃色新聞的泛濫》課件
- 2024年山東省公務(wù)員考試《行測(cè)》真題及答案解析
- 化工原理Ⅱ?qū)W習(xí)通超星期末考試答案章節(jié)答案2024年
- 2024-2025學(xué)年初中體育與健康九年級(jí)全一冊(cè)人教版(2024)教學(xué)設(shè)計(jì)合集
- 環(huán)保產(chǎn)業(yè)政策及市場(chǎng)發(fā)展趨勢(shì)分析研究
- 2024年河南省高考對(duì)口升學(xué)語(yǔ)文英語(yǔ)試題
- 學(xué)習(xí)白求恩精神,做一個(gè)高尚的人一個(gè)純潔的人
- 《中醫(yī)藥學(xué)概論》期末考試復(fù)習(xí)題庫(kù)(含答案)
- 2024年秋季新外研版三年級(jí)上冊(cè)英語(yǔ)課件 Unit 1 第1課時(shí)(Get ready)
- 單位委托員工辦理水表業(yè)務(wù)委托書
評(píng)論
0/150
提交評(píng)論