全書配套課件:數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程_第1頁
全書配套課件:數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程_第2頁
全書配套課件:數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程_第3頁
全書配套課件:數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程_第4頁
全書配套課件:數(shù)據(jù)庫應(yīng)用基礎(chǔ)教程_第5頁
已閱讀5頁,還剩959頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一章數(shù)據(jù)庫應(yīng)用基礎(chǔ)1.數(shù)據(jù)庫系統(tǒng) 2 關(guān)系數(shù)據(jù)庫3 Vfp概述4 項(xiàng)目管理器1.1 數(shù)據(jù)庫系統(tǒng)1.1.1 數(shù)據(jù)與數(shù)據(jù)處理 數(shù)據(jù)是存儲(chǔ)在某一媒體上,對(duì)客觀事物進(jìn)行描述的物理符號(hào)。 文字?jǐn)?shù)據(jù):如姓名、職稱、地址等;數(shù)值型數(shù)據(jù):如價(jià)格、數(shù)量、長(zhǎng)度等,多媒體數(shù)據(jù):如圖像、聲音、視頻等。 數(shù)據(jù)數(shù)據(jù)處理是對(duì)數(shù)據(jù)的采集、整理、存儲(chǔ)、分類、排序、檢索、維護(hù)、加工、統(tǒng)計(jì)和傳輸一系列操作的總和。其目的是從大量原始數(shù)據(jù)中,獲得有價(jià)值的信息,作為人們行為和決策的依據(jù)。數(shù)據(jù)處理1.1.2 計(jì)算機(jī)數(shù)據(jù)管理人工管理階段數(shù)據(jù)不保存。數(shù)據(jù)和程序不具有獨(dú)立性。數(shù)據(jù)不能共享重復(fù)的數(shù)據(jù)稱為數(shù)據(jù)冗余文件系統(tǒng)階段數(shù)據(jù)長(zhǎng)期保存。程序與數(shù)

2、據(jù)有了一定的獨(dú)立性。數(shù)據(jù)的獨(dú)立性低。數(shù)據(jù)的共享性差,存在數(shù)據(jù)冗余和數(shù)據(jù)的不一致。應(yīng)用程序2應(yīng)用程序1應(yīng)用程序n數(shù)據(jù)文件2數(shù)據(jù)文件1數(shù)據(jù)文件n文件系統(tǒng)文件系統(tǒng)階段數(shù)據(jù)庫階段數(shù)據(jù)的結(jié)構(gòu)化數(shù)據(jù)的共享性高,冗余度低。數(shù)據(jù)獨(dú)立性高統(tǒng)一的數(shù)據(jù)控制功能應(yīng)用程序2應(yīng)用程序1應(yīng)用程序n數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫階段數(shù)據(jù)庫1.1.3 數(shù)據(jù)庫系統(tǒng)組成數(shù)據(jù)庫系統(tǒng)(Database System,DBS)是指引入數(shù)據(jù)庫技術(shù)的計(jì)算機(jī)系統(tǒng)。它實(shí)現(xiàn)了有組織地、動(dòng)態(tài)地存儲(chǔ)大量相關(guān)數(shù)據(jù),提供了數(shù)據(jù)處理和信息資源共享的便利手段。數(shù)據(jù)庫系統(tǒng)圖示數(shù)據(jù)庫應(yīng)用系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)操作系統(tǒng)硬件數(shù)據(jù)庫管理員開發(fā)人員最終用戶 硬件系統(tǒng)主要指計(jì)算機(jī),包括

3、CPU、內(nèi)存、外存、輸入/輸出設(shè)備等硬件設(shè)備。硬件系統(tǒng)Database (DB)數(shù)據(jù)庫是指存儲(chǔ)在計(jì)算機(jī)外存中,結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合。它不僅包括描述事物的數(shù)據(jù)本身,還包括相關(guān)事物之間的聯(lián)系。數(shù)據(jù)庫以文件的形式存儲(chǔ)在外存中,用戶通過數(shù)據(jù)庫管理系統(tǒng)來統(tǒng)一管理和控制數(shù)據(jù)。數(shù)據(jù)庫Database Management System(DBMS)數(shù)據(jù)庫管理系統(tǒng)是管理數(shù)據(jù)庫的軟件,是數(shù)據(jù)庫系統(tǒng)的核心。它在操作系統(tǒng)的基礎(chǔ)上運(yùn)行,幫助用戶建立、使用和維護(hù)數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng) 功能數(shù)據(jù)定義功能定義數(shù)據(jù)庫的數(shù)據(jù)對(duì)象,如數(shù)據(jù)庫、表、索引,描述數(shù)據(jù)之間的聯(lián)系。數(shù)據(jù)操縱功能實(shí)現(xiàn)對(duì)數(shù)據(jù)庫數(shù)據(jù)的基本操作,如查詢、插入、刪除

4、和修改等??刂坪凸芾砉δ軐?shí)現(xiàn)對(duì)數(shù)據(jù)庫控制和管理,包括并發(fā)性控制、安全性檢查、完整性檢查及對(duì)數(shù)據(jù)庫的內(nèi)部維護(hù)等功能。數(shù)據(jù)庫管理系統(tǒng)操作系統(tǒng)應(yīng)用程序開發(fā)工具。數(shù)據(jù)庫應(yīng)用系統(tǒng)相關(guān)軟件系統(tǒng)分析員數(shù)據(jù)庫管理員(DBA)應(yīng)用程序員最終用戶 各類人員 1.1.4 數(shù)據(jù)庫系統(tǒng)的體系結(jié)構(gòu)整個(gè)數(shù)據(jù)庫系統(tǒng),包括應(yīng)用程序、DBMS、數(shù)據(jù)庫都裝在一臺(tái)計(jì)算機(jī)上。單用戶數(shù)據(jù)庫系統(tǒng)都集中存放在主機(jī)上,終端只作為主機(jī)的輸入輸出設(shè)備,多個(gè)用戶可通過終端存取主機(jī)的數(shù)據(jù)。主從式結(jié)構(gòu) 主從式結(jié)構(gòu)網(wǎng)絡(luò)上的服務(wù)器結(jié)點(diǎn)存放數(shù)據(jù)及執(zhí)行DBMS功能,客戶機(jī)安裝DBMS應(yīng)用開發(fā)工具和應(yīng)用程序。 客戶端的用戶請(qǐng)求被傳送到服務(wù)器,服務(wù)器進(jìn)行處理后,只

5、將結(jié)果(而不是整個(gè)數(shù)據(jù))返回給用戶,客戶服務(wù)器結(jié)構(gòu) (c/s) 客戶服務(wù)器結(jié)構(gòu) (c/s) 服務(wù)器數(shù)據(jù)庫DBMS客戶機(jī)應(yīng)用程序客戶機(jī)應(yīng)用程序客戶端僅安裝瀏覽器軟件,用戶通過URL向WEB服務(wù)器發(fā)出請(qǐng)求,WEB服務(wù)器運(yùn)行腳本程序,向數(shù)據(jù)庫服務(wù)器發(fā)出數(shù)據(jù)請(qǐng)求。數(shù)據(jù)庫服務(wù)器執(zhí)行處理后,將結(jié)果返回給WEB服務(wù)器。WEB服務(wù)器根據(jù)結(jié)果產(chǎn)生網(wǎng)頁文件,客戶端接收到網(wǎng)頁文件后,在瀏覽器中顯示出來。瀏覽器/WEB服務(wù)器/數(shù)據(jù)庫服務(wù)器結(jié)構(gòu) 瀏覽器/WEB服務(wù)器/數(shù)據(jù)庫服務(wù)器結(jié)構(gòu) WEB服務(wù)器客戶機(jī)瀏覽器數(shù)據(jù)庫服務(wù)器數(shù)據(jù)庫DBMS應(yīng)用程序1.2 關(guān)系數(shù)據(jù)庫1.2.1 概念模型現(xiàn)實(shí)世界中事物及聯(lián)系在人們頭腦中的反映,

6、經(jīng)過人們頭腦的分析、歸納、抽象,形成信息世界。為了正確直觀地反映客觀事物及其聯(lián)系,有必要對(duì)信息世界建立一個(gè)抽象的模型,稱之為概念模型。目前常用實(shí)體聯(lián)系模型表示概念模型。實(shí)體是客觀存在并且可相互區(qū)別的事物。可以是實(shí)際的事物(如讀者、圖書、貨物等),也可以是抽象的事件。(如借書、訂貨等活動(dòng))實(shí)體 實(shí)體的特性稱為屬性,一個(gè)實(shí)體可以用多個(gè)屬性來描述。 例如圖書可以用條形碼、書名、作者、出版社、出版年月、售價(jià)等屬性來描述。 借書可以用條形碼、讀者證號(hào)、借書日期等屬性來描述。實(shí)體屬性 用實(shí)體名及其屬性集合描述的同類實(shí)體,稱為實(shí)體型。 例如,圖書(條形碼、書名、作者、出版社、出版年月、售價(jià))就是一個(gè)實(shí)體型。

7、 同類型實(shí)體的集合稱為實(shí)體集。 例如,所有的圖書構(gòu)成一個(gè)實(shí)體集。 實(shí)體型和實(shí)體集實(shí)體間的聯(lián)系就是指實(shí)體集與實(shí)體集之間的聯(lián)系。 實(shí)體間聯(lián)系一對(duì)一聯(lián)系實(shí)體集A中的每個(gè)實(shí)體僅與實(shí)體集B中的一個(gè)實(shí)體聯(lián)系,反之亦然。實(shí)體間聯(lián)系一對(duì)多聯(lián)系對(duì)于實(shí)體集A中的每個(gè)實(shí)體,實(shí)體集B都有多個(gè)實(shí)體與之對(duì)應(yīng);反之,對(duì)于實(shí)體集B中的每個(gè)實(shí)體,實(shí)體集A中只有一個(gè)實(shí)體與之對(duì)應(yīng)。實(shí)體間聯(lián)系多對(duì)多聯(lián)系對(duì)于實(shí)體集A中的每個(gè)實(shí)體,實(shí)體集B都有多個(gè)實(shí)體與之對(duì)應(yīng);反之,對(duì)于實(shí)體集B中的每個(gè)實(shí)體,實(shí)體集A中也有多個(gè)實(shí)體與之對(duì)應(yīng)。實(shí)體間聯(lián)系1.2.2 數(shù)據(jù)模型 為了反映實(shí)體及實(shí)體間聯(lián)系,數(shù)據(jù)庫中的數(shù)據(jù)必須按一定的結(jié)構(gòu)存放,這種結(jié)構(gòu)用數(shù)據(jù)模型來

8、表示。任何一個(gè)數(shù)據(jù)庫管理系統(tǒng)都是基于某種數(shù)據(jù)模型的。層次、網(wǎng)狀模型關(guān)系模型面向?qū)ο髷?shù)據(jù)模型1.2.3 關(guān)系模型 用二維表表示實(shí)體和實(shí)體之間的聯(lián)系的數(shù)據(jù)模型稱為關(guān)系數(shù)據(jù)模型。 元組(記錄) 屬性(字段)關(guān)系術(shù)語關(guān)系 一個(gè)關(guān)系就是一張二維表,每個(gè)關(guān)系有個(gè)關(guān)系名。在vfp中,一個(gè)關(guān)系存儲(chǔ)為一個(gè)表文件,擴(kuò)展名為dbf 對(duì)關(guān)系的描述稱為關(guān)系模式 關(guān)系名(屬性名1,屬性名2,屬性名n) 在vfp中 表名(字段名1,字段名2,字段名n)例如:圖書(條形碼、書名、作者、出版社、出版年月、售價(jià))就是“圖書”關(guān)系的關(guān)系模式,即“圖書”表的結(jié)構(gòu)。關(guān)系術(shù)語元組 二維表的一行稱為關(guān)系的一個(gè)元組,即VFP數(shù)據(jù)表中的一條記

9、錄。 例如,(P0000001 馬克思的人學(xué)思想 袁貴仁 北師大 1996/06/06 19.0)就是“圖書”關(guān)系的一個(gè)元組,即“圖書”表的一條記錄。關(guān)系術(shù)語屬性 二維表的一列稱為關(guān)系的一個(gè)屬性,即VFP數(shù)據(jù)表中的一個(gè)字段。 例如,條形碼、書名、作者、出版社、出版年月、售價(jià)是“圖書”關(guān)系的屬性,即“圖書”表的字段。關(guān)系術(shù)語域 屬性的取值范圍稱為域,即不同元組對(duì)同一個(gè)屬性的取值所限定的范圍 例如,“圖書”關(guān)系中書名屬性的域是文字字符,出版年月屬性的域是日期,售價(jià)屬性的域是0以上的數(shù)值。關(guān)系術(shù)語關(guān)鍵字 能唯一標(biāo)識(shí)元組的屬性或?qū)傩越M合稱為關(guān)鍵字。在VFP數(shù)據(jù)表中,能標(biāo)識(shí)記錄唯一性的字段或字段的組合,

10、稱為主關(guān)鍵字或候選關(guān)鍵字。 例如,“圖書”關(guān)系中每一本圖書的條形碼是唯一的,故“條形碼”可作為圖書表的關(guān)鍵字。而兩本書的書名可能是相同的,所以書名不能作為關(guān)鍵字。 關(guān)系術(shù)語外部關(guān)鍵字如果關(guān)系中的某個(gè)屬性不是本關(guān)系的關(guān)鍵字,而是另一關(guān)系的關(guān)鍵字,稱這個(gè)屬性為外部關(guān)鍵字。 關(guān)系術(shù)語關(guān)系必須規(guī)范化。最基本的要求是每個(gè)屬性必須是不可分割的數(shù)據(jù)單元,即每個(gè)屬性不能再細(xì)分為幾個(gè)屬性。在一個(gè)關(guān)系中,不能出現(xiàn)相同的屬性名。 關(guān)系特點(diǎn)關(guān)系中不能出現(xiàn)完全相同的元組在一個(gè)關(guān)系中元組的次序無關(guān)緊要任意交換兩行的位置不影響數(shù)據(jù)的實(shí)際含義在一個(gè)關(guān)系中屬性的次序無關(guān)緊要任意交換兩列的位置不影響數(shù)據(jù)的實(shí)際含義關(guān)系特點(diǎn)一個(gè)具體

11、的關(guān)系模型通常由若干個(gè)關(guān)系模式構(gòu)成。 在VFP中,相互之間存在聯(lián)系的數(shù)據(jù)表放在一個(gè)數(shù)據(jù)庫文件中進(jìn)行管理。 數(shù)據(jù)庫文件的擴(kuò)展名為dbc。關(guān)系實(shí)例例題1.2.4 關(guān)系運(yùn)算并關(guān)系R與關(guān)系S的并,產(chǎn)生一個(gè)包含R和S所有不同元組的新關(guān)系,記作RS。參加差運(yùn)算的關(guān)系R與S必須有相同的屬性。 傳統(tǒng)的集合運(yùn)算交關(guān)系R與關(guān)系S的交,是既屬于R也屬于S的元組組成的新關(guān)系,記作RS。參加交運(yùn)算的關(guān)系R與S必須有相同的屬性。 傳統(tǒng)的集合運(yùn)算差關(guān)系R與關(guān)系S的差,是所有屬于R但不屬于S的元組組成的新關(guān)系,記作R-S。參加差運(yùn)算的關(guān)系R與S必須有相同的屬性。 傳統(tǒng)的集合運(yùn)算笛卡爾集關(guān)系R與關(guān)系S的笛卡兒積,是R中每個(gè)元組

12、與S中每個(gè)元組連接組成的新關(guān)系,記作RS。 傳統(tǒng)的集合運(yùn)算例題關(guān)系ts1為王穎珊借過的圖書,關(guān)系ts2為楊瑞借過的圖書。則ts1ts2為王穎珊和楊瑞借過的所有圖書,ts1ts2為王穎珊和楊瑞都借過的圖書,ts1-ts2為王穎珊借過但楊瑞未借過的圖書。 例題例題例題關(guān)系dz為讀者的借書證號(hào)、姓名,dzts1為每位讀者的信息與王穎珊借過的每本圖書信息連接組成的新關(guān)系。 例題選擇從關(guān)系中選出滿足給定條件的元組的操作稱為選擇。 選擇是從行的角度進(jìn)行運(yùn)算,在水平方向選出滿足條件的元組。新關(guān)系的關(guān)系模式不變,元組是原關(guān)系的一個(gè)子集。專門的關(guān)系運(yùn)算例題從圖書表中篩選出所有出版社為中華書局的圖書投影 從關(guān)系中

13、選出若干屬性組成新的關(guān)系稱為投影。 投影是從列的角度進(jìn)行運(yùn)算,在垂直方向抽取若干屬性或重新排列屬性。 新關(guān)系的屬性個(gè)數(shù)通常比原關(guān)系少,或者屬性的排列順序不同。 專門的關(guān)系運(yùn)算例題圖書表中抽取圖書的條形碼、書名、售價(jià)聯(lián)接聯(lián)接是把兩個(gè)關(guān)系中的元組按聯(lián)接條件橫向結(jié)合,拼接成一個(gè)新的關(guān)系。 最常見的聯(lián)接運(yùn)算是自然聯(lián)接,它是利用兩個(gè)關(guān)系中的公共字段或者具有相同語義的字段,把該字段值相等的記錄聯(lián)接起來。 專門的關(guān)系運(yùn)算在圖書管理數(shù)據(jù)庫中,將借閱表和圖書表根據(jù)公共字段條形碼進(jìn)行自然聯(lián)接,得到一個(gè)包含讀者證號(hào)、條形碼、書名、作者、出版社、出版年月、售價(jià)、借閱日期、還書日期屬性的關(guān)系。 例題例題1.3 VFP概

14、述 Visual FoxPro既是關(guān)系型數(shù)據(jù)庫管理系統(tǒng),又是可視化的面向?qū)ο蟮募砷_發(fā)工具。 它具有強(qiáng)大的數(shù)據(jù)庫管理功能,支持自含型語言和結(jié)構(gòu)化查詢語言對(duì)數(shù)據(jù)的操作。 VFP擁有五百條命令和兩百余種函數(shù),既支持傳統(tǒng)的面向過程的程序設(shè)計(jì),也支持面向?qū)ο蟮某绦蛟O(shè)計(jì)方式。 使用VFP提供的項(xiàng)目管理工具和向?qū)А⑸善?、設(shè)計(jì)器等可視化開發(fā)工具,用戶可以簡(jiǎn)便、快速地開發(fā)應(yīng)用程序。 1.3.1 發(fā)展歷史在20世紀(jì)70年代末期,美國的Ashton-Tate公司研制的dBASE是最流行的微機(jī)關(guān)系數(shù)據(jù)庫管理系統(tǒng)。1986年,美國FOX軟件公司發(fā)布了與dBASE兼容的FOXBASE。它功能更強(qiáng)大,運(yùn)行速度更快,很快

15、成為80年代中期主導(dǎo)的微機(jī)數(shù)據(jù)庫管理系統(tǒng)。1989年,F(xiàn)OX軟件公司開發(fā)了FOXBASE的后繼產(chǎn)品FoxPro 1.0版,1991年推出2.0版。發(fā)展歷史1992年微軟收購了Fox公司。開發(fā)出FoxPro2.5、FoxPro2.6等大約20個(gè)軟件產(chǎn)品及其相關(guān)產(chǎn)品。1995年,微軟公司發(fā)布了FoxPro的新版本Visual FoxPro 3.0,它全面支持面向?qū)ο蠹夹g(shù)和可視化編程技術(shù)。1998年,微軟推出了可視化編程語言集成包Visual studio 6.0,Visual FoxPro 6.0 是其中的一個(gè)產(chǎn)品。發(fā)展歷史進(jìn)入新世紀(jì)以來,微軟公司又相繼公布了 Visual FoxPro 7.0(

16、2001年)、8.0(2003年)、和 9.0(2004年)。國內(nèi)目前大量使用的仍然是 Visual FoxPro 6.0中文版。1.3.2 VFP安裝將Visual FoxPro 6.0系統(tǒng)的光盤放入光驅(qū)中,安裝向?qū)?huì)自動(dòng)啟動(dòng)。如果沒有啟動(dòng),打開“我的電腦”或“資源管理器”,雙擊光盤上的安裝文件Setup.exe。 VFP安裝VFP安裝VFP安裝VFP安裝VFP安裝VFP安裝VFP安裝安裝常用組件可自行選擇安裝哪些組件。 定義文件安裝位置VFP安裝VFP安裝1.3.3 VFP啟動(dòng)和退出VFP啟動(dòng)開始菜單VFP啟動(dòng)建立桌面快捷方式VFP啟動(dòng)打開相關(guān)文件在我的電腦或資源管理器中,任意雙擊一個(gè)與V

17、isual FoxPro相關(guān)聯(lián)的文件從 文件 菜單中選取 退出 命令點(diǎn)擊窗口右上角的關(guān)閉按鈕按下Alt+F4組合鍵。在命令窗口輸入 quit 命令退出VFPVFP主界面系統(tǒng)菜單常用工具欄狀態(tài)欄桌面命令窗口標(biāo)題欄主菜單包含文件、編輯、顯示、格式、工具、程序、窗口和幫助8個(gè)菜單項(xiàng)。 單擊菜單項(xiàng),系統(tǒng)會(huì)打開相應(yīng)的下拉菜單。用戶選擇其中的菜單命令,就可執(zhí)行Visual FoxPro中相應(yīng)的操作。 Visual FoxPro的菜單項(xiàng)是上下文敏感的,也就是說,當(dāng)情況變化時(shí),菜單項(xiàng)或下拉菜單的菜單命令會(huì)有所不同。 主菜單工具欄當(dāng)用戶打開某些類型的文件時(shí),系統(tǒng)將自動(dòng)打開相應(yīng)的工具欄。可以使用鼠標(biāo)將工具欄拖曳到

18、主窗口的其他位置。工具欄選擇“顯示”菜單下的“工具欄”命令,打開“工具欄”對(duì)話框。可選擇打開或關(guān)閉指定的工具欄。在工具欄上單擊鼠標(biāo)右鍵,打開快捷菜單,也可以打開或關(guān)閉指定的工具欄。 工具欄窗口工作區(qū)是指“常用”工具欄以下到狀態(tài)欄以上的區(qū)域,主要用來顯示命令或程序的執(zhí)行結(jié)果,同時(shí)也顯示打開的各種窗口和對(duì)話框。 窗口在命令窗口中,可直接輸入VFP命令,按回車鍵,系統(tǒng)就會(huì)執(zhí)行此命令。已輸入過的命令自動(dòng)保留在命令窗口中。若用戶要重復(fù)執(zhí)行一個(gè)已輸入的命令,只需將光標(biāo)移到該命令行的任意位置,按回車鍵。用戶還可修改已輸入的命令,再按回車鍵來執(zhí)行此命令。命令窗口在命令窗口上單擊鼠標(biāo)右鍵,打開快捷菜單,用戶可以

19、對(duì)命令窗口的文本執(zhí)行剪切、復(fù)制、粘貼、清除等操作。命令窗口可以被移動(dòng)、改變大小和關(guān)閉。若關(guān)閉了命令窗口,選擇“窗口”菜單的“命令窗口”命令,或單擊常用工具欄的“命令窗口”按鈕,可打開命令窗口。此外,若用戶通過菜單執(zhí)行了某些操作,其對(duì)應(yīng)的命令也會(huì)自動(dòng)顯示在命令窗口中。 命令窗口1.3.4 VFP的選項(xiàng)設(shè)置選擇“工具”菜單的“選項(xiàng)”命令所改變的設(shè)置僅在本次運(yùn)行期間有效。退出VFP系統(tǒng)后,所做的更改將丟失。所改變的設(shè)置存儲(chǔ)在Windows注冊(cè)表中。每次啟動(dòng)VFP,所做的更改將繼續(xù)有效。VFP的選項(xiàng)設(shè)置此外,設(shè)置系統(tǒng)環(huán)境也可用SET命令。在命令窗口中輸入SET DEFAULT TO d:tsgl,就可

20、以設(shè)置默認(rèn)目錄為“d:tsgl”。但是,對(duì)其所進(jìn)行的設(shè)置僅在此次Visual FoxPro運(yùn)行期間有效。1.4 項(xiàng)目管理器 項(xiàng)目文件是通過項(xiàng)目管理器來編輯的,項(xiàng)目管理器是處理數(shù)據(jù)和對(duì)象的可視化工具。它將文件分門別類地存放在不同的選項(xiàng)卡中,采用樹形結(jié)構(gòu)和圖標(biāo)方式來組織和顯示這些文件。通過單擊鼠標(biāo),就能實(shí)現(xiàn)對(duì)各種文件的創(chuàng)建、修改、刪除、運(yùn)行等操作。 此外,還可以把應(yīng)用系統(tǒng)的所有文件編譯成一個(gè)擴(kuò)展名為APP的應(yīng)用程序文件或擴(kuò)展名為EXE的可執(zhí)行文件。 文件(F)新建(N)新建項(xiàng)目1.4.1 創(chuàng)建項(xiàng)目 創(chuàng)建項(xiàng)目后,VFP在指定目錄下建立了一個(gè)pjx項(xiàng)目文件和一個(gè)pjt項(xiàng)目備注文件。 此項(xiàng)目現(xiàn)在未包含任

21、何文件,稱為空項(xiàng)目。 新建項(xiàng)目 CREATE PROJECT |? 在默認(rèn)目錄下創(chuàng)建項(xiàng)目。如果要在指定目錄下創(chuàng)建項(xiàng)目,則應(yīng)在文件名前加上路徑。 新建項(xiàng)目項(xiàng)目管理器的選項(xiàng)卡項(xiàng)目管理器的選項(xiàng)卡全部:用于顯示和管理項(xiàng)目包含的所有文件數(shù)據(jù):用于顯示和管理數(shù)據(jù)庫、自由表和查詢?nèi)愇募?。文檔:用于顯示和管理表單、報(bào)表和標(biāo)簽三類文件。類: 用于顯示和管理所有的類庫文件代碼:用于顯示和管理程序文件、API庫和應(yīng)用程序三類文件。其他:用于顯示和管理菜單、文本文件和其他文件三類文件。在項(xiàng)目管理器中,有些選項(xiàng)的前面帶有“+”號(hào)或“”號(hào)方框。帶“+”號(hào)方框表示該選項(xiàng)還有一個(gè)或多個(gè)子項(xiàng)。單擊“+”號(hào)可展開各子項(xiàng),同時(shí)“

22、+”號(hào)方框變?yōu)椤啊碧?hào)方框。單擊“”號(hào)方框,則可把展開的選項(xiàng)折疊起來。 項(xiàng)目管理器的選項(xiàng)卡文件(F)打開(O)打開項(xiàng)目MODIFY PROJECT |?關(guān)閉項(xiàng)目 單擊項(xiàng)目管理器右上角的“關(guān)閉”按鈕,即可關(guān)閉項(xiàng)目文件。 當(dāng)關(guān)閉一個(gè)空項(xiàng)目時(shí),系統(tǒng)打開對(duì)話框,詢問是否保存該項(xiàng)目。單擊“刪除”按鈕,系統(tǒng)將從磁盤上刪除該空項(xiàng)目文件;單擊“保持”按鈕,系統(tǒng)將保存該空項(xiàng)目文件。1.4.2使用項(xiàng)目管理器首先,選擇新文件的類型。單擊項(xiàng)目管理器的“新建”按鈕或者選擇“項(xiàng)目”菜單的“新建文件”命令,系統(tǒng)即打開相應(yīng)的設(shè)計(jì)器以創(chuàng)建文件。創(chuàng)建文件創(chuàng)建文件在項(xiàng)目中新建的文件,自動(dòng)地包含于該項(xiàng)目。即該文件與項(xiàng)目之間建立了一種關(guān)

23、聯(lián),用戶可以通過項(xiàng)目管理器來管理此文件。但并不意味著該文件已成為pjx項(xiàng)目文件的一部分。事實(shí)上,每一個(gè)文件都是以獨(dú)立文件的形式存在磁盤上。在沒有打開項(xiàng)目時(shí),此文件也可以單獨(dú)被使用。 注意:創(chuàng)建文件選擇要添加的文件類型。單擊項(xiàng)目管理器的“添加”按鈕或選擇“項(xiàng)目”菜單的“添加文件”命令,系統(tǒng)打開“打開”對(duì)話框。在“打開”對(duì)話框中,選擇要添加的文件,單擊“確定”按鈕,系統(tǒng)便將選擇的文件添加到項(xiàng)目文件中。添加文件添加文件首先,選擇要修改的文件。單擊“修改”按鈕或選擇“項(xiàng)目”菜單的“修改文件”命令,系統(tǒng)打開選中文件相應(yīng)的設(shè)計(jì)器。修改文件修改文件在VFP中,一個(gè)文件可同時(shí)被包含在多個(gè)項(xiàng)目中。在任何一個(gè)項(xiàng)目

24、中修改此文件,修改的結(jié)果對(duì)于其他項(xiàng)目也有效。注意:修改文件首先,選擇要移去的文件。單擊“移去”按鈕或選擇“項(xiàng)目”菜單的“移去文件”命令移去文件不僅會(huì)將該文件從項(xiàng)目中移去,還從磁盤中刪除該文件 選擇的文件從本項(xiàng)目中移去,但仍然存在于磁盤中 根據(jù)所選擇文件的類型不同,項(xiàng)目管理器的右側(cè)將出現(xiàn)不同的按鈕組 瀏覽按鈕瀏覽數(shù)據(jù)表打開或關(guān)閉按鈕打開或關(guān)閉數(shù)據(jù)庫其他操作預(yù)覽按鈕打印預(yù)覽報(bào)表和標(biāo)簽運(yùn)行按鈕執(zhí)行查詢、表單或程序連編按鈕把一個(gè)項(xiàng)目的所有文件連接并編譯成一個(gè)可運(yùn)行文件的過程。其他按鈕1.4.3 定制項(xiàng)目管理器移動(dòng)項(xiàng)目管理器將鼠標(biāo)指向“項(xiàng)目管理器”的邊框或四個(gè)角上,拖動(dòng)鼠標(biāo)便可改變項(xiàng)目管理器的大小將鼠標(biāo)

25、指向“項(xiàng)目管理器”的標(biāo)題欄,拖曳鼠標(biāo)便可移動(dòng)項(xiàng)目管理器。移動(dòng)項(xiàng)目管理器當(dāng)項(xiàng)目管理器被拖動(dòng)到VFP主窗口頂部的工具欄區(qū)域,就只能顯示選項(xiàng)卡,不能展開以顯示整個(gè)窗口。用戶可以單擊每個(gè)選項(xiàng)卡,顯示出下面的對(duì)象。通過右擊鼠標(biāo),打開快捷菜單來進(jìn)行相應(yīng)的操作。折疊和展開項(xiàng)目管理器 拆分項(xiàng)目管理器 折疊項(xiàng)目管理器后,可以用鼠標(biāo)指向其中的選項(xiàng)卡,拖曳鼠標(biāo),將其拖離“項(xiàng)目管理器”后釋放鼠標(biāo)。該選項(xiàng)卡成為一個(gè)獨(dú)立、浮動(dòng)的窗口。單擊選項(xiàng)卡上的圖釘圖標(biāo),該選項(xiàng)卡就會(huì)設(shè)置為頂層顯示,即始終顯示在其他VFP窗口的上面。若要取消頂層顯示的設(shè)置,只需再次單擊圖釘圖標(biāo)。拆分項(xiàng)目管理器 單擊選項(xiàng)卡上的圖釘圖標(biāo),該選項(xiàng)卡就會(huì)設(shè)置為

26、頂層顯示,即始終顯示在其他VFP窗口的上面。若要取消頂層顯示的設(shè)置,只需再次單擊圖釘圖標(biāo)。拆分項(xiàng)目管理器 若要還原拆分的選項(xiàng)卡,可以單擊選項(xiàng)卡上的“關(guān)閉”按鈕,也可以用鼠標(biāo)將拆分的選項(xiàng)卡拖曳回項(xiàng)目管理器中。作業(yè)教材p21一大題教材p22二大題教材p23三大題的第1小題(作業(yè)本)封面第二章 數(shù)據(jù)類型表達(dá)式和函數(shù)1 常量與變量2. 運(yùn)算符與表達(dá)式3. 常用函數(shù)2.1 常量與變量2.1.1 常量 常量是指操作過程中其值固定不變的數(shù)據(jù),是一個(gè)具體的數(shù)據(jù)內(nèi)容。例如字符串、常數(shù)或具體的日期。 數(shù)值型常數(shù)由數(shù)字0-9、小數(shù)點(diǎn)及正負(fù)號(hào)構(gòu)成可用科學(xué)計(jì)數(shù)法表示:1.2345E+3表示1.2345103,即1234

27、.5;2.45E-4表示2.4510-4,即0.000245 貨幣型常數(shù)貨幣型常量表示貨幣在數(shù)值前加上一個(gè)貨幣符號(hào)($)。貨幣型常量在存儲(chǔ)和計(jì)算時(shí),采用4位小數(shù)。當(dāng)貨幣型常量超過4位小數(shù)時(shí),多余的小數(shù)位將四舍五入 字符常數(shù)字符型常量是用英文的單引號(hào)、雙引號(hào)或方括號(hào)括起來的一串字符,也稱為字符串。字符可以是英文字母、數(shù)字、標(biāo)點(diǎn)符號(hào)等所有ASCII碼字符及漢字。例如:湖南長(zhǎng)沙smith都是字符串。 字符常數(shù)單引號(hào)、雙引號(hào)或方括號(hào)是字符串的定界符,它們用來規(guī)定字符串的起始和終止界限,不作為字符串本身的內(nèi)容。字符串的定界符必須成對(duì)匹配,即當(dāng)一邊以單引號(hào)作為定界符時(shí),另一邊也

28、必須以單引號(hào)作為定界符。此外,如果字符串本身含有作為定界符的字符,則必須用另一種符號(hào)作為定界符。 字符常數(shù)字符串的長(zhǎng)度是指字符串中所含字符的個(gè)數(shù),其中,每個(gè)漢字相當(dāng)于2個(gè)字符。字符串的最大長(zhǎng)度不能超過254。只有定界符沒有任何字符的字符串稱為空串,其長(zhǎng)度為0。日期型常數(shù)默認(rèn)情況下,日期型常量要使用嚴(yán)格的日期格式y(tǒng)yyy-mm-dd。以花括號(hào) 作為定界符,花括號(hào)內(nèi)第一個(gè)符號(hào)是,年份必須為四位,年月日的次序不能顛倒或缺省。年月日的分隔符可以為/(斜杠)、_(下劃線)、.(圓點(diǎn))或空格。例如,2008-8-1 2008/08/01 2008.8.1 2008 8 1均表示2008年8月1日。日期型常

29、數(shù)若要設(shè)置傳統(tǒng)的日期格式,則應(yīng)執(zhí)行SET STICTDATE TO 0命令。默認(rèn)用mm/dd/yy或mm/dd/yyyy表示日期常量。例如,6/25/08或6/25/2008均表示2008年6月25日。若要恢復(fù)為嚴(yán)格的日期格式,執(zhí)行SET STICTDATE TO 1命令 提示本書在介紹命令時(shí),約定方括號(hào)中的內(nèi)容表示可選,豎杠|分隔的內(nèi)容表示任選其一,尖括號(hào)中的內(nèi)容由用戶提供。 SET DATE TO AMERICAN |ANSI |BRITISH|FRENCH|GERMAN|ITALIAN|JAPAN|USA|MDY|DMY|YMD設(shè)置日期的顯示格式 ,缺省格式為AMERICAN,即mm/d

30、d/yy。 設(shè)置日期顯示的格式設(shè)置日期格式的參數(shù) 短語格式短語格式短語格式Y(jié)MDyy/mm/ddMDYmm/dd/yyDMYdd/mm/yyAMERICAN/USAmm/dd/yyANSIyy.mm.ddGERMANdd.mm.yyBRITISH/FRENCHdd/mm/yyITALIANdd-mm-yyJAPANyy/mm/ddSET CENTURY ON/OFF設(shè)置顯示日期時(shí)是否顯示世紀(jì)值。當(dāng)使用ON,顯示世紀(jì)值,即年號(hào)以4位顯示;使用OFF,不顯示世紀(jì)值,即年號(hào)以2位顯示。 設(shè)置是否顯示世紀(jì)值SET CENTURY OFF &設(shè)置2位數(shù)字年份SET DATE TO YMD &設(shè)置年月日格

31、式?2008-6-1 &顯示結(jié)果為08/06/01SET STRICTDATE TO 0 &設(shè)置不進(jìn)行嚴(yán)格的日期格式檢查SET CENTURY ON &設(shè)置4位數(shù)字年份SET DATE TO DMY &設(shè)置日月年格式? 2008-6-1,1/7/08 &顯示結(jié)果為01/06/2008和01/07/2008例題日期時(shí)間型常數(shù)日期時(shí)間型常量包括日期和時(shí)間兩部分日期,時(shí)間。日期部分的格式和日期型常量相似,時(shí)間部分的格式為HH:MM:SS A|P。HH、MM、SS分別表示時(shí)、分、秒,A、P分別表示上午和下午。時(shí)、分、秒可以缺省,默認(rèn)值為12、0、0。A、P可以缺省,默認(rèn)為上午。注意:日期和時(shí)間之間必須

32、用逗號(hào)或空格隔開。2008-6-1,表示2008年6月1日上午12點(diǎn)(午夜)時(shí)間部分可以采取24小時(shí)制,當(dāng)時(shí)間大于或等于12,則自然表示下午。例如,2008-6-1 1:20:30 P和2008-6-1 13:20:30均表示2008年6月1日下午1點(diǎn)20分30秒日期時(shí)間型常數(shù)區(qū)域選項(xiàng)卡工具(T)選項(xiàng)(O)設(shè)置日期格式邏輯常數(shù)邏輯型常量只有邏輯真和邏輯假兩個(gè)值。邏輯真值用.t.,.T.,.y.,.Y.表示,邏輯假值用.f.,.F.,.n,.N. 表示注意:圓點(diǎn)作為邏輯型常量的定界符,必不可少。2.1.2 內(nèi)存變量分為字段變量和內(nèi)存變量?jī)?nèi)存變量:獨(dú)立于數(shù)據(jù)表而存在,通常用來存放命令操作或程序運(yùn)行

33、過程中的一些中間結(jié)果。內(nèi)存變量的值在操作過程中可以被改變。退出VFP后,內(nèi)存變量將被自動(dòng)釋放。變量命名規(guī)則 變量名以字母、漢字或下劃線開頭,由數(shù)字、字母、漢字或下劃線組成。名稱最長(zhǎng)可達(dá)254個(gè)字符。A 、Class_2、年齡 合法的變量名3Grade、b* 非法的變量名 不要使用VFP的保留字作為變量名。 =STORE TO 計(jì)算表達(dá)式的值,再將該值賦給內(nèi)存變量。內(nèi)存變量的賦值等號(hào)=一次只能給一個(gè)變量賦值,Store可同時(shí)給多個(gè)變量賦同一個(gè)值。多個(gè)變量之間用逗號(hào)隔開。簡(jiǎn)單變量賦值時(shí)無需事先聲明或定義。當(dāng)變量被賦值時(shí),若該變量此時(shí)還不存在,系統(tǒng)將建立此變量,即在內(nèi)存中為其定義一個(gè)存儲(chǔ)區(qū)域。變量的

34、值和數(shù)據(jù)類型由最后賦予它的表達(dá)式?jīng)Q定。當(dāng)變量被重新賦值時(shí),其值發(fā)生改變。若新值為其他數(shù)據(jù)類型,則變量的數(shù)據(jù)類型也相應(yīng)地發(fā)生改變。 內(nèi)存變量的賦值 n1=3 &把數(shù)值3賦給內(nèi)存變量n1, n1是數(shù)值型內(nèi)存變量 name=王波 &把字符串賦給內(nèi)存變量name, name是字符型內(nèi)存變量例題 store 2008/6/1 to 日期1,日期2 &把日期常量2002年9月12日同時(shí)賦給內(nèi)存變量日期1和日期2,日期1和日期2是日期型內(nèi)存變量l=.t. &把邏輯真值.t.賦給內(nèi)存變量l,l是邏輯 型內(nèi)存變量 n2=n1 &計(jì)算表達(dá)式n1的值為3,將n2賦值為3n1的值不受影響n2=n2+1 &計(jì)算表達(dá)式n

35、2+1的值為4,將n2賦值為4n2=n2+1 &將字符串n2+1賦值給變量n2, n2是字符型內(nèi)存變量例題 ? ? 計(jì)算表達(dá)式的值,將其顯示在窗口工作區(qū)。?命令首先換行,在當(dāng)前行的下一行顯示表達(dá)式的值。?命令不換行,在當(dāng)前行的光標(biāo)處顯示表達(dá)式的值。?/?可接多個(gè)表達(dá)式,表達(dá)式之間用逗號(hào)隔開。 顯示表達(dá)式的值?n1=,n1 &n1=為字符型常量,n1為變量,窗口工作區(qū)顯示n1=3?n2 &窗口工作區(qū)另起一行,顯示n2+1?name &窗口工作區(qū)在n2+1的后面顯示王波例題LIST/DISPLAY MEMORY LIKE TO PRINTER| TO FILE 顯示內(nèi)存變量的當(dāng)前信息,包括變量名、

36、作用域、類型、取值。 內(nèi)存變量的顯示使用LIST MEMORY,在屏幕上以滾動(dòng)方式顯示,不分屏顯示;使用DISPLAY MEMORY,分屏顯示,即顯示了一屏后,顯示暫停,提示“按任意鍵繼續(xù)”,按下任意鍵后,繼續(xù)顯示下一屏。內(nèi)存變量的顯示LIKE 通配符表示只顯示與通配符相匹配的內(nèi) 存變量。通配符*表示任一串字符,?表示任一個(gè)字符。VFP有74個(gè)系統(tǒng)變量。如果用戶只要求顯示所有自定義變量,可以使用命令DISPLAY MEMORY LIKE *。內(nèi)存變量的顯示TO PRINTER子句,表示將顯示的信息同時(shí)送打印機(jī)打印。TO FILE 子句,表示將顯示的信息存入指定的文本文件,文件的擴(kuò)展名為txt。

37、 內(nèi)存變量的顯示display memo like * &顯示用戶定義的全部?jī)?nèi)存變量display memo like n* &顯示以字母n開頭的所有內(nèi)存變量,即n1,name和n2 display memo like n? &顯示以字母n開頭,且名稱不多于兩個(gè)字符組成的內(nèi)存變量 即n1和n2例題RELEASE 清除內(nèi)存變量?jī)?nèi)存變量的清除RELEASE ALL LIKE | EXCEPT CLEAR MEMORY提示在輸入命令時(shí),命令中的保留字可只輸入前4個(gè)字符。例如display memory 可簡(jiǎn)化為disp memo CLEAR MEMORY和RELEASE ALL清除內(nèi)存中所有內(nèi)存變量

38、。RELEASE內(nèi)存變量名表清除指定的內(nèi)存變量。使用LIKE子句,清除符合通配符的變量;使用EXCEPT子句,清除不符合通配符的變量。內(nèi)存變量的清除Release 日期1,日期2 &清除變量日期1和日期2Release all like n* &清除所有變量名以n開始的變量,即n1,n2和name。Disp memo like * &此時(shí),顯示的變量有l(wèi)例題2.1.3 數(shù)組內(nèi)存變量又分為簡(jiǎn)單內(nèi)存變量和數(shù)組。每一個(gè)簡(jiǎn)單變量只占用內(nèi)存中的一個(gè)存儲(chǔ)區(qū)域,存儲(chǔ)一個(gè)值。而一個(gè)數(shù)組在內(nèi)存中占用連續(xù)的一組存儲(chǔ)區(qū)域,由多個(gè)數(shù)組元素組成。每個(gè)數(shù)組元素占用一個(gè)存儲(chǔ)區(qū)域,相當(dāng)于一個(gè)簡(jiǎn)單變量。用戶通過數(shù)組名和下標(biāo)來訪

39、問數(shù)組元素。DIMENSION (, ),DECLARE (, ),DIMENSION和DECLARE兩種命令的功能相同,定義多個(gè)一維數(shù)組或二維數(shù)組數(shù)組的下標(biāo)下限規(guī)定為1,一維數(shù)組的元素個(gè)數(shù)為下標(biāo)上限1,二位數(shù)組的元素個(gè)數(shù)為下標(biāo)上限1*下標(biāo)上限2。 數(shù)組的創(chuàng)建DIMENSION m(4),n(2,3)命令定義了數(shù)組m和n。&m是一維數(shù)組,4個(gè)數(shù)組元素:m(1)、m(2)、m(3)、m(4)。&n是二維數(shù)組,有6個(gè)數(shù)組元素:n(1,1)、n(1,2)、n(1,3)、n(2,1)、n(2,2)、n(2,3)。可以用一維數(shù)組的形式訪問二維數(shù)組。例如二維數(shù)組n如果用一維數(shù)組表示,依次為n(1)、n(2

40、)、n(3)、n(4)、n(5)、n(6)。即n(4)和n(2,1)是同一個(gè)數(shù)組元素。例題數(shù)組創(chuàng)建后,系統(tǒng)自動(dòng)給每個(gè)元素賦以邏輯值假。通過對(duì)數(shù)組名賦值,可以將同一個(gè)值同時(shí)賦給全部的數(shù)組元素。每個(gè)數(shù)組元素可分別賦值,同一數(shù)組中各數(shù)組元素類型可以不同 數(shù)組的賦值DIMENSION m(4),n(2,3) &定義了一維數(shù)組m和二維數(shù)組n。? m(1),n(1,1) &數(shù)組創(chuàng)建后,每個(gè)數(shù)組元素的初值為邏輯值假。m=5 &通過對(duì)數(shù)組名賦值將所有數(shù)組元素賦值為5?m(1),m(2),m(3),m(4)n(1,1)=1n(1,2)=中國n(1,3)=2008/10/1 &每個(gè)數(shù)組元素可分別賦值,數(shù)據(jù)類型可以

41、不同例題2.2 運(yùn)算符與表達(dá)式表達(dá)式是由常量、變量、函數(shù)通過特定的運(yùn)算符連結(jié)起來的有意義的式子。每一個(gè)表達(dá)式經(jīng)過運(yùn)算,將得到一個(gè)具體的結(jié)果,稱為表達(dá)式的值。n1*0.85 + sqrt(9)變量運(yùn)算符常量函數(shù)表達(dá)式根據(jù)表達(dá)式值的類型,可將表達(dá)式分為數(shù)值表達(dá)式、字符表達(dá)式、日期表達(dá)式和邏輯表達(dá)式。單個(gè)的常量、變量和函數(shù),也可以看作一種特殊的表達(dá)式。2.2.1 數(shù)值型表達(dá)式( )*或 (乘方) 2*4表示24 值為16* / %(求余) 10%3表示10除3的余數(shù)值為1+ 優(yōu)先級(jí)算數(shù)運(yùn)算符?1+52*2 &結(jié)果為51。首先進(jìn)行乘方運(yùn)算,再進(jìn)行乘法運(yùn)算,最后進(jìn)行加法。例題用表達(dá)式表示2*32 +1.

42、24+45?(2*32+1.2)/(4+4/5) &對(duì)于某些數(shù)學(xué)算式,注意利用括號(hào)來改變優(yōu)先級(jí)例題對(duì)于求余運(yùn)算,余數(shù)的正負(fù)號(hào)與除數(shù)相同? ?10%3,10%(-3),-10%3,-10%-3 &結(jié)果為1,-2,-1,2 10-34余數(shù)為-210-3-3余數(shù)為1&表達(dá)式的值為-22.2.2 字符型表達(dá)式連接運(yùn)算符+號(hào):將前后兩個(gè)字符串連接起來,形成一個(gè)新的字符串。 號(hào):將前后兩個(gè)字符串連接起來,若第一個(gè)字符串的尾部有空格,則將空格移到合并后字符串的尾部,其他位置的空格不改變位置。 字符型運(yùn)算符?“This “+”is”&表達(dá)式的結(jié)果為“This is”保留前一字符串的尾部空格?“This “-”

43、is”&表達(dá)式的結(jié)果為“Thisis ”將前一字符串的尾部空格移到最后?“This is “-”a book”&表達(dá)式的結(jié)果為“This isa book ”例題?“2+3”,2+3,“2”+“3”&字符常量2+3 2與3相加為5 字符2連接字符3結(jié)果為23例題2.2.3 日期型表達(dá)式日期1+天數(shù) 日期2 或天數(shù)+日期1 日期2 將日期向后推整數(shù)的天數(shù)得到新的日期日期1天數(shù) 日期2將日期向前推整數(shù)的天數(shù)得到新的日期日期1日期2 整數(shù)+1將兩個(gè)日期相減得到相差的天數(shù)排在后面的日期大于排在前面的日期日期型運(yùn)算符日期時(shí)間1+秒數(shù) 日期時(shí)間2 秒數(shù)+日期時(shí)間1 日期時(shí)間2 將日期時(shí)間向后推整數(shù)的秒數(shù)得

44、到新的日期時(shí)間日期時(shí)間1秒數(shù) 日期時(shí)間2 將日期時(shí)間向前推整數(shù)的秒數(shù)得到新的日期時(shí)間日期時(shí)間1日期時(shí)間2 整數(shù)+1將兩個(gè)日期時(shí)間相減得到相差的秒數(shù)排在后面的日期大于排在前面的日期日期型運(yùn)算符? 2008/10/1+7 &表達(dá)式的值為2008/10/8,將2008年10月1日向后推7天? 2008/10/1-7 &表達(dá)式的值為2008/9/24,將2008年10月1日向前推7天? 2008/10/1-2008/5/1 &表達(dá)式的值為153,兩個(gè)日期相差的天數(shù)例題? 2008-8-8 8 am+10000 &表達(dá)式的值為2008年8月8日8點(diǎn)46分40秒,將2008年8月8日上午8時(shí)向后推1000

45、0秒的時(shí)間 例題注意:+和-運(yùn)算符必須遵循以上規(guī)則。例如,日期+日期就是一個(gè)非法的表達(dá)式。2.2.4 邏輯型表達(dá)式大于 =大于等于 =小于等于 或!=或# 不等于 $ 子串包含測(cè)試 =精確等于 比較兩個(gè)類型相同的數(shù)據(jù)(數(shù)值型、貨幣型、字符型、日期型、邏輯型)是否符合關(guān)系運(yùn)算符規(guī)定的關(guān)系,若符合,返回邏輯真值,否則返回邏輯假值關(guān)系型運(yùn)算符兩個(gè)數(shù)值型數(shù)據(jù)或貨幣型數(shù)據(jù)比較時(shí),按數(shù)值的大小比較。兩個(gè)日期型數(shù)據(jù)比較時(shí),越早的日期越小,越晚的日期越大。兩個(gè)邏輯型數(shù)據(jù)比較時(shí),邏輯真值.T.大于邏輯假值.F.。關(guān)系型運(yùn)算符? 1214&表達(dá)式的結(jié)果為邏輯假值.F.?5=5&表達(dá)式的結(jié)果為邏輯真值.T.=即大于

46、或等于?5!=5&表達(dá)式的結(jié)果為邏輯假值.F.例題?2008/5/12008/10/1&表達(dá)式的結(jié)果為.F.&因?yàn)?008年10月1日晚于2008年5月1日,故2008/10/1大于2008/5/1?(98).F.&表達(dá)式的值為.T. &因?yàn)?8的結(jié)果為邏輯真值.T.,大于邏輯假值.F.。 例題字符型數(shù)據(jù)比較時(shí),先比較第一個(gè)字符的大小,若第一個(gè)字符大,則該串大;若第一個(gè)字符相同,則比較第二個(gè)字符,直到比較出大小字符的比較次序VFP規(guī)定了Machine機(jī)內(nèi)碼、PinYin拼音、Storke筆畫三種字符的排序次序,默認(rèn)為拼音次序。PinYin拼音次序:漢字按照拼音順序排列。西文字符中空格最小,小寫

47、abcd字母序列排在前面,大寫ABCD字母序列排在后面。 Machine機(jī)內(nèi)碼次序:漢字按照國標(biāo)碼順序排列;西文字符按照字符的ASCII碼值大小排列。Storke筆畫次序:無論中文西文,按筆劃多少的順序排列。字符的比較次序數(shù)據(jù)選項(xiàng)卡工具(T)選項(xiàng)(O)字符的排序次序SET COLLATE TO 次序名為“MACHINE”或“PINYIN”或“STROKE”字符比較次序SET COLLATE TO MACHINE&按機(jī)內(nèi)碼排序?acbabc,a江蘇&表達(dá)式的值為.T.F.T.SET COLLATE TO PINYIN&按拼音排序?acbabc,a江蘇&表達(dá)式的值為.T.T.T.SET COLLA

48、TE TO STROKE&按筆畫排序?acbabc,a江蘇&表達(dá)式的值為.T.T.F.例題運(yùn)算符=只能用于字符型數(shù)據(jù)的運(yùn)算,當(dāng)=兩旁的字符串完全相同時(shí),返回邏輯真值,否則返回邏輯假值。字符型精確比較與EXACT設(shè)置使用等于運(yùn)算符=比較兩個(gè)字符串時(shí),運(yùn)算結(jié)果與SET EXACT ON|OFF設(shè)置有關(guān)。系統(tǒng)默認(rèn)EXACT狀態(tài)為OFF。若=兩旁字符串的字符個(gè)數(shù)不同,則只要=右邊字符串與=左邊字符串的前面部分相同,結(jié)果就為.T.。當(dāng)設(shè)置EXACT狀態(tài)為ON時(shí),若=兩旁字符串的字符個(gè)數(shù)不同,系統(tǒng)將在較少字符的字符串尾部添加空格,使兩個(gè)字符串字符個(gè)數(shù)相同,再來進(jìn)行比較。在“選項(xiàng)”對(duì)話框的“數(shù)據(jù)”選項(xiàng)卡,可

49、設(shè)置EXACT狀態(tài)。字符型精確比較與EXACT設(shè)置SET EXACT OFF?湖南長(zhǎng)沙=湖南&表達(dá)式的值為.T.?湖南=湖南長(zhǎng)沙&表達(dá)式的值為.F.? 湖南長(zhǎng)沙=長(zhǎng)沙&表達(dá)式的值為.F.?湖南長(zhǎng)沙=湖南&表達(dá)式的值為.F.例題SET EXACT ON? 湖南長(zhǎng)沙=湖南&表達(dá)式的值為.F.?湖南=湖南長(zhǎng)沙&表達(dá)式的值為.F.?湖南長(zhǎng)沙=長(zhǎng)沙&表達(dá)式的值為.F.?湖南長(zhǎng)沙=湖南&表達(dá)式的值為.F.例題運(yùn)算符$用于字符型數(shù)據(jù)的運(yùn)算。若$左邊的字符串包含在$右邊的字符串中,即左邊字符串是右邊字符串的子串,則返回邏輯真值,否則返回邏輯假值。 包含運(yùn)算符$?is$This,This$is&表達(dá)式的值為.T

50、.F.? Is$This&表達(dá)式的值為.F.,大小寫的英文字母不相等? Ts$This &表達(dá)式的值為.F.$左邊的字符串必須完整連續(xù)地被包含在$右邊的字符串中,才返回邏輯真值。例題NOT或! 邏輯非AND 邏輯與OR 邏輯或優(yōu)先級(jí)邏輯型運(yùn)算符XYX AND YX OR YNOT X.F.F. .F. .F. .T.F.T. .F. .T.T.F. .F. .T. .F.T.T. .T. .T.邏輯型運(yùn)算符對(duì)于邏輯與AND,當(dāng)連接的兩個(gè)邏輯型數(shù)據(jù)均為真值時(shí),結(jié)果才為真值;對(duì)與邏輯或OR,當(dāng)連接的兩個(gè)邏輯型數(shù)據(jù)均為假值時(shí),結(jié)果才為假值。邏輯型運(yùn)算符注意:邏輯運(yùn)算符的前后必須有圓點(diǎn)或空格與其他數(shù)據(jù)

51、分開。當(dāng)編寫條件時(shí),應(yīng)寫出正確的邏輯表達(dá)式書寫判斷數(shù)值型變量x是否大于3且小于10的條件x3 and xx3,因?yàn)殛P(guān)系運(yùn)算只能比較相同數(shù)據(jù)類型的數(shù)據(jù)書寫判斷字符型變量身份是否等于工作人員或教研人員的條件身份=工作人員 OR身份=教研人員&不能寫成 身份=“工作人員” OR “教研人員”,因?yàn)檫壿嬤\(yùn)算符只能連接邏輯型的數(shù)據(jù)書寫判斷性別為女的身份為工作人員或教研人員的條件性別=女 AND (身份=工作人員 OR身份=教研人員)& 因?yàn)锳ND 的優(yōu)先級(jí)高于OR ,所以要加上括號(hào)例題?NOT (2+3=6)NOT(5=6).NOT F.T.運(yùn)算符優(yōu)先級(jí) 關(guān)系 邏輯 運(yùn)算符優(yōu)先級(jí)括號(hào)數(shù)值、貨幣、字符、日

52、期?NOT (76) AND ABVABC OR 5*2=8NOT(.T.) AND ABVABC OR 5*2=8NOT(.T.) AND ABVABC OR 10=8NOT(.T.) AND .T. OR .F.F. AND .T. OR .F.F. OR .F.F.例題2.3 常用函數(shù)VFP提供200余種內(nèi)置函數(shù),實(shí)現(xiàn)數(shù)據(jù)的運(yùn)算或轉(zhuǎn)換功能。每個(gè)函數(shù)有固定的名稱,后面加一對(duì)圓括號(hào),括號(hào)內(nèi)有若干個(gè)自變量。根據(jù)系統(tǒng)對(duì)函數(shù)功能的定義,函數(shù)將返回一個(gè)值,稱為函數(shù)值。函數(shù)SQRT(9)函數(shù)名自變量函數(shù)值為32.3.1 數(shù)值函數(shù)ABS ( )返回指定數(shù)值表達(dá)式的絕對(duì)值絕對(duì)值函數(shù) ? abs(-20),

53、 abs(0), abs(20) &函數(shù)值為20,0,20 例題SIGN( )當(dāng)?shù)闹捣謩e為正數(shù)、0、負(fù)數(shù)時(shí),函數(shù)值分別為1、0、-1。 符號(hào)函數(shù) ? sign(-20), sign(0), sign(20) &函數(shù)值為-1,0,1例題MOD ( , )函數(shù)值為除以的余數(shù),函數(shù)值的正負(fù)號(hào)與相同。 求余數(shù)函數(shù)? mod(20,3) ,mod(20,-3), mod(-20,3) ,mod(-20,-3) &函數(shù)值為2,-1,1,-2 例題INT ( )返回?cái)?shù)值表達(dá)式的整數(shù)部分CEILING( )返回大于或等于數(shù)值表達(dá)式的最小整數(shù)FLOOR( )返回小于或等于數(shù)值表達(dá)式的最大整數(shù)求整數(shù)函數(shù)STORE

54、 5.8 TO X?INT(X),INT(-X) 5 -5 ?CEILING(X),CEILING(-X) 6 -5?FLOOR(X),FLOOR(-X) 5 -6 例題ROUND ( , )返回?cái)?shù)值表達(dá)式1在數(shù)值表達(dá)式2指定位置四舍五入后的結(jié)果若數(shù)值表達(dá)式2大于等于0,指要保留的小數(shù)位數(shù)若數(shù)值表達(dá)式2小于0,對(duì)整數(shù)部分四舍五入四舍五入函數(shù)? round(123.4567,2)&函數(shù)值為123.46? round(123.4567,0)&函數(shù)值為123? round(123.4567,-2)&函數(shù)值為100 例題SQRT ( )返回指定數(shù)值表達(dá)式的平方根數(shù)值表達(dá)式的值不能為負(fù)求平方根函數(shù)EXP

55、 ( )函數(shù)值為以e為底數(shù),以為指數(shù)的值。 指數(shù)函數(shù)LOG ( )函數(shù)值為的自然對(duì)數(shù)值。 自然對(duì)數(shù)函數(shù)?exp(3),log(148.51)&函數(shù)值為20.09 , 5例題RAND ( )函數(shù)值為一個(gè)0到1之間的隨機(jī)數(shù)。 隨機(jī)數(shù)函數(shù)MAX ( , , )返回各表達(dá)式的最大值MIN ( , , )返回各表達(dá)式的最小值表達(dá)式的類型可以是數(shù)值型、字符型、貨幣型、日期型、日期時(shí)間型,但所有表達(dá)式類型必須相同求最大值最小值函數(shù)? max(53,5*3,53)&函數(shù)值為125 ?min(53,5*3,53)&函數(shù)值為15? max(中國,美國,日本),max(2006-10-1,2008-1-1)&函數(shù)值

56、為中國,1/1/08例題PI ( )返回圓周率該函數(shù)無參數(shù)圓周率函數(shù)2.3.2 字符串處理函數(shù)TRIM ( )返回字符表達(dá)式值去掉前導(dǎo)空格后形成的字符串ALLTRIM ( )返回字符表達(dá)式值去掉前導(dǎo)和尾部空格后形成的字符串LTRIM ( )返回字符表達(dá)式值去掉尾部空格后形成的字符串刪除前后空格函數(shù)s= 湖南 ?alltrim(s)+長(zhǎng)沙“&表達(dá)式值為湖南長(zhǎng)沙? ltrim(s)+長(zhǎng)沙“&表達(dá)式值為 湖南 長(zhǎng)沙?trim(s)+長(zhǎng)沙“&表達(dá)式值為 湖南長(zhǎng)沙例題SPACE ( )返回由指定數(shù)目的空格組成的字符串空格字符串生成函數(shù)LEN ( )函數(shù)值為的長(zhǎng)度,即包含的字符個(gè)數(shù)。其中,一個(gè)ASCII字

57、符長(zhǎng)度為1,一個(gè)漢字長(zhǎng)度為2。 字符串長(zhǎng)度函數(shù)x=space(1)+HUNAN+space(2)+ 湖南+space(3)?len(x)&表達(dá)式值為15?len(alltrim(x)&表達(dá)式值為11?len(ltrim(x)&表達(dá)式值為14?len(trim(x)&表達(dá)式值為12例題LOWER ( )將字符表達(dá)式值中的大寫字母轉(zhuǎn)換成小寫字母,其他字符不變UPPER ( )將字符表達(dá)式值中的小寫字母轉(zhuǎn)換成大寫字母,其他字符不變大小寫轉(zhuǎn)換函數(shù)?upper(China中國)&函數(shù)值為CHINA中國 ?lower(China中國)&函數(shù)值為 china中國例題LEFT ( , )返回字符表達(dá)式值的右端

58、取指定長(zhǎng)度的子串SUBSTR ( , , )返回字符表達(dá)式值從起始位置取指定長(zhǎng)度的子串若缺省長(zhǎng)度,則從起始位置取到最后一個(gè)字符RIGHT( , )返回字符表達(dá)式值的左端取指定長(zhǎng)度的子串取子串函數(shù) y=“CHINA中國”?left(y,5)&函數(shù)值為CHINA? right(y,4)&函數(shù)值為中國?substr(y,6,2)&函數(shù)值為中? substr(y,6)&中國例題AT ( , , )若第一個(gè)字符串是第二個(gè)字符串的子串,返回第一個(gè)字符串的首字符在第二個(gè)字符串中的位置若不是子串,則返回0若指定,則函數(shù)值為在中按指定出現(xiàn)的位置。缺省時(shí),默認(rèn)值為1。 該函數(shù)區(qū)分大小寫字母。 求子串位置函數(shù)ATC

59、 ( , , )該函數(shù)功能與AT相同,但比較字符表達(dá)式時(shí)不區(qū)分字母大小寫。 求子串位置函數(shù)store This is Visual Foxpro TO z?at(Fox,z) &函數(shù)值為16? at(fox,z)&函數(shù)值為0?atc(fox,z) &函數(shù)值為16?at(is,z,3) &函數(shù)值為10例題OCCURS ( , )返回第一個(gè)字符串在第二個(gè)字符串中出現(xiàn)的次數(shù),函數(shù)值為數(shù)值型若第一個(gè)字符串不是第二個(gè)字符串的子串,函數(shù)值為0計(jì)算子串出現(xiàn)次數(shù)函數(shù) m=湖南長(zhǎng)沙湖南大學(xué)?occurs(湖南,m)&函數(shù)值為2?occurs(長(zhǎng)沙,m)&函數(shù)值為1?occurs(長(zhǎng)沙大學(xué),m) &函數(shù)值為0例題

60、 REPLICATE( , )函數(shù)值為一個(gè)字符串,將重復(fù)所指定的次數(shù)。 產(chǎn)生重復(fù)字符的字符串函數(shù) ?replicate(HUNAN,2)+replicate(湖南,3)&表達(dá)式的值為HUNANHUNAN湖南湖南湖南例題STUFF( , , , )用值替換中由起始位置和長(zhǎng)度指明的一個(gè)子串。如果長(zhǎng)度值是0, 則插在由指定的字符前面。如果是空串,那么中的由起始位置和長(zhǎng)度指明的子串被刪去子串替換函數(shù)n=長(zhǎng)沙湖南大學(xué) ?stuff(n,5,4,中南林業(yè))&函數(shù)的值為長(zhǎng)沙中南林業(yè)大學(xué)?stuff(n,5,0,岳麓山)&函數(shù)的值為長(zhǎng)沙岳麓山湖南大學(xué)? stuff(n,5,4,)&函數(shù)的值為長(zhǎng)沙大學(xué)例題CHR

溫馨提示

  • 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)論