VFP教材.ppt_第1頁
VFP教材.ppt_第2頁
VFP教材.ppt_第3頁
VFP教材.ppt_第4頁
VFP教材.ppt_第5頁
已閱讀5頁,還剩165頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、全國計(jì)算機(jī)等級(jí)考試二級(jí)教程Visual Foxpro 6.0 程序設(shè)計(jì),編寫:教育部考試中心 講授:葉茂功,第一章 Visual FoxPro基礎(chǔ),第三章 數(shù)據(jù)與數(shù)據(jù)運(yùn)算,第五章 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL,第七章 程序設(shè)計(jì)基礎(chǔ),第九章 菜單設(shè)計(jì)與應(yīng)用(略),第二章 VFP6.0 系統(tǒng)初步,第四章 數(shù)據(jù)庫及其操作,第六章 查詢與視圖,第八章 表單設(shè)計(jì)與應(yīng)用,第十章 報(bào)表設(shè)計(jì)(略),返 回,目 錄,第十一章 開發(fā)應(yīng)用程序(略),第十二章 上機(jī)指導(dǎo)(略),第一章 Visual FoxPro 基礎(chǔ),Visual FoxPro(簡稱VFP或VF) 是一個(gè)采用可視的、面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的關(guān)系型數(shù)據(jù)庫管

2、理系統(tǒng)。是唯一一個(gè)與歷史上的數(shù)據(jù)庫完全兼容的優(yōu)秀系統(tǒng)。它具有簡單易學(xué)、靈活方便、結(jié)構(gòu)緊湊等優(yōu)點(diǎn)。是當(dāng)今流行的數(shù)據(jù)庫管理系統(tǒng)之一。,1.1 數(shù)據(jù)庫基礎(chǔ)知識(shí),1.1.1 計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展,1、數(shù)據(jù)與數(shù)據(jù)處理 數(shù)據(jù)存儲(chǔ)在某媒體上能夠識(shí)別的物理符號(hào)。 數(shù)據(jù)的概念包括兩個(gè)方面:其一是數(shù)據(jù)內(nèi)容;其二是數(shù)據(jù)形式。內(nèi)容不變,形式可以多樣,如日期表示。數(shù)據(jù)的范圍在不斷拓展,現(xiàn)已包括數(shù)值、字串、圖、聲等。 數(shù)據(jù)處理將數(shù)據(jù)轉(zhuǎn)換成信息的過程。信息是數(shù)據(jù)處理的結(jié)果。數(shù)據(jù)、信息是相對(duì)的,例如年齡即可是數(shù)據(jù),又可以是信息,因此有時(shí)有人把“處理數(shù)據(jù)得出信息”說成“信息處理”。,1/17,、計(jì)算機(jī)數(shù)據(jù)管理,2/17,1.1

3、.2 數(shù)據(jù)庫系統(tǒng) 1.有關(guān)數(shù)據(jù)庫的概念,數(shù)據(jù)庫 數(shù)據(jù)庫是存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上,結(jié)構(gòu)化的相關(guān)數(shù)據(jù)集合。它包括數(shù)據(jù)和數(shù)據(jù)間的聯(lián)系,往往被多個(gè)用戶、多個(gè)應(yīng)用程序所共享。 數(shù)據(jù)庫應(yīng)用系統(tǒng) 數(shù)據(jù)庫應(yīng)用系統(tǒng)是指系統(tǒng)開發(fā)人員利用數(shù)據(jù)庫系統(tǒng)資源開發(fā)出來的,面向某一類實(shí)際應(yīng)用的應(yīng)用軟件系統(tǒng)。 它是以數(shù)據(jù)庫為基礎(chǔ)和核心的計(jì)算機(jī)應(yīng)用系統(tǒng)。 例如:財(cái)務(wù)管理系統(tǒng)、圖書管理系統(tǒng)、教學(xué)管理系統(tǒng)等等。,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫管理系統(tǒng)(DBMS)是對(duì)數(shù)據(jù)庫的建立、使用和維護(hù)進(jìn)行專門管理的軟件系統(tǒng)。,數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)庫系統(tǒng)是指引進(jìn)數(shù)據(jù)庫技術(shù)后的計(jì)算機(jī)系統(tǒng)。它由五部分組成,各層次間的關(guān)系如右圖所示:,硬件系統(tǒng),操作系統(tǒng),數(shù)據(jù)庫管

4、理系統(tǒng),數(shù)據(jù)庫應(yīng)用系統(tǒng),開發(fā)人員,最終用戶,數(shù)據(jù)庫管理員,3/17,2.數(shù)據(jù)庫系統(tǒng)的特點(diǎn),實(shí)現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余 建立數(shù)據(jù)庫時(shí),從全局出發(fā)確定數(shù)據(jù)庫結(jié)構(gòu),充分發(fā)揮數(shù)據(jù)共享的優(yōu)勢(shì),最大限度地減少數(shù)據(jù)冗余。 采用特定的數(shù)據(jù)模型 庫管理系統(tǒng)不同,數(shù)據(jù)模型就不同,庫的結(jié)構(gòu)也就不同。 具有較高的數(shù)據(jù)獨(dú)立性 系統(tǒng)實(shí)現(xiàn)了應(yīng)用程序?qū)傮w邏輯結(jié)構(gòu)、物理存儲(chǔ)結(jié)構(gòu)之間較高的獨(dú)立性。用戶只用操作應(yīng)用程序,無需考慮邏輯結(jié)構(gòu)和數(shù)據(jù)存儲(chǔ)位置。 有統(tǒng)一的數(shù)據(jù)控制功能 系統(tǒng)提供必要的保護(hù)措施,有并發(fā)訪問控制功能、安全控制功能、和數(shù)據(jù)完整性控制功能。保證數(shù)據(jù)庫可以被多個(gè)用戶或應(yīng)用程序共享,允許多個(gè)用戶同時(shí)使用同一個(gè)數(shù)據(jù)庫。,

5、4/17,1.1.3 數(shù)據(jù)模型,1.實(shí)體的描述 實(shí)體 客觀存在并且可以相互區(qū)別的事物稱為實(shí)體??梢允菍?shí)際事物,如職工、圖書或抽象事件,如退休、借書等。 實(shí)體的屬性 描述實(shí)體的特性稱為屬性。例如職工屬性可有:職工號(hào)、姓名、性別、出生年月等。圖書屬性可有:總編號(hào)、分類號(hào)、書名、作者、單價(jià)、出版社等。借書屬性可有:圖書編號(hào)、借閱人、借閱時(shí)間、歸還時(shí)間等。,實(shí)體型和實(shí)體集,一個(gè)實(shí)體可用屬性值的集合表示,而屬性的集合則表示一種實(shí)體的類型,簡稱實(shí)體型。同類型實(shí)體的集合,稱為實(shí)體集。 例如:(姓名,性別,職稱,執(zhí)教科目)表示教師類型;(華羅庚,男,教授,數(shù)學(xué))表示一個(gè)教師;多個(gè)教師的集合就是教師實(shí)體集。 實(shí)

6、體集的表示 在VFP中,用“表”來存放實(shí)體集,用“字段”表示實(shí)體的屬性。字段值的集合組成表的一條記錄,代表一個(gè)實(shí)體。所有記錄就是實(shí)體集。,5/17,2.實(shí)體間的聯(lián)系及聯(lián)系的種類,一對(duì)一聯(lián)系(one-to one relationship) 主表中的一條記錄只與從表中的一條記錄相關(guān)聯(lián),并且主表的記錄不同,對(duì)應(yīng)的從表中的記錄也不同。 例如,同一單位的人事表的記錄就與工資表的記錄存在一對(duì)一的聯(lián)系。這聯(lián)系是靠職工號(hào)相同為依據(jù)的。 一對(duì)多聯(lián)系(one-to-many relationship) 主表中的一條記錄與從表中的多條記錄相關(guān)聯(lián),且從表中的每條記錄只能與主表中的一條記錄相對(duì)應(yīng)。 是最普遍的聯(lián)系,如

7、一部門有多個(gè)職工,每個(gè)職工只能屬于一個(gè)部門等。 多對(duì)多聯(lián)系(many-to-many relationship) 主表中的一條記錄與從表中的多條記錄相關(guān)聯(lián),且從表中的每條記錄也與主表中的多條記錄相對(duì)應(yīng)。 例如一個(gè)老師有多個(gè)學(xué)生,反之每一個(gè)學(xué)生也有多個(gè)老師。,6/17,學(xué)生名,教研室,3.數(shù)據(jù)模型簡介,層次數(shù)據(jù)模型 用樹形結(jié)構(gòu)表示實(shí)體及實(shí)體間聯(lián)系的模型稱為層次模型。 用層次模型建立的數(shù)據(jù)庫是層次數(shù)據(jù)庫。它反映實(shí)體間的一對(duì)多聯(lián)系,不能直接表示多對(duì)多的聯(lián)系,不便于擴(kuò)充和修改。,系名,地址,電話,教研室名電話,教師名住處,教師名住處,教研室名,電話,教師名,住處,學(xué)生名,成績,成績,網(wǎng)狀模型 用網(wǎng)狀結(jié)

8、構(gòu)表示實(shí)體及實(shí)體間聯(lián)系的模型稱為網(wǎng)狀模型。 用這種模型建立的數(shù)據(jù)庫是網(wǎng)狀數(shù)據(jù)庫。網(wǎng)狀數(shù)據(jù)庫難以實(shí)現(xiàn)數(shù)據(jù)的修改和擴(kuò)充。,專業(yè)系,課程,學(xué)生,教師,任課,選課,關(guān)系數(shù)據(jù)模型 用二維表結(jié)構(gòu)來表示實(shí)體及實(shí)體間的聯(lián)系的模型稱為關(guān)系模型。 操作的對(duì)象和結(jié)果都是二維表。它描述一致、模型單一、理論完備、易學(xué)易用,因此應(yīng)用廣泛。新推出的數(shù)據(jù)庫系統(tǒng)幾乎都是關(guān)系型的。,7/17,1.2關(guān)系數(shù)據(jù)庫1.2.1 關(guān)系模型 (1).關(guān)系術(shù)語,對(duì)關(guān)系的描述稱為關(guān)系模式,一個(gè)關(guān)系模式對(duì)應(yīng)一個(gè)關(guān)系的結(jié)構(gòu)。 其格式為: 關(guān)系名(屬性名1,屬性名2,屬性名n) 在VFP中表示為表結(jié)構(gòu): 表名(字段名1,字段名2,字段名n),一個(gè)關(guān)系

9、就是一張二維表,每個(gè)關(guān)系有一個(gè)關(guān)系名,在VFP中,一個(gè)關(guān)系存儲(chǔ)為一個(gè)文件,文件的擴(kuò)展名為“.DBF”,稱為“表”。,關(guān)系模式,關(guān)系,元組,二維表中(水平方向)的一行是一個(gè)元組。 元組對(duì)應(yīng)一個(gè)具體的記錄。一個(gè)表中若包含多條記錄,也可以說這個(gè)關(guān)系中包含多個(gè)元組。,屬性,二維表中垂直方向的列稱為屬性,列名即屬性名。在VFP中表示為“字段名” 。 用實(shí)體屬性描述實(shí)體,用字段名及其類型組成VFP表的結(jié)構(gòu)。,8/17,域,域是屬性的取值范圍,即不同元組對(duì)同一個(gè)屬性的取值所限定的范圍。例如:性別只能從“男”、“女”中取其一。,關(guān)鍵字,能夠(唯一地)標(biāo)識(shí)一個(gè)元組的屬性或?qū)傩缘慕M合。 在VFP中,關(guān)鍵字表示為字

10、段或字段的組合。,外部關(guān)鍵字,如果表中的一個(gè)字段不是本表的主關(guān)鍵字或候選關(guān)鍵字,而是另一個(gè)表的主關(guān)鍵字或候選關(guān)鍵字,則這個(gè)字段(屬性)就稱為外部關(guān)鍵字。,(2).關(guān)系的特點(diǎn),關(guān)系必須規(guī)范化,表中不能再含表. 同一關(guān)系中不能出現(xiàn)相同屬性名. 關(guān)系中不允許有完全相同的元組. 一個(gè)關(guān)系中元組的次序無關(guān)緊要. 一個(gè)關(guān)系中屬性的次序無關(guān)緊要.,(3).實(shí)際關(guān)系模型,例1.1部門職工工資關(guān)系模型,9/17,1.2.2關(guān)系運(yùn)算,R,R,S,S,S,R,11/17,1.傳統(tǒng)的集合運(yùn)算 設(shè)有兩個(gè)相同結(jié)構(gòu)的關(guān)系R、S,例如R是參加計(jì)算機(jī)小組的集合,S是參加橋牌小組的集合。 并 并是由屬于這兩個(gè)關(guān)系的元組組成的集合

11、. R 并 S就是參加計(jì)算機(jī)小組或參加橋牌小組的集合。 差 差是由屬于R但不屬于S的元組組成的集合,即是從R中去掉S中也有的元組。R 差 S就是參加計(jì)算機(jī)小組而又沒有參加橋牌小組的集合。 交 交是由既屬于R又屬于S的元組組成的集合。即交的結(jié)果是R和S的共同元組。R 交 S就是既參加計(jì)算機(jī)小組又參加橋牌小組的集合。,2.專門的關(guān)系運(yùn)算,選擇 從關(guān)系中找出滿足給定條件的元組。 是從行中進(jìn)行選擇的運(yùn)算,其關(guān)系模式不變。選擇的元組是原關(guān)系的一個(gè)子集。,部門號(hào)=“d01”,投影,從關(guān)系模式中指定若干個(gè)屬性。 投影是從列中進(jìn)行選擇的運(yùn)算。提供了垂直調(diào)整關(guān)系的手段。,職工號(hào)、姓名,12/17,聯(lián)接,聯(lián)接是關(guān)

12、系的橫向結(jié)合。聯(lián)接運(yùn)算將兩個(gè)關(guān)系模式拚接成一個(gè)更寬的關(guān)系模式,生成的新關(guān)系中包含滿足聯(lián)接條件的元組。 聯(lián)接是通過聯(lián)接條件來控制的,聯(lián)接條件中將出現(xiàn)兩個(gè)表中的公共屬性名,或具有相同語義可比的屬性。聯(lián)接結(jié)果是滿足條件的所有記錄。,自然聯(lián)接,在聯(lián)接運(yùn)算中,按照字段值相等為條件進(jìn)行的聯(lián)接操作稱為等值聯(lián)接。自然聯(lián)接是去掉重復(fù)屬性的等值聯(lián)接。,不投影,等值聯(lián)接,重復(fù)字段,13/17,1.3數(shù)據(jù)庫設(shè)計(jì)基礎(chǔ) 1.3.1數(shù)據(jù)庫設(shè)計(jì)步驟 1.設(shè)計(jì)原則,一個(gè)表描述一個(gè)實(shí)體或?qū)嶓w間的一種聯(lián)系。避免大而雜的表,首先分離需要作為單個(gè)主題而獨(dú)立保存的信息,將不同信息分散在不同表中。,盡量避免在表之間出現(xiàn)重復(fù)字段,除了保證表

13、中有反映與其它表之間存在聯(lián)系的外部關(guān)鍵字之外,盡量避免在表之間出現(xiàn)重復(fù)字段。例如在課程表中如有課程名字段,在選課表中就不應(yīng)再有。,表中字段必須是原始數(shù)據(jù)或基本數(shù)據(jù)元素,表中不應(yīng)包括通過計(jì)算可以得到的“二次數(shù)據(jù)”或多項(xiàng)數(shù)據(jù)的組合。 例如在職工表中,如果有了身份證號(hào)字段,就不應(yīng)再有年齡和出生年月字段。,用外部關(guān)鍵字保證表間聯(lián)系,表間關(guān)聯(lián)依靠外部關(guān)鍵字維系,使得表具有合理結(jié)構(gòu),不僅存儲(chǔ)了所需要的實(shí)體信息,并且反映出實(shí)體之間客觀存在的聯(lián)系。,遵從概念單一化“一事一地”原則,14/17,15/17,1.3.2數(shù)據(jù)庫設(shè)計(jì)過程(1)需求分析,需求分析;確定表;定字段;定聯(lián)系;求精。,信息需求。數(shù)據(jù)、類型、域

14、 處理需求。功能、方式、場(chǎng)合 安全性和完整性要求。 多交流、多收集、耐心、細(xì)致,弄清業(yè)務(wù)流程、瓶頸問題,收集報(bào)表、合同、檔案、單據(jù)、計(jì)劃等等,2.設(shè)計(jì)步驟,(2)確定需要的表,是數(shù)據(jù)庫設(shè)計(jì)中技巧性最強(qiáng)的一步,因?yàn)橛脩舻男枨笸荒苤苯映蔀樵O(shè)計(jì)數(shù)據(jù)庫的線索,還需要認(rèn)真分析、抽象、挖出本質(zhì)特性,才能確定需要的表。,(3)確定所需字段,(4)確定聯(lián)系,一對(duì)多聯(lián)系 。 “一方”的主關(guān)鍵字段應(yīng)在“多方”的表中。 多對(duì)多聯(lián)系。創(chuàng)建含有兩個(gè)表的主關(guān)鍵字的“紐帶表”,改多對(duì)多聯(lián)系為兩個(gè)一對(duì)多聯(lián)系。 參見圖書讀者關(guān)系 一對(duì)一聯(lián)系??紤]合并。,(5)設(shè)計(jì)求精,根據(jù)用戶意見反復(fù)修改和調(diào)整,每字段直接和實(shí)體相關(guān)。 以

15、最小邏輯單位存儲(chǔ)信息。 表中字段必須是原始數(shù)據(jù)。 確定主關(guān)鍵字字段。,例1.2 圖書讀者借閱關(guān)系模型,10/17,1993,1994 Ms FoxPro 2.5b,2.6 Windows 16位微機(jī),1992 Fox-MS FoxPro 2.0,2.5 Dos 16位微機(jī),1987 Ashton-tate dbase Dos 16位微機(jī),1984,1985 Ashton-tate dbase,+ Dos 16位微機(jī),1998 Ms VFP 6.0 Windows 32位微機(jī),1995.12 Ms VFP 5.0 Windows 32位微機(jī),1995.6 Ms VFP 3.0 Windows 3

16、2位微機(jī),1.4Visual FoxPro系統(tǒng)概述,Visual FoxPro 6.0(中文版)是Microsoft公司1998年發(fā)布的可視化編程語言集成包Visual Stadio中的一員。是可運(yùn)行于Windows 95/98/2000、Windows NT平臺(tái)的32位功能強(qiáng)大的面向?qū)ο蟮奈C(jī)數(shù)據(jù)庫開發(fā)系統(tǒng)。,1.4.1歷史沿革,Dbase,70年代末 Ashton-tate dbase Dos 8位微機(jī),1987 Fox Foxbase+1.0 2.1 Dos 16位微機(jī),1989 Fox FoxPro 1.0 Dos 16位微機(jī),Foxbase,FoxPro,VFP,16/17,1.4.

17、2VFP 6.0的特點(diǎn) 1.增強(qiáng)的項(xiàng)目及數(shù)據(jù)庫管理,借助項(xiàng)目管理器可創(chuàng)建和集中管理應(yīng)用程序中的任何元素;可訪問所有向?qū)А⑸善?、工具。使用快速選取記錄集的技術(shù)。允許多個(gè)用戶同時(shí)創(chuàng)建或修改。,2. 開發(fā)的生產(chǎn)率高,注重歷史延續(xù)性,使過去用DBASE、Foxbase、FoxPro編寫的程序不加或稍加修改即可使用。 提供了各種工具、向?qū)Ш图夹g(shù),許多功能不用編程即可自動(dòng)生成。,3.互操作性和支持Internet,支持具有對(duì)象的鏈接與嵌入(OLE)拖放,可以在VF 6.0 和其他應(yīng)用程序之間以及在VF內(nèi)部移動(dòng)數(shù)據(jù)。容易創(chuàng)建與Internet或其它基于Windows應(yīng)用程序一起使用的應(yīng)用程序。,4.充分利

18、用已有數(shù)據(jù),提供了轉(zhuǎn)換器工具,可將VFP 3.0 、VFP 5.0的各種文件轉(zhuǎn)換為VFP 6.0文件。xBASE、FoxPro、VB、Excel 、Word、文本數(shù)據(jù)等都可共享。,17/17,第二章 VFP系統(tǒng)初步2.1 VFP 6.0的安裝與啟動(dòng)2.1.1 基本配置要求:,處理器:486DX/66 MHz以上;內(nèi)存:16MB以上;硬盤空間:典型85, 最大90MB;有鼠標(biāo)、光驅(qū)、VGA以上彩顯;操作系統(tǒng):Windows 95/98以上。,將VFP系統(tǒng)光盤插入光驅(qū)。 打開光盤,雙擊setup.exe文件。 按向?qū)崾荆瑔螕簟跋乱徊健薄?選擇“接受協(xié)議”,單擊“下一步”。 鍵入產(chǎn)品ID和用戶信息

19、,擊“下一步”。 選擇公用文件夾位置,按“典型安裝”或“自定義安裝”,直至安裝結(jié)束。,2.1.2 安裝VFP 6.0 1.安裝VFP系統(tǒng)的步驟:,1/17,安裝示例 VF系統(tǒng)安裝后,自動(dòng)啟動(dòng)MSDN安裝向?qū)В恍璨迦隡SDN光盤,擊“下一步”,選“自定義”,選“VFP產(chǎn)品示例”,直至安裝完畢。 MSDN是一種訂閱形式的一年四期的光盤資料庫,分開發(fā)版、專業(yè)版、宇宙版三個(gè)級(jí)別。Visual Studio企業(yè)版包括:VB、VC+、VJ+、VID、VFP及VSS。 安裝聯(lián)機(jī)文檔 Visual FoxPro 6.0聯(lián)機(jī)文檔也需要使用“MSDN安裝向?qū)А边M(jìn)行安裝。先選取“自定義”選項(xiàng),然后選擇“Visua

20、l FoxPro 6.0文檔”復(fù)選框,按提示操作即可。,2.安裝示例和聯(lián)機(jī)文檔,3.安裝后自定義系統(tǒng),打開“控制面板”,雙擊“添加/刪除程序”圖標(biāo),出現(xiàn)屬性對(duì)話框;選中“Visual FoxPro6.0”,單擊“添加/刪除”鈕,出現(xiàn)安裝維護(hù)對(duì)話框;單擊“添加/刪除”鈕,出現(xiàn)“VFP自定義安裝”對(duì)話框;根據(jù)需要選擇或清除對(duì)話框組件前的復(fù)選框,單擊“繼續(xù)”,直至結(jié)束。,2/17,2.1.3 啟動(dòng)與退出VFP 6.0,擊“開始”,選“程序” MS Visual FoxPro 6.0MS Visual FoxPro 6.0單擊。 第一次啟動(dòng)時(shí),將彈出“歡迎使用”屏,單擊“關(guān)閉此屏” ,則進(jìn)入主界面。

21、選中“以后不再顯示此屏”后,再單擊“關(guān)閉此屏”,則以后就直接進(jìn)入主界面。,單擊標(biāo)題欄的“關(guān)閉窗”。 從“文件” 菜單中選“退出” 擊左上方狐貍圖標(biāo),從下拉菜單中選“關(guān)閉”或按Alt+F4。 在命令窗口中鍵入quit,回車,2.退出系統(tǒng),1.啟動(dòng)系統(tǒng),2.2 VFP的用戶界面2.2.1 VFP的主界面,在命令窗中鍵入各命令,回車。已執(zhí)行命令在窗口中保留,需再執(zhí)行時(shí),將光標(biāo)移至該行,回車即可。 開閉命令窗口方法:擊“窗口”“命令窗口”打開;擊關(guān)閉窗關(guān)閉。擊工具按鈕 按下打開;彈起關(guān)閉。按Ctrl+F2打開;按Ctrl+F4關(guān)閉。,1. VFP的三種工作方式,利用菜單或工具欄按鈕。 在命令窗口中輸入

22、命令。 用生成器產(chǎn)生或自編程序。 前兩種屬于交互式,后一種為自動(dòng)化工作方式。,2.菜單操作,鼠標(biāo)操作:單擊菜單項(xiàng),從下拉菜單中選擇。 鍵盤操作:Alt+熱鍵(帶下劃線的字母鍵)。 光標(biāo)操作:選子菜單時(shí),按光標(biāo)(箭頭)鍵移動(dòng)光帶到所需菜單選項(xiàng),回車。,3. 命令操作,4. 項(xiàng)目管理器窗口,項(xiàng)目管理器是各種數(shù)據(jù)和對(duì)象的主要組織工具。采用分類管理,是同一項(xiàng)目各文件的集合,是系統(tǒng)的控制中心。 其文件以.pjx和.pjt保存。,4/17,2.2.2 工具欄的使用,默認(rèn)界面僅包括“常用”和“表單設(shè)計(jì)器”工具欄,顯示在菜單欄下面,用戶可以將其拖放到任意位置。此外,還提供了其他9個(gè)工具欄,它們是:報(bào)表控件、報(bào)

23、表設(shè)計(jì)器、表單控件、布局、查詢?cè)O(shè)計(jì)器、打印預(yù)覽、調(diào)色板、視圖設(shè)計(jì)器、數(shù)據(jù)庫設(shè)計(jì)器。,1. 顯示或隱藏工具欄,工具欄會(huì)隨文件的開關(guān)而自動(dòng)開關(guān),也可在任何時(shí)候開關(guān)任何工具欄。方法是,擊“顯示”菜單,從下拉菜單中選“工具欄”,在彈出的對(duì)話框中選擇后,擊“確定”鈕即可。 也可在任何一個(gè)工具欄的空白處右擊,打開工具欄快捷菜單,從中選擇開閉項(xiàng)或打開工具欄對(duì)話框。,5/17,2. 定制工具欄,用戶創(chuàng)建自己的工具欄或修改現(xiàn)有的工具欄統(tǒng)稱為定制工具欄。創(chuàng)建步驟是: 擊“顯示”菜單,選“工具欄” 。 單擊“新建”按鈕,彈出“新工具欄”對(duì)話框。 鍵入工具欄名稱,例如“new”,擊“確定” 。 選“定制工具欄”對(duì)話框

24、左側(cè)“分類”中之一。 根據(jù)需要選右側(cè)按鈕,拖到“new”工具欄中。 單擊“定制工具欄”對(duì)話框上的“關(guān)閉”按鈕。 修改:擊“顯示” , “工具欄” ,選擇后擊“定制”,增刪后單擊“定制工具欄”對(duì)話框上的“關(guān)閉”按鈕。,6/17,2.2.3 VFP的配置,VFP的配置決定其外觀和行為的默認(rèn)值??墒褂谩斑x項(xiàng)”對(duì)話框設(shè)置:單擊“工具”菜單下的“選項(xiàng)”,打開其對(duì)話框,選擇選項(xiàng)卡。選項(xiàng)共12個(gè),分別是:顯示、常規(guī)、數(shù)據(jù)、遠(yuǎn)程數(shù)據(jù)、文件位置、表單、項(xiàng)目、控件、區(qū)域、調(diào)試、語法著色和字段映像。均用交互方式查看和設(shè)置。也可以用set命令設(shè)置。,3. 修改現(xiàn)有工具欄,擊“顯示”菜單,選“工具欄”,彈出其對(duì)話框。

25、單擊“定制”按鈕,彈出“定制工具欄”對(duì)話框。 向要修改的工具欄上拖放新圖標(biāo)按鈕可增加新工具。 把某圖標(biāo)拖到工具欄外可刪除該工具。 單擊“定制工具欄”對(duì)話框上的“關(guān)閉”按鈕。,7/17,1.使用“選項(xiàng)”對(duì)話框,在區(qū)域選項(xiàng)卡中設(shè)置日期時(shí)間顯示方式。,設(shè)置默認(rèn)目錄,選“文件位置”卡,選“默認(rèn)目錄”,按“修改”,出現(xiàn)“更改文件位置”對(duì)話框,選中“使用默認(rèn)目錄”激活“定位默認(rèn)目錄”,鍵入或選好路徑后按“確定”。,在“文件位置” 卡中,選 “幫助文件”,擊“修改” 。通過“更改文件位置”對(duì)話框指定文件。擊“確定”。 如果已安裝MSDN,則幫助的默認(rèn)行為是調(diào)用Msdnvs98.col。如果該文件不存在,則將

26、默認(rèn)使用Foxhelp.chm。,設(shè)置默認(rèn)幫助文件,設(shè)置日期和時(shí)間顯示格式,8/17,2. 保存設(shè)置,VFP配置修改既可以是臨時(shí)的,也可以是永久的。臨時(shí)設(shè)置保存在內(nèi)存中,本次有效,退出時(shí)釋放。永久設(shè)置保存在Windows注冊(cè)表中,作為以后再啟動(dòng)的默認(rèn)設(shè)置。,保存為本次有效,在“選項(xiàng)”對(duì)話框中選擇各項(xiàng)設(shè)置后,單擊“確定”按鈕,關(guān)閉“選項(xiàng)”對(duì)話框。,保存為默認(rèn)設(shè)置 設(shè)置更改后,“設(shè)置為默認(rèn)值”按鈕被激活,單擊之,再單擊“確定”按鈕,關(guān)閉“選項(xiàng)”對(duì)話框。,9/17,2.3 項(xiàng)目管理器,處理數(shù)據(jù)和對(duì)象的組織工具,提供了便利的工作平臺(tái)。 一可用簡便的、可視化的方法來組織和處理一切文件。 二可將應(yīng)用系統(tǒng)編

27、譯成一個(gè)應(yīng)用文件或可執(zhí)行文件。,2.3.1 創(chuàng)建項(xiàng)目,1.創(chuàng)建項(xiàng)目 擊“文件”菜單,選“新建” 。 選“項(xiàng)目”,擊“新建文件”圖標(biāo)。 輸入項(xiàng)目名稱,選擇文件夾。 單擊“保存”按鈕。,打開: 擊“文件”,選“打開”或擊工具欄的“打開”鈕。 在“文件類型”中選“項(xiàng)目” 。 雙擊項(xiàng)目名或選后按“確定”。 關(guān)閉:單擊項(xiàng)目管理器右上方的“關(guān)閉”按鈕。,2.打開和關(guān)閉項(xiàng)目,10/17,3.各類文件選項(xiàng)卡,“數(shù)據(jù)”選項(xiàng)卡,包含數(shù)據(jù)庫、自由表、查詢和視圖。,”文檔”選項(xiàng)卡,包含表單、報(bào)表和標(biāo)簽。,“類”選項(xiàng)卡,顯改自己創(chuàng)建的要修改的類,“代碼”選項(xiàng)卡,三大類程序.prg文件、函數(shù)API Libries和.ap

28、p文件。,“其他”選項(xiàng)卡,包括文本文件、菜單文件和其他文件,如位圖文件.bmp、圖標(biāo)文件.ico等。,11/17,共有6個(gè)選軟項(xiàng)卡,其中“數(shù)據(jù)”、“文檔”、“類”、“代碼”、“其他”5個(gè)選項(xiàng)卡,用于分類顯示各種文件,“全部”選項(xiàng)卡用于集中顯示該項(xiàng)目中的所有文件。 選項(xiàng)卡為數(shù)據(jù)提供了一個(gè)組織良好的分層結(jié)構(gòu)視圖,如果某類型數(shù)據(jù)項(xiàng)有一個(gè)或多個(gè)數(shù)據(jù)項(xiàng),則其標(biāo)志前有個(gè)加號(hào)。單擊加號(hào)可查看列表,單擊減號(hào)可折疊列表。,2.3.2 使用項(xiàng)目管理器,在項(xiàng)目管理器中,用戶可以通過可視化的直觀操作在項(xiàng)目中創(chuàng)建、添加、修改、移去和運(yùn)行指定的文件。,1.創(chuàng)建文件,定類型,擊“新建”命令,打開相應(yīng)設(shè)計(jì)器創(chuàng)建新文件。,2.

29、添加文件,選類型,擊“添加”按鈕,在“打開”對(duì)話框中選擇要添加的文件,擊“打開”對(duì)話框的“確定”。,4.移去文件,選文件,擊“移去”按鈕或從“項(xiàng)目” 菜單中選擇“移去文件”命令,系統(tǒng)將出現(xiàn)提示框。擊“移去” 則從項(xiàng)目中移去,該文件仍存在;擊“刪除” 則移去且刪除文件。,5.其他按鈕,“瀏覽” :僅當(dāng)選定表時(shí)用。 “關(guān)閉”與“打開” :選定庫時(shí)用。 “預(yù)覽” :打印預(yù)覽用。 “運(yùn)行” :選查詢,表單,程序時(shí)用。 “連編” :連編一項(xiàng)目或應(yīng)用程序,3.修改文件,選文件,擊修改或選擇項(xiàng)目菜單的“修改文件”命令,打開相應(yīng)的設(shè)計(jì)器,修改文件。,12/17,2.3.3 定制項(xiàng)目管理器,移動(dòng)和縮放,將鼠標(biāo)指

30、針放置在窗口的標(biāo)題欄上拖拽鼠標(biāo)即可移動(dòng)項(xiàng)目管理器窗口的位置。 將鼠標(biāo)放置在窗口頂端、低端、兩邊或角上,拖動(dòng)鼠標(biāo)便可以擴(kuò)大或縮小窗口的尺寸。,折疊項(xiàng)目管理器,單擊右上角的 按鈕項(xiàng)目管理器窗口變?yōu)檎郫B狀態(tài),窗口僅顯一個(gè)選項(xiàng)卡,不顯命令按鈕,同時(shí) 變成 ,稱為“還原”按鈕。單擊之,則窗口展開還原為正常界面。,拆分項(xiàng)目管理器,若要還原拆分,可單擊選項(xiàng)卡上的“關(guān)閉”按鈕,也可用鼠標(biāo)將其拖回。 單擊 折疊項(xiàng)目管理器,選定一個(gè)選項(xiàng)卡,將其拖離。此時(shí)選項(xiàng)卡上出現(xiàn)圖釘圖標(biāo),單擊之,則顯示在頂層。再單擊,取消頂層顯示。,停放項(xiàng)目管理器,將項(xiàng)目管理器拖到VFP主窗口頂部。停放后變成了窗口工具欄的一部分,不能將其整個(gè)

31、展開,但是可以單擊每個(gè)選項(xiàng)卡來進(jìn)行相應(yīng)的操作。可以從中拖開選項(xiàng)卡。,13/17,2.4VFP向?qū)?、設(shè)計(jì)器、生成器簡介,Vvisual FoxPro 6.0提供了許多真正面向?qū)ο蟮某绦蛟O(shè)計(jì)工具,主要是各種向?qū)?、設(shè)計(jì)器和生成器,本節(jié)將簡要介紹這些工具的功能、使用原則及相關(guān)知識(shí), 具體的使用方法則在以后各章節(jié)中再予以詳述。,2.4.1VFP 的向?qū)?向?qū)且环N交互式程序,通過用戶在一系列向?qū)聊簧匣卮饐栴}或選擇選項(xiàng),幫助用戶快速完成一般性的 任務(wù),自動(dòng)生成執(zhí)行任務(wù)的程序。 VFP提供向?qū)?0多個(gè),常用的有創(chuàng)建表單、編排報(bào)表、建立查詢、制作圖表、生成透視表、生成交叉表以及在Web上按HTML格式發(fā)布等

32、。,14/17,1.啟動(dòng)向?qū)?項(xiàng)目管理器-類型 “新建” “新建XX” “XX向?qū)А?。 “文件” “新建” “新建”對(duì)話框 “新建”按鈕類型向?qū)?新建工具鈕 在“工具”菜單中選擇“向?qū)А弊硬藛巍?單擊“工具欄”上的“向?qū)А眻D標(biāo)按鈕。,2.使用向?qū)?依次回答問題,單擊“下一步”。 操作中出現(xiàn)錯(cuò)誤或想法變化,擊“上一步”修改。中止操作擊“取消”。遇困難按F1。 最后提供標(biāo)題,滿意擊“完成”。 如某步擊“完成”,則用默認(rèn)值。,3.修改用向?qū)?chuàng)建的項(xiàng),用相應(yīng)的設(shè)計(jì)器打開修改,不能用向?qū)Т蜷_用向?qū)Ы⒌奈募5强梢栽谕顺鱿驅(qū)е邦A(yù)覽向?qū)ЫY(jié)果并做適當(dāng)?shù)男薷摹?15/17,2.4.2VFP的設(shè)計(jì)器,VF

33、P的設(shè)計(jì)器是創(chuàng)建和修改應(yīng)用系統(tǒng)各種組件的可視化工具。利用各種設(shè)計(jì)器使得管理數(shù)據(jù)變得輕而易舉,縮短開發(fā)周期、提高開發(fā)效率。,1.各種設(shè)計(jì)器,包括表、數(shù)據(jù)庫、報(bào)表、查詢、視圖、表單、菜單、數(shù)據(jù)環(huán)境、連接設(shè)計(jì)器。,2.打開設(shè)計(jì)器,有三種方法: 在“項(xiàng)目管理器”下,選相應(yīng)選項(xiàng)卡,選類型,擊“新建”,再擊“新建XX”對(duì)話框中的新建按鈕。 從“文件”菜單中選“新建”或擊工具上的“新建”鈕,選類型,擊“新建文件”鈕。 從“顯示”菜單中打開。,16/17,2.4.3VFP的生成器,生成器是帶有選項(xiàng)卡的對(duì)話框,用于簡化對(duì)表單、復(fù)雜控件和參照完整性代碼的創(chuàng)建和修改。 一般在如下5種情況下啟動(dòng)生成器: 用表單生成器

34、來創(chuàng)建修改表單。 對(duì)表單的控件使用相應(yīng)生成器。 用自動(dòng)格式生成器設(shè)置控件格式。 使用參照完整性生成器。 使用應(yīng)用程序生成器生成應(yīng)用程序。,1.各種生成器,包括表單、表格、編輯框、列表框、文本框、組合框、命令按鈕、選項(xiàng)按鈕、自動(dòng)格式、參照完整性、應(yīng)用程序生成器,2.啟動(dòng)生成器,以后相應(yīng)章節(jié)介紹。,17/17,第三章數(shù)據(jù)與數(shù)據(jù)運(yùn)算,返 回,3.1 常量與變量,3.2 表達(dá)式,3.3 常用函數(shù),第三章 數(shù)據(jù)與數(shù)據(jù)運(yùn)算,我們處理的數(shù)據(jù),有存在表中的數(shù)據(jù),還有存在內(nèi)存中的數(shù)據(jù)。本章我們只談存在內(nèi)存中的數(shù)據(jù)。根據(jù)計(jì)算機(jī)處理數(shù)據(jù)的形式來劃分,可分為:常量、變量、表達(dá)式和函數(shù)四種。 常量和變量是數(shù)據(jù)處理和數(shù)據(jù)

35、運(yùn)算的基本對(duì)象,而表達(dá)式和函數(shù)則體現(xiàn)了語言對(duì)數(shù)據(jù)進(jìn)行運(yùn)算和處理的能力及功能。,3.1常量與變量,每個(gè)數(shù)據(jù)都有一定的類型,數(shù)據(jù)的類型決定了數(shù)據(jù)的存儲(chǔ)方式和運(yùn)算方式,所以在定義常量和變量時(shí)也必須指明其類型。 他們的類型包括字符型、數(shù)值型、貨幣型、邏輯型、日期型和日期時(shí)間型6種。,1/11,3.1.1常量,常量用以表示一個(gè)具體的、不變的值。 不同類型的常量有不同的書寫格式和不同的取值范圍。,1.數(shù)據(jù)型常量,數(shù)據(jù)型常量即常數(shù),用來表示數(shù)量的大小,由數(shù)字09、小數(shù)點(diǎn)和正負(fù)號(hào)構(gòu)成。若整數(shù)部分不為0,則首位不可為0??梢允褂每茖W(xué)記數(shù)法書寫。取值范圍為:-1019 1020 。 例如:12、3.45、-6.4

36、7、5.87E12(5.871012)、 1.6E-13(1.610-13)。,2.貨幣型常量,用來表示貨幣值,其書寫格式與數(shù)值型常量類似,但要加上一個(gè)前置的“$”。在存儲(chǔ)和計(jì)算時(shí),采用4位小數(shù),多余小數(shù)位自動(dòng)四舍五入。不能用科學(xué)記數(shù)法,在內(nèi)存中占8個(gè)字節(jié)。取值范圍: 922337203685477.5807 922337203685477.5807,2/11,3.字符型常量,字符型常量也稱為字符串,其表示方法是用兩個(gè)成對(duì)出現(xiàn)的半角的單引號(hào)、雙引號(hào)或方括號(hào)把字符串夾起來。這里的單引號(hào)、雙引號(hào)和方括號(hào)不作為常量本身的內(nèi)容,只規(guī)定常量的起止界限,所以叫做“定界符”。不包含任何字符的字符串叫“空串”

37、(“”),它和包含空格的字符串(“ ”)是不同的。,4.日期型常量,基本知識(shí) 定界符是一 對(duì)花括號(hào),內(nèi)含年月日,用“/”、“-”、“.”和空格分隔,“/”為默認(rèn)分隔符。 傳統(tǒng)格式 mm/dd/yy和嚴(yán)格格式 yyyy-mm-dd 占8字節(jié)。取值范圍:0001-01-019999-12-31。 嚴(yán)格格式可在任何情況下使用,傳統(tǒng)格式只在set strictdate to 0狀態(tài)下使用。,3/11,4.影響日期格式的設(shè)置命令,Set mark to 分隔符 設(shè)置分隔符(-/.空格 ),默認(rèn)“/” Set date to 短語 設(shè)置日期格式,默認(rèn)AMERICAN 短語設(shè)置 日期格式 短語設(shè)置 日期格式

38、 AMERICAN mm/dd/yy ANSI yy.mm.dd BRITISH/FRENCH dd/mm/yy GERMAN dd.mm.yy ITALIAN dd-mm-yy JAPAN yy/mm/dd USA mm-dd-yy MDY mm/dd/yy DMY dd/mm/yy YMD yy/mm/dd,SET CENTURY ON|OFF|TO 世紀(jì)值 ROLLOVER 年份參照值 用于確定世紀(jì)的顯示與否 ON:指定在10位日期格式中,用四位數(shù)字表示年。 OFF:指定在8位日期格式中,用兩位數(shù)字表示年。 在進(jìn)行日期計(jì)算時(shí)假定它表示的是二十世紀(jì)。 To選項(xiàng)確定用量數(shù)字表示的年份所處的世

39、紀(jì)。 Set strictdate to 0|1|2 用于設(shè)置是否檢查日期格式 0:不檢查 1:檢查,默認(rèn)值 2:檢查且影響TOD()/CTOT()格式,4/11,5.日期時(shí)間型常量,包括日期和時(shí)間兩部分內(nèi)容: , 。日期部分也分嚴(yán)格和傳統(tǒng)兩種;時(shí)間部分格式為:hh:mm:ssa|p 分別表示時(shí)、分、秒、上午、下午。上/下午也可用默認(rèn)的AM/PM表示。若無A/P,則為24時(shí)制該型用8字節(jié)存儲(chǔ)。,6.邏輯型常量,邏輯型數(shù)據(jù)只有邏輯真和邏輯假兩個(gè)值。邏輯真的常量表示形式有:.T.、.t.、.Y.、.y.。邏輯假的常量表示形式有:.F.、.f.、.N.、.n.。 前后的半角英文句號(hào)是必不可少的,要注

40、意。邏輯性數(shù)據(jù)只占用一個(gè)字節(jié)。,日期型常量舉例,Set cent on Set mark to Set date ymd ? 2003-08-21 2003/08/21,set cent off set mark to “.” set date mdy ? 2003-08-21 08.21.03,Set strict to 0 ?2003-08-21,08.21.03 08.21.03 08.21.03,Set mark to “;” ?2003-08-21,08.21.03 08;21;03 08;21;03,5/11,3.1.2變量,變量是能夠隨時(shí)更改的量。VFP的變量分為字段變量和內(nèi)存變

41、量兩大類。字段變量就是表中的字段名;內(nèi)存變量是內(nèi)存中的一個(gè)存儲(chǔ)區(qū)域,變量值就是存放在這個(gè)區(qū)域中的數(shù)值。變量的類型取決于變量值的類型。內(nèi)存變量的類型包括字符型(C)、數(shù)值型(N)、貨幣型(Y)、邏輯型(L)、日期型(D)和日期時(shí)間型(T)。,1.簡單內(nèi)存變量,每一個(gè)變量都有一個(gè)名字,可以通過變量名訪問變量。命名規(guī)則是:以字母(漢字)或下劃線開頭,由字母、數(shù)字、下劃線組成,不超過128個(gè)字符,不為系統(tǒng)保留字。如果當(dāng)前表中存在一個(gè)同名的字段變量,則在訪問內(nèi)存變量時(shí),必須在內(nèi)存變量名前加前綴M.(或M-),否則訪問同名字段變量。,2.數(shù)組,數(shù)組是內(nèi)存中連續(xù)的一片存儲(chǔ)區(qū)域,由一系列元素組成,每個(gè)數(shù)組元素

42、可通過數(shù)組名和相應(yīng)的下標(biāo)來訪問。每個(gè)元素都相當(dāng)于一個(gè)簡單變量,可分別賦值。 賦值、使用前必須先說明,格式是: dimension (, ) ,或declare (, ) , 。,6/11,3.1.3內(nèi)存變量常用命令,有關(guān)內(nèi)存變量的命令很多,例如定義、賦值、顯示、清除、保存至文件、從文件中還原、作用域選擇和變更隱藏、與字段變量的交換等?,F(xiàn)在只介紹最常用的命令。,1.內(nèi)存變量的賦值,給簡單內(nèi)存變量賦值不必事先定義,給數(shù)組元素賦值必需先定義。賦值命令格式是: = Store to 格式1一次只能給一個(gè)變量賦值,格式2一次能給幾個(gè)變量賦值.可通過重新賦值來改變內(nèi)容和類型,2.表達(dá)式值的顯示,格式1:?

43、 格式2:? 格式1表明在下一行起始處開始輸出,若表達(dá)式為空,則輸出一空行。 格式2表明在當(dāng)前光標(biāo)處開始輸出。,7/11,3.內(nèi)存變量的顯示,list memory liketo printer|to file display memory liketo printer|to file 格式1連續(xù)顯示,格式2分屏顯示符合條件的所有變量名、作用域、類型和取值。 通配符包括*和?,*表示任意多個(gè)字符,?表示任意一個(gè)字符。Like 短語表示只顯示與含通配符的名稱骨架(以后簡稱骨架)匹配的內(nèi)存變量。 to printer 和to file 子句用于在顯示的同時(shí)送往打印機(jī),和存入給定文件名的文本文件中,

44、文件的擴(kuò)展名是.txt。,4.內(nèi)存變量的清除,Clear memory 清除所有內(nèi)存變量。 Release 清除表內(nèi)的。 release all extended在人機(jī)對(duì)話時(shí)同,在程序中需加extended,否則不能清除公共內(nèi)存變量。 release all like |except選like短語清除匹配的,選except短語清除不匹配的內(nèi)存變量。,Release rili:s 釋放 extend ikstend 延伸 except iksept 除之外,8/11,3.2表達(dá)式3.2.1數(shù)值、字符與日期時(shí)間表達(dá)式,1.數(shù)值表達(dá)式 由算術(shù)運(yùn)算符將數(shù)值型數(shù)據(jù)連接起來形成,結(jié)果仍是數(shù)值型數(shù)據(jù)。,2.

45、字符表達(dá)式,由字符串運(yùn)算符將字符型數(shù)據(jù)連接起來形成,結(jié)果仍是字符型數(shù)據(jù)。 運(yùn)算符有“+”、“-”,優(yōu)先級(jí)相同。 +:前后兩字符串首尾連接為新串。 -:前后連接后并將前字符串尾部空格移到合并后的新字符串尾部。 例如:a=“abc “,b=“def” ? a+b,a-b abc def abcdef,3.日期時(shí)間表達(dá)式,運(yùn)算符也有“+”、“-”兩個(gè)。不能任意組合,合法的表達(dá)式格式如下表:,是由常量、變量和 函數(shù)通過運(yùn)算符連接起來的式子。,9/11,3.2.2關(guān)系表達(dá)式,也稱為簡單邏輯表達(dá)式,它由關(guān)系運(yùn)算符將兩個(gè)對(duì)象連接起來形成。即其格式為: 關(guān)系運(yùn)算符包括:、=、=、=、#、!=和$。含義為小于、

46、小于等于、大于、大于等于、等于、精確等于、不等于和含于。其優(yōu)先級(jí)相同,運(yùn)算結(jié)果都是邏輯型數(shù)據(jù)。=、$只用于字符型數(shù)據(jù)。,2.設(shè)置字符的排序次序,自左向右逐個(gè)比較,一旦發(fā)現(xiàn)兩個(gè)對(duì)應(yīng)字符不同,就根據(jù)這兩個(gè)字符確定排序先后。通常是按ASCII碼值,即按Machine(機(jī)器)排序。次序依次是:空格數(shù)字大寫字母小寫字母漢字,一 級(jí)漢字的順序與拼音同。也可選擇PinYin(拼音)序列,西文次序是:空格數(shù)字小寫字母大寫字母。還可選擇 Stroke(筆畫)序列。 設(shè)置方法分對(duì)話方式和命令方式兩種:,(1)對(duì)話方式,在“工具”菜單下選“選項(xiàng)”,打開選項(xiàng)對(duì)話框。 單擊“數(shù)據(jù)”選項(xiàng)卡。 從右上方的“排序序列”中選擇

47、“machine”、“pinyin”或“Stroke”。 單擊“確定”。,(2)命令方式,格式: set collate to 次序名 次序名: Machine:ASCII 碼 Pinyin:按拼音排序。 Stroke:按筆畫排序。,1.關(guān)系表達(dá)式,10/11,3.2.3邏輯表達(dá)式,邏輯表達(dá)式由邏輯運(yùn)算符將邏輯型數(shù)據(jù)連接起來而形成,其運(yùn)算結(jié)果仍然是邏輯型數(shù)據(jù)。邏輯運(yùn)算符以優(yōu)先級(jí)排列依次:.not.(邏輯非), .and.(邏輯與),.or.(邏輯或)。 兩端圓點(diǎn)可省略,非可寫做!運(yùn)算如右 運(yùn)算優(yōu)先級(jí): 圓括號(hào)算術(shù)字串日期關(guān)系邏輯,3.字符串精確比較與EXACT設(shè)置,用雙等號(hào)運(yùn)算符=比較字符串時(shí)

48、,只有當(dāng)二者完全相同時(shí),結(jié)果才為真。 用單等號(hào)運(yùn)算符=比較字符串時(shí),結(jié)果與EXACT設(shè)置有關(guān)。設(shè)為off(默認(rèn)),以右邊字符為準(zhǔn),右邊字符結(jié)束,比較即終止。設(shè)為on時(shí),先在較短字串后添空格使二者長短一致,再行比較。,11/11,3.3常用函數(shù),函數(shù)是用程序來實(shí)現(xiàn)的一種數(shù)據(jù)運(yùn)算或轉(zhuǎn)換。它往往需要若干個(gè)自變量(運(yùn)算對(duì)象),但只能有一個(gè)運(yùn)算結(jié)果(函數(shù)值或返回值)。 可以通過函數(shù)名加一對(duì)圓括號(hào)調(diào)用,自變量放在圓括號(hào)內(nèi)。函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式或命令中。 根據(jù)函數(shù)值和功能不同,可分為數(shù)值函數(shù)、字符處理函數(shù)、日期類函數(shù)、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)和測(cè)試函數(shù)5類。 VFP提供了200多種函數(shù),功能強(qiáng)大。,1/7,3.

49、3.1數(shù)值函數(shù),指函數(shù)值為數(shù)值的一類函數(shù),Asc() 返回首字符的ascii碼 ?asc(A) ,asc(0) 65 48,3.3.2字符函數(shù)(指自變量是字符型數(shù)據(jù)的函數(shù)),3.3.3日期和時(shí)間函數(shù)(自變量一般是日期時(shí)間型),4/7,3.3.4數(shù)據(jù)類型轉(zhuǎn)換函數(shù),將某一種類型的數(shù)據(jù)轉(zhuǎn)換成另一種類型的數(shù)據(jù)。,宏代換知識(shí),其功能是先替換,再執(zhí)行。如果該函數(shù)與其后的字符無明確分界,則要用“.”作函數(shù)結(jié)束標(biāo)識(shí)。作用很大,比如:A=“123” B=“456” ? where cj.id=gkcj.id and gkcj.km=kcm.km,5/10,VF命令實(shí)現(xiàn): Use cj Set order to

50、id Sele 2 Use kcm in 0 Set order to km Sele 3,Set gkcj Set order to id Set rela to id into cj Set order to km Set rela to km into kcm addi List cj.bj,cj.xm,kcm.kmm,cj Clos data all,5.2.3嵌套查詢,相關(guān)條件涉及多個(gè)查詢的查詢。 例如查王垣的同班同學(xué)詳細(xì)情況 select * from cj where bj in(select bj from cj where xm=王垣) 例如查王垣(洋艷)的同班同學(xué)的 基本情

51、況 select cj.id ,xm ,p1 from cj where bj in(select bj from xs where xm=王垣) 例5.8 那些城市至少有一個(gè)倉庫的職工工資為1250元? Select 城市 from 倉庫 where 倉庫號(hào) in; (select 倉庫號(hào) from 職工 where 工資=1250),6/10,5.2.4幾個(gè)特殊運(yùn)算符,Between,like, not 查詢95-100分的學(xué)生成績 select * from cj where p1 between 95 and 100 查詢王姓同學(xué)的成績(%代表任意多個(gè)字符所組成的串) select *

52、 from cj where xm like 王% 查詢王X同學(xué)的成績(_代表任意一個(gè)字符或漢字) select * from cj where xm like 王_ 查詢第1次作業(yè)成績不在75-95分的學(xué)生成績 select * from cj where p1 not between 75 and 95 例5.11 檢索出工資在1220元到1240元范圍內(nèi)的職工信息。 Select * from 職工 where 工資 between 1220 and 1240 例5.13 找出不在北京的全部供應(yīng)商信息。 Select * from 供應(yīng)商 where 地址 != “北京,7/10,5.2

53、.5排序,格式:order by 項(xiàng)1ASC|DESC,項(xiàng)2ASC|DESC 按班號(hào)升序,分?jǐn)?shù)降序依次顯示: select xm,bj,p1 from cj order by bj asc, p1 desc,5.2.6簡單計(jì)算查詢,用于計(jì)算檢索的函數(shù): COUNT計(jì)數(shù) SUM求和 AVG計(jì)算平均值 MAX求最大值 MIN求最小值 求4班人數(shù)、第一次作業(yè)總分、平均分、最高分和最低分: select bj,count(id),sum(p1),avg(p1),max(p1),min(p1) from cj where bj=4,8/10,5.2.7分組與計(jì)算查詢,用GROUP BY子句,格式為: G

54、ROUP BY 分組列,分組列HAVING 過濾條件 例如,求各班第一次交作業(yè)人數(shù)、總分、平均分、最高分和最低分,且安班級(jí)號(hào)升序排列: select bj,count(id),sum(p1),avg(p1),max(p1),min(p1) from cj group by bj,5.2.8利用空值查詢,給出沒交第一次作業(yè)的名單 sele bj,xm from cj where p1 is null 給出已交第一次作業(yè)的名單 sele bj,xm from cj,xs where xs.id=cj.id and p1 is not null 注意:查詢空值時(shí),必須使用 is null,而不能使用

55、=null,因?yàn)榭罩挡皇且粋€(gè)確定的值。,9/10,5.2.9別名與自聯(lián)接查詢,在from短語中為關(guān)系定義別名,格式為: ,以后可用別名代替表名。用別名也可實(shí)現(xiàn)同一關(guān)系與自身的聯(lián)接,稱之為自聯(lián)接即遞歸聯(lián)接。例如:,select s.kmm,先于,x.kmm from kcm s,kcm x where s.km=x.xxk,S,X,10/10,5.2.10內(nèi)外層互相關(guān)嵌套查詢,列出每個(gè)同學(xué)的具有最高分?jǐn)?shù)的課程號(hào)和分?jǐn)?shù): select o.id,o.km,o.cj from gkcj o where o.cj =(select max(cj) from gkcj i where o.id=i.id

56、 ) 內(nèi)外層采用同一個(gè)關(guān)系,分別指定別名o、i。外層提供id號(hào)給內(nèi)層查詢使用;內(nèi)層查詢利用這個(gè)id號(hào)值確定最高分?jǐn)?shù),隨后外層查詢?cè)俑鶕?jù)分?jǐn)?shù)與最高分?jǐn)?shù)比較以確定該元組是否選取。,5.2.11使用量詞和謂詞的查詢,量值有any、all和some,其中any和some是同義詞,在進(jìn)行比較運(yùn)算時(shí),只要子查詢中有一行能使結(jié)果為真,結(jié)果就為真;all要求子查詢中的所有行都使結(jié)果為真,結(jié)果才為真。形式: any|all|some(子查詢) 謂詞有Exists , 用來檢查在子查詢中是否有結(jié)果返回,即是否存在元組。形式:notexists(子查詢) 還有已用過的 in和not in, 用來檢查是否在結(jié)果中。,

57、1/8,舉例,顯示尚未錄入情況的班級(jí)情況: sele * from bj where not exists (select *from cj where bj=bj.bj) 等價(jià)于: sele * from bj where bj not in (select bj from cj ) 顯示至少有一個(gè)成績的班級(jí)情況: sele * from bj where exists (select *from cj where bj=bj.bj) 等價(jià)于: sele * from bj where bj in (select bj from cj ) 4班的比所有9班的第1次作業(yè)分?jǐn)?shù)都不低的人員 sel

58、ect xm,p1 from cj where bj=4 and p1= all(sele p1 from cj where bj=9) 4班的至少比1班的1個(gè)第1次作業(yè)分?jǐn)?shù)低的人員 select xm,p1 from cj where bj=4 and p1 any(sele p1 from cj where bj=“1),2/8,5.2.12超聯(lián)接查詢,格式:select from 表名1 inner|left|right|full join 表名2 on 聯(lián)接條件 where Inner:普通聯(lián)接或內(nèi)部聯(lián)接,滿足條件的紀(jì)錄才出現(xiàn)在結(jié)果中 Left:左聯(lián)接。第一個(gè)表中不滿足條件的也出現(xiàn)在查

59、詢結(jié)果中。 right:右聯(lián)接。第二個(gè)表中不滿足條件的也出現(xiàn)在查詢結(jié)果中。 full:全聯(lián)接。不論是否滿足條件,兩表記錄都在結(jié)果中出現(xiàn)。 以上不滿足條件的對(duì)應(yīng)部分為null。 SELECT xm, mc,js from cj inner join bj on cj.bj=bj.bj SELECT xm, mc,js from cj join bj on cj.bj=bj.bj SELECT xm, mc,js from cj, bj where cj.bj=bj.bj SELECT xm, mc,js from cj left join bj on cj.bj=bj.bj SELECT xm, mc,js from cj right join bj on cj.bj=bj.bj SELECT xm, mc,js from

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論