Visual FoxPro程序設(shè)計實(shí)用教程_第1頁
Visual FoxPro程序設(shè)計實(shí)用教程_第2頁
Visual FoxPro程序設(shè)計實(shí)用教程_第3頁
Visual FoxPro程序設(shè)計實(shí)用教程_第4頁
Visual FoxPro程序設(shè)計實(shí)用教程_第5頁
已閱讀5頁,還剩184頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

E-Mail:yangliu4575@VisualFoxPro程序設(shè)計實(shí)用教程第1章VisualFoxPro基礎(chǔ)第2章數(shù)據(jù)與數(shù)據(jù)運(yùn)算第3章數(shù)據(jù)庫操作第4章查詢與視圖第5章程序設(shè)計基礎(chǔ)第6章面向?qū)ο蟪绦蛟O(shè)計第7章表單第8章報表第9章菜單第10章項(xiàng)目與項(xiàng)目管理器第11章管理系統(tǒng)開發(fā)實(shí)例目錄★數(shù)據(jù)庫基礎(chǔ)★關(guān)系數(shù)據(jù)庫★VisualFoxPro基礎(chǔ)★VFP可視化設(shè)計工具★學(xué)生管理應(yīng)用系統(tǒng)實(shí)例★上機(jī)實(shí)戰(zhàn)第1章VisualFoxPro基礎(chǔ)★本章小結(jié)返回1.1數(shù)據(jù)庫基礎(chǔ)返回1.數(shù)據(jù)處理(1)數(shù)據(jù)數(shù)據(jù)是數(shù)據(jù)庫存儲的基本對象。按通常的理解,數(shù)據(jù)只表現(xiàn)為數(shù)字形式,這是一種傳統(tǒng)和狹義的理解。廣義的理解是,數(shù)字只是數(shù)據(jù)的一種表現(xiàn)形式,在計算機(jī)中可表示的種類很多,文字、圖形、圖像、聲音等都可以數(shù)字化,所以都是數(shù)據(jù)。(2)信息信息是現(xiàn)實(shí)世界中的各種事物、事物的特征及其聯(lián)系等在人腦中的反映,是經(jīng)過處理、加工提煉并用于決策制定或其他應(yīng)用活動的數(shù)據(jù)。對信息可以從兩方面來理解,一方面信息是數(shù)據(jù)的內(nèi)涵;另一方面信息是經(jīng)過處理的數(shù)據(jù)。數(shù)據(jù)和信息是兩個既有聯(lián)系又有區(qū)別的概念,數(shù)據(jù)是信息的載體,信息是數(shù)據(jù)的內(nèi)涵。同一信息可以有不同的數(shù)據(jù)表現(xiàn)形式,而同一數(shù)據(jù)也可以有不同的信息解釋。1.1數(shù)據(jù)庫基礎(chǔ)返回(3)數(shù)據(jù)處理由于客觀世界的事物都是普遍聯(lián)系的,因此從已有的數(shù)據(jù)出發(fā),根據(jù)事物之間的聯(lián)系,經(jīng)過一定的處理步驟,就可以產(chǎn)生新的數(shù)據(jù)。這些新的數(shù)據(jù)又可以表示新的信息,通常用作決策的依據(jù),這種從已知原始的或雜亂無章的數(shù)據(jù)中推導(dǎo)出對人們有用的數(shù)據(jù)或信息的過程稱為數(shù)據(jù)處理。(4)數(shù)據(jù)管理數(shù)據(jù)管理是指數(shù)據(jù)的收集、整理、組織、存儲、查詢和傳送等各種操作,是數(shù)據(jù)處理的基本環(huán)節(jié),是任何數(shù)據(jù)處理任務(wù)的共性部分。數(shù)據(jù)庫技術(shù)就是一種數(shù)據(jù)管理技術(shù)。1.1數(shù)據(jù)庫基礎(chǔ)返回數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了人工管理階段、文件管理階段和數(shù)據(jù)庫管理階段。(1)人工管理階段(20世紀(jì)50年代中期以前)計算機(jī)發(fā)展的初期主要應(yīng)用于科學(xué)計算,這一階段計算機(jī)的軟、硬件的發(fā)展也處于初級階段,計算機(jī)的硬件上只有磁帶、卡片、紙帶,沒有磁盤等直接存取的存儲設(shè)備;軟件上沒有操作系統(tǒng)實(shí)現(xiàn)對計算機(jī)數(shù)據(jù)的統(tǒng)一管理和調(diào)度,數(shù)據(jù)是由程序員自行設(shè)計,交給應(yīng)用程序進(jìn)行管理。(2)文件管理階段(20世紀(jì)50年代后期至60年代中期)隨著軟、硬件技術(shù)的發(fā)展,計算機(jī)不僅用于科學(xué)計算,還用于信息管理。這時硬件方面已有了磁盤、磁鼓等直接存取存儲設(shè)備。軟件方面出現(xiàn)了高級語言和操作系統(tǒng)。數(shù)據(jù)處理有批處理方式,也有聯(lián)機(jī)實(shí)時處理方式。(3)數(shù)據(jù)庫管理階段(20世紀(jì)60年代末以后)這一階段,計算機(jī)用于管理的規(guī)模越來越大,數(shù)據(jù)量急劇增加,對數(shù)據(jù)管理技術(shù)提出了更高要求。此時開始提出計算機(jī)網(wǎng)絡(luò)系統(tǒng)和分布式系統(tǒng)的概念,出現(xiàn)了大容量的磁盤,以文件系統(tǒng)為數(shù)據(jù)管理手段已不能再勝任多用戶、多應(yīng)用共享數(shù)據(jù)的需求,一個新的數(shù)據(jù)管理技術(shù)──數(shù)據(jù)庫管理系統(tǒng)(DBMS)應(yīng)運(yùn)而生,它標(biāo)志著數(shù)據(jù)管理技術(shù)的飛躍。1.1數(shù)據(jù)庫基礎(chǔ)返回2.數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)是以數(shù)據(jù)為中心的計算機(jī)系統(tǒng),主要應(yīng)用于大量數(shù)據(jù)的管理,例如商場、銀行、事業(yè)單位的行政管理等。作為計算機(jī)系統(tǒng),數(shù)據(jù)庫系統(tǒng)是由軟件、硬件和從事數(shù)據(jù)庫系統(tǒng)管理的人員組成。

DBMS的主要功能如下:①定義功能。②數(shù)據(jù)操作功能。③數(shù)據(jù)庫的運(yùn)行管理。④數(shù)據(jù)庫的建立和維護(hù)功能。

數(shù)據(jù)庫管理員(DBA):DBA是數(shù)據(jù)資源管理機(jī)構(gòu)的一組成員。總的來說,負(fù)責(zé)全面地管理和控制數(shù)據(jù)庫。具體職責(zé)包括:決定數(shù)據(jù)庫的信息內(nèi)容和結(jié)構(gòu);決定數(shù)據(jù)庫的存儲結(jié)構(gòu)和存取策略;定義數(shù)據(jù)的安全性要求和完整性的約束條件;監(jiān)督和控制數(shù)據(jù)庫的使用和運(yùn)行;數(shù)據(jù)庫的改進(jìn)和重組。1.1數(shù)據(jù)庫基礎(chǔ)返回3.數(shù)據(jù)模型的相關(guān)概念(1)實(shí)體實(shí)體是客觀世界中存在的且可以相互區(qū)分的事物。實(shí)體可以是人也可以是物;可以是具體事物,如,學(xué)生王、教師張、數(shù)學(xué)課,也可以是抽象的事件,如教師張講授了哪門課程,讀者的一次借閱活動等。(2)屬性屬性是實(shí)體或聯(lián)系所具有的性質(zhì)。通常一個實(shí)體由若干個屬性來描述。如學(xué)生實(shí)體可以描述為:學(xué)生(學(xué)號、姓名、性別、出生日期、專業(yè)、簡歷)。屬性是個變量,屬性值是變量所取的值,而域是變量的取值范圍。(3)聯(lián)系客觀世界中的事物彼此間往往是有聯(lián)系的。例如,教師與課程間存在“教”的聯(lián)系,而學(xué)生與課程間則存在“學(xué)”的聯(lián)系。聯(lián)系可分為三類:①一對一聯(lián)系(1∶1)②一對多聯(lián)系(1∶N)③多對多聯(lián)系(M∶N)1.2關(guān)系數(shù)據(jù)庫返回關(guān)系模型(1)關(guān)系:一個關(guān)系的邏輯結(jié)構(gòu)就是一張二維表。(2)元組:在一個二維表(一個具體關(guān)系)中,水平方向的行稱為元組,每一行是一個元組。元組對應(yīng)存儲文件中的一個具體記錄。(3)屬性:二維表中垂直方向的列稱為屬性,每一列有一個屬性名,與前面講的實(shí)體屬性相同,在VisualFoxPro中表示為字段名。每個字段的數(shù)據(jù)類型、寬度等在創(chuàng)建表的結(jié)構(gòu)時規(guī)定。(4)域:屬性的取值范圍,即不同元組對同一屬性的取值所限定的范圍。(5)關(guān)鍵字:屬性或?qū)傩缘慕M合,其值能夠惟一地標(biāo)識一個元組。在VisualFoxPro中,可以起到惟一標(biāo)識一個元組作用的關(guān)鍵字稱為候選關(guān)鍵字,從候選關(guān)鍵字中選擇一組作為主關(guān)鍵字。(6)外部關(guān)鍵字:如果表中的一個字段不是本表的主關(guān)鍵字或候選關(guān)鍵字,而是另外一個表的主關(guān)鍵字或候選關(guān)鍵字,這個字段(屬性)就稱為外部關(guān)鍵字。

1.2關(guān)系數(shù)據(jù)庫返回關(guān)系的性質(zhì)(1)關(guān)系必須規(guī)范化。所謂規(guī)范化是指關(guān)系模型中的每一個關(guān)系模型都必須滿足一定的要求。最基本的要求是每個屬性必須是不可分割的數(shù)據(jù)單元,即表中不能再包含表。(2)在同一關(guān)系中不能出現(xiàn)相同的屬性名,VisualFoxPro不允許同一個表中有相同的字段名。(3)關(guān)系中不允許有完全相同的元組,即冗余。(4)在同一關(guān)系中元組的次序無關(guān)緊要。也就是說,任意交換兩行的位置并不影響數(shù)據(jù)的實(shí)際含義。(5)在同一關(guān)系中列的次序無關(guān)緊要。任意交換兩列的位置也不影響數(shù)據(jù)的實(shí)際含義。1.2關(guān)系數(shù)據(jù)庫返回2.關(guān)系運(yùn)算

關(guān)系關(guān)系是由元組組成的集合,可以通過對關(guān)系的運(yùn)算來檢索滿足條件的數(shù)據(jù)。關(guān)系的基本運(yùn)算分兩類:一類是傳統(tǒng)的集合運(yùn)算;另一類是專門的運(yùn)算。傳統(tǒng)的集合運(yùn)算:(1)并:兩個相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個關(guān)系的所有元組共同組成的集合。(2)交:兩個具有相同結(jié)構(gòu)的關(guān)系R和S,它們的交是由既屬于R又屬于S的元組組成的集合。交運(yùn)算的結(jié)果是由R和S的共同擁有的元組組成。

(3)差:設(shè)有兩個相同結(jié)構(gòu)的關(guān)系R和S,R差S的結(jié)果是由屬于R但不屬于S的元組組成的集合,即差的運(yùn)算結(jié)果是從R中去掉S中相同的元組。專門的關(guān)系運(yùn)算:(1)選擇:從關(guān)系中找出滿足給定條件的元組的操作稱為選擇。(2)投影:從關(guān)系模式中指定若干個屬性組成新的關(guān)系稱為投影。(3)聯(lián)接:聯(lián)接是關(guān)系的橫向結(jié)合。聯(lián)接運(yùn)算將兩個關(guān)系模式連接成一個更大的關(guān)系模式,生成的新關(guān)系中包含滿足聯(lián)接條件的元組。1.3VisualFoxPro基礎(chǔ)返回1.VisualFoxPro發(fā)展

1995年微軟公司推出了VisualFoxPro3.0版,VisualFoxPro3.0是一個可運(yùn)行于Windows3.x、Windows95和WindowsNT環(huán)境的數(shù)據(jù)庫開發(fā)系統(tǒng)。與FoxPro2.5、FoxPro2.6相比,它是一個革命性的軟件產(chǎn)品,引進(jìn)了可視化編程和面向?qū)ο蟮母拍睢?/p>

1997年,微軟公司推出了VisualFoxPro5.0。

1998年,微軟公司發(fā)布了可視化編程語言集成包VisualStudio6.0,VisualFoxPro6.0就是其中的一個成員。

2000年,微軟公司在推出VisualStudio.NET中,將VisualFoxPro納入其中。后來,微軟公司對其VisualStudio.NET戰(zhàn)略進(jìn)行調(diào)整,將VisualFoxPro7.0從其VisualStudio.NET中獨(dú)立出來,形成一個仍基于.NET構(gòu)架的獨(dú)立的軟件產(chǎn)品。VisualFoxPro8.0是微軟公司推出的VisualFoxPro系列的新版本,也是本書所要講解的內(nèi)容。為敘述方便,本書將VisualFoxPro8.0簡稱為VFP。1.3VisualFoxPro基礎(chǔ)返回2.VFP的環(huán)境啟動VFP:①使用Windows系統(tǒng)菜單:用鼠標(biāo)單擊“開始”按鈕,選擇“程序”中的“MicrosoftVisualFoxPro8.0”命令。②雙擊桌面上的VFP圖標(biāo):建議常使用VFP的用戶在Windows桌面上建立它的快捷方式。③雙擊與VFP關(guān)聯(lián)的文件:打開“我的電腦”,找到VFP創(chuàng)建的用戶文件,如表文件、項(xiàng)目文件、表單文件等,用鼠標(biāo)雙擊這些文件都能啟動VFP系統(tǒng),同時打開這些文件。退出VFP:①單擊VisualFoxPro8.0標(biāo)題欄右上角的“關(guān)閉”按鈕。②從“文件”菜單中選擇“退出”命令。③單擊主窗口左上方的狐貍頭圖標(biāo),從控制菜單中選擇“關(guān)閉”按鈕,或者按Alt+F4鍵。④在“命令”窗口中鍵入QUIT命令,按Enter鍵。1.3VisualFoxPro基礎(chǔ)返回圖1-7VFP8.0主窗口界面1.3VisualFoxPro基礎(chǔ)返回3.VFP的系統(tǒng)配置

VFP可以使用“選項(xiàng)”對話框或SET命令進(jìn)行配置,還可以通過配置文件進(jìn)行設(shè)置。選擇“工具”菜單的“選項(xiàng)”選項(xiàng),彈出“選項(xiàng)”對話框。1.4VFP可視化設(shè)計工具返回1.向?qū)驅(qū)且环N快捷設(shè)計工具。它通過一組對話框依次與用戶對話,引導(dǎo)用戶分步完成VFP的某項(xiàng)任務(wù),例如創(chuàng)建表單、表、創(chuàng)建查詢和創(chuàng)建報表等。

VFP有20余種向?qū)Чぞ?。從?chuàng)建表、視圖、查詢等數(shù)據(jù)文件,到建立報表、標(biāo)簽、圖表、表單等VFP文檔,直至創(chuàng)建VFP的應(yīng)用程序,SQL服務(wù)器上的數(shù)據(jù)庫等操作,均可使用相應(yīng)的向?qū)Чぞ邅硗瓿伞?/p>

啟動向?qū)в幸韵滤姆N途徑。(1)在“項(xiàng)目管理器”中選擇要創(chuàng)建的文件類型,然后單擊“新建”按鈕。打開相應(yīng)的新建對話框,單擊相應(yīng)的向?qū)Ь涂梢詥酉鄳?yīng)的向?qū)?。?)選擇“文件”菜單的“新建”選項(xiàng),或者單擊工具欄的“新建”按鈕,打開“新建”對話框,選擇待創(chuàng)建文件的類型。然后單擊“向?qū)А卑粹o就可以啟動相應(yīng)的向?qū)?。?)選擇“工具”菜單的“向?qū)А边x項(xiàng),也可以直接訪問大多數(shù)的向?qū)?。?)單擊工具欄的“向?qū)А卑粹o可以直接啟動相應(yīng)的向?qū)А?.4VFP可視化設(shè)計工具返回2.設(shè)計器

設(shè)計器具有強(qiáng)大的功能,可以用來創(chuàng)建或者修改應(yīng)用程序所需要的組件??梢允褂孟旅嫒N方法之一打開設(shè)計器。(1)在“項(xiàng)目管理器”中打開利用“項(xiàng)目管理器”可以快速訪問VFP的各種設(shè)計器。在“項(xiàng)目管理器”窗口中選擇相應(yīng)的選項(xiàng)卡。選中要創(chuàng)建的文件類型,然后單擊“新建”按鈕,系統(tǒng)彈出相應(yīng)對話框,單擊相應(yīng)的按鈕即可打開相應(yīng)的設(shè)計器。(2)菜單方式打開從選擇“文件”菜單的“新建”選項(xiàng),或者單擊工具攔的“新建”按鈕,打開“新建”對話框。選擇待創(chuàng)建文件的類型,然后單擊“新建”按鈕,系統(tǒng)將自動打開設(shè)計器。同樣道理,當(dāng)打開不同的文件時,系統(tǒng)將打開不同的設(shè)計器。(3)從“顯示”菜單中打開當(dāng)打開某種類型的文件時,在“顯示”菜單會出現(xiàn)相應(yīng)的設(shè)計器選項(xiàng)。例如,當(dāng)打開或創(chuàng)建表單、報表或標(biāo)簽時,選擇“顯示”菜單的“數(shù)據(jù)環(huán)境”選項(xiàng),打開“數(shù)據(jù)環(huán)境設(shè)計器”窗口。當(dāng)瀏覽表時,在“顯示”菜單中會出現(xiàn)“表設(shè)計器”選項(xiàng)。1.4VFP可視化設(shè)計工具返回3.生成器生成器是帶有選項(xiàng)卡的對話框,用于簡化對表單、復(fù)雜控件和參照完整性代碼的創(chuàng)建和修改過程。每個生成器顯示一系列選項(xiàng)卡,用于設(shè)置選中對象的屬性。生成器名稱功能表單生成器增加字段作為新控件到表單表格生成器構(gòu)造一個表格,表格控件允許顯示和操作表或頁中的數(shù)據(jù)行和列編輯框生成器構(gòu)造一個文本編輯框,編輯框用于顯示長字段或Memo字段,并允許編輯文本列表框生成器構(gòu)造一個列表框,列表框提供給一個滾動條和若干個選項(xiàng)及信息,在列表框中各個信息始終可見文本框生成器構(gòu)造一個文本框,文本框允許用戶增加和編輯存儲在表中的字符、數(shù)字或日期字段組合框生成器構(gòu)造一個組合框,組合框類似一個列表框加上一個文本框命令組生成器構(gòu)造一個命令按鈕組,它包括一組相似的命令按鈕。當(dāng)單擊一個按鈕時,將執(zhí)行一個命令選項(xiàng)組生成器構(gòu)造一個選項(xiàng)組按鈕,這些按鈕允許選擇若干互斥選項(xiàng)中的一個自動格式生成器將一個格式集應(yīng)用于一種同類選定控件參照完整性生成器幫助設(shè)置觸發(fā)器,以控制如何在相關(guān)表中插入、刪除或修改記錄表達(dá)式生成器構(gòu)造一個表達(dá)式1.5學(xué)生管理應(yīng)用系統(tǒng)實(shí)例返回1.系統(tǒng)開發(fā)的基本過程(1)系統(tǒng)分析系統(tǒng)分析包括可行性分析和需求分析兩個方面。這一階段主要對系統(tǒng)開發(fā)進(jìn)行可行性論證,分析應(yīng)用系統(tǒng)的開發(fā)目的及要達(dá)到的目標(biāo)要求。在分析階段,信息收集是決定系統(tǒng)開發(fā)的可行性的重要環(huán)節(jié),通過所需信息的收集,確定應(yīng)用系統(tǒng)的總體目標(biāo)、總體開發(fā)思路。(2)系統(tǒng)設(shè)計系統(tǒng)設(shè)計包括數(shù)據(jù)設(shè)計和功能設(shè)計兩個方面。數(shù)據(jù)設(shè)計主要是指完整的數(shù)據(jù)模型,建立數(shù)據(jù)庫。根據(jù)系統(tǒng)分析結(jié)果,將系統(tǒng)數(shù)據(jù)分解、歸納,并規(guī)范化為若干個數(shù)據(jù)表,同時還要確定每個表中的字段屬性,以及數(shù)據(jù)表的索引、關(guān)聯(lián)等。功能設(shè)計是指系統(tǒng)的具體實(shí)現(xiàn),包括程序設(shè)計、表單、菜單及報表等可視化設(shè)計,輸入/輸出設(shè)計。(3)系統(tǒng)實(shí)施及測試該階段完成主程序設(shè)計及安裝調(diào)試。利用項(xiàng)目文件,將設(shè)計完成的各文件組裝在一個項(xiàng)目文件中統(tǒng)一管理,并在項(xiàng)目中設(shè)置主程序,設(shè)置系統(tǒng)運(yùn)行環(huán)境并進(jìn)行系統(tǒng)的整體調(diào)試。系統(tǒng)投入運(yùn)行后,進(jìn)行系統(tǒng)維護(hù)工作。1.5學(xué)生管理應(yīng)用系統(tǒng)實(shí)例返回2.系統(tǒng)的功能要求學(xué)生管理系統(tǒng)的開發(fā)目的是實(shí)現(xiàn)學(xué)生成績信息的計算機(jī)管理,主要功能包括數(shù)據(jù)存儲、檢索和輸出三部分,系統(tǒng)的基本要求是:良好的用戶界面設(shè)計;穩(wěn)定的數(shù)據(jù)存儲和維護(hù)功能;數(shù)據(jù)查詢功能;合理的輸入/輸出設(shè)計。1.5學(xué)生管理應(yīng)用系統(tǒng)實(shí)例返回3.學(xué)生管理系統(tǒng)的結(jié)構(gòu)及功能(1)應(yīng)用系統(tǒng)的主要界面系統(tǒng)的界面主要包括系統(tǒng)登錄界面、數(shù)據(jù)維護(hù)界面、信息查詢界面和數(shù)據(jù)統(tǒng)計界面等。(2)系統(tǒng)菜單利用菜單控制輸入、查詢和統(tǒng)計等模塊的操作,系統(tǒng)全部的應(yīng)用模塊均通過菜單調(diào)用。(3)報表功能報表是數(shù)據(jù)輸出的常用形式,VFP提供的報表不僅可以輸出數(shù)據(jù),還可以方便地進(jìn)行數(shù)據(jù)統(tǒng)計計算、優(yōu)化報表布局等。1.5學(xué)生管理應(yīng)用系統(tǒng)實(shí)例返回4.數(shù)據(jù)庫及相關(guān)數(shù)據(jù)表

學(xué)號姓名性別出生日期年齡黨員否專業(yè)簡歷照片200501001王小巖男10/12/8720F計算機(jī)200501002趙軍男03/16/8720T計算機(jī)200402001張新女07/10/8819F中文200403001李華女09/20/8918F數(shù)學(xué)200403002陳麗萍女11/15/8621T數(shù)學(xué)課程號課程名學(xué)分學(xué)時0101數(shù)據(jù)庫原理與應(yīng)用3480102數(shù)據(jù)結(jié)構(gòu)2320201數(shù)學(xué)分析3480202高等數(shù)學(xué)2320301當(dāng)代文學(xué)232學(xué)號課程號成績200501001010196200501002010187200501001010276200501002010267200403001020254200403002020182表1-13學(xué)生信息表1-14課程信息表1-15成績本章小結(jié)數(shù)據(jù)處理的概念:數(shù)據(jù)庫、數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)的概念和區(qū)別,以及數(shù)據(jù)管理的發(fā)展歷程。實(shí)體是現(xiàn)實(shí)世界中的客觀事物,實(shí)體之間的聯(lián)系包括三種:一對一聯(lián)系、一對多聯(lián)系和多對多聯(lián)系。數(shù)據(jù)模型是反映實(shí)體和實(shí)體之間聯(lián)系的模型,分為層次模型、網(wǎng)狀模型和關(guān)系模型。關(guān)系運(yùn)算包括傳統(tǒng)的集合運(yùn)算:并、交和差,專門的關(guān)系運(yùn)算:選擇、投影和聯(lián)接。VFP提供了多種可視化設(shè)計工具,包括各種向?qū)А⒃O(shè)計器和生成器,可以更簡便、快速、靈活地進(jìn)行應(yīng)用程序開發(fā)。系統(tǒng)開發(fā)的基本過程包括系統(tǒng)分析、系統(tǒng)設(shè)計和系統(tǒng)實(shí)施及測試。返回1.7上機(jī)實(shí)戰(zhàn)1.目的和要求熟悉VFP環(huán)境,并能對環(huán)境進(jìn)行配置。2.實(shí)戰(zhàn)內(nèi)容設(shè)置VFP日期的顯示為年月日格式,默認(rèn)的工作目錄為D:\XSGL。請同學(xué)們上機(jī)練習(xí)。返回★數(shù)據(jù)類型★常量與變量★表達(dá)式★函數(shù)★上機(jī)實(shí)戰(zhàn)第2章數(shù)據(jù)與數(shù)據(jù)運(yùn)算★本章小結(jié)返回2.1數(shù)據(jù)類型返回(1)字符型(Character)數(shù)據(jù)是描述非數(shù)值計算的文字?jǐn)?shù)據(jù),是常用的數(shù)據(jù)類型之一,用字母C表示。字符型數(shù)據(jù)由ASCII字符集中的可打印字符(英文字母、數(shù)字、空格、標(biāo)點(diǎn)符號等)和漢字構(gòu)成,最大長度為254個字符。(2)數(shù)值型數(shù)據(jù)一般用于計算,是一種量化數(shù)據(jù),也是常用的數(shù)據(jù)類型之一,用字母N表示。在VFP中,數(shù)值型數(shù)據(jù)被分為以下5種類型:數(shù)值型、浮點(diǎn)型、雙精度型、整型、貨幣型。(3)邏輯型(Logical)數(shù)據(jù)是描述客觀事物真假的數(shù)據(jù),用字母L表示,用于進(jìn)行邏輯判斷,常用于程序設(shè)計中。邏輯型數(shù)據(jù)只有表示真和假兩個值,長度固定為1個字符。(4)日期型(Date)數(shù)據(jù)是一種表示日期的數(shù)據(jù),用字母D表示,長度固定為8個字符。日期型數(shù)據(jù)包括年、月、日三個部分,每個部分以規(guī)定的分隔符隔開。由于年、月、日的順序可以不同,分隔符也可以自行設(shè)定,所以,日期型數(shù)據(jù)有多種格式。2.1數(shù)據(jù)類型返回(5)日期時間型(DateTime)數(shù)據(jù)是一種描述日期和時間的數(shù)據(jù),長度固定為8個字符。日期時間型數(shù)據(jù)除包括年、月、日外,還包括表示時間的時、分、秒以及上午(AM)和下午(PM)。(6)通用型(General)數(shù)據(jù)是一種保存OLE對象的數(shù)據(jù),用字母G表示。其中,OLE對象可以是電子表格、文檔、圖片等。通用型數(shù)據(jù)沒有長度的限制,它只用于定義數(shù)據(jù)表中的字段。其字段長度固定為4個字符,用來存儲一個指向固定對象的指針。(7)備注型(Memo)數(shù)據(jù)是一種用于存儲較長文本的字符型數(shù)據(jù),用字母M表示,是字符型數(shù)據(jù)的延伸。備注型數(shù)據(jù)沒有長度的限制,只用于定義數(shù)據(jù)表中的字段。其字段長度固定為4個字符,由這4個字符表示的指針指向存放內(nèi)容的地址,其備注型文本內(nèi)容存儲在相應(yīng)的備注文件中。2.2常量與變量返回1.常量

常量就是在程序運(yùn)行期間其值不能被改變的量。在VFP中,常量可以是一個數(shù)據(jù)項(xiàng),也可以是在程序或命令中直接引用的實(shí)際值。常量類型有如下6種。(1)字符型常量是由ASCII表中的可打印字符(英文字母、數(shù)字、標(biāo)點(diǎn)符號等)和漢字組成的由定界符括起來的串。字符型定界符有三種:(“”)、(‘’)或([])。(2)數(shù)值型常量由數(shù)字、小數(shù)點(diǎn)和正負(fù)號構(gòu)成。例如,-123.89、80、+42.37等都是合法的數(shù)值型常量。為了表示很大或很小的數(shù)值型常量,可以使用科學(xué)計數(shù)法表示。例如,6.23E-12表示6.23×10-12。(3)邏輯型常量由代表真或假的符號及定界符“..”構(gòu)成。邏輯真的表示有:.t.、.T.、.y.、.Y.;邏輯假的表示有:.f.、.F.、.n.、.N.。邏輯真、假值常用于條件判斷。2.2常量與變量返回(4)常用的日期型常量的系統(tǒng)輸出格式為:mm/dd/yy,常用的日期型常量的系統(tǒng)輸入格式為:{^yyyy/mm/dd},其中,mm代表月份值,dd代表日值,yy或yyyy代表年份值。例如,04/20/81是合法的日期輸出常量、{^1981/04/20}是合法的日期輸入常量。(5)常用的日期時間型常量的系統(tǒng)輸出格式為:mm/dd/yy

hh:mm:ssAM|PM,常用的日期型常量的系統(tǒng)輸入格式為:{^yyyy/mm/dd

hh:mm:ssAM|PM},其中,第一個mm代表月份值,dd代表日值,yy或yyyy代表年份值,hh表示小時值,第二個mm表示分鐘值,ss表示秒值,AM表示上午,PM表示下午。例如,tt={^1981/3/220:30:50},則輸出tt值為03/02/8108:30:50PM(6)貨幣型常量在存儲和計算時采用4位小數(shù),并且沒有科學(xué)計數(shù)法表示。例如,$124.56是一個貨幣型常量。2.2常量與變量返回2.變量

所謂變量就是在程序運(yùn)行期間其值可以被改變的量。每個變量都有一個名稱來標(biāo)識,稱為變量名。變量名最長可包含254個字符,是由字母、數(shù)字和下劃線組成,并由字母、下劃線開頭。其中,字母不分大小寫。在給變量起名時,應(yīng)盡量做到見名知義。在VFP中,有兩類變量,分別為內(nèi)存變量和字段變量。如果內(nèi)存變量與字段變量重名,則字段變量優(yōu)先識別。若想改變這種優(yōu)先關(guān)系,可在內(nèi)存變量名前加識別前綴“m.”或“m->”來標(biāo)識與字段變量同名的內(nèi)存變量名。2.2常量與變量返回3.內(nèi)存變量的常用命令(1)賦值命令格式1:STORE<表達(dá)式>TO<內(nèi)存變量表>格式2:<內(nèi)存變量>=<表達(dá)式>功能:計算表達(dá)式的值并將表達(dá)式的值賦給內(nèi)存變量,格式1一次可以給多個內(nèi)存變量賦相同的值,格式2一次只可以給一個內(nèi)存變量賦值。(2)變量及表達(dá)式的輸出命令格式:?|??<表達(dá)式表>功能:計算<表達(dá)式表>中各個表達(dá)式的值,并在輸出設(shè)備上輸出。?是先有回車換行操作,再輸出結(jié)果。若省略<表達(dá)式表>,則能在輸出設(shè)備上輸出一個空行;??是在當(dāng)前輸出位置上輸出結(jié)果,沒有回車換行操作。顯示內(nèi)存變量的命令還有LIST|DISPLAYMEMORY,用于顯示內(nèi)存中的全部內(nèi)存變量。(3)釋放內(nèi)存變量命令格式1:CLEARMEMORY格式2:RELEASE<內(nèi)存變量名表>功能:格式1清除用戶定義的所有的內(nèi)存變量。格式2清除指定的內(nèi)存變量。2.2常量與變量返回4.數(shù)組數(shù)組是一組有序內(nèi)存變量的集合。其中每一個內(nèi)存變量是這個數(shù)組的一個元素。每一個數(shù)組元素在內(nèi)存中獨(dú)占一個內(nèi)存單元。為了區(qū)分不同的數(shù)組元素,每一個數(shù)組元素都是通過數(shù)組名和下標(biāo)訪問的。數(shù)組必須先定義后使用。(1)數(shù)據(jù)的定義格式:DIMENSION<數(shù)組名1>(下標(biāo)1[,下標(biāo)2])[,<數(shù)組名2>(下標(biāo)1[,下標(biāo)2])],…功能:定義一維或二維數(shù)組及其下標(biāo)的上界。(2)數(shù)組元素賦值數(shù)組一旦定義,它的初始值為邏輯值.F.,下標(biāo)從1開始,在VFP系統(tǒng)中,同一個數(shù)組元素在不同的時刻可以存放不同類型的數(shù)據(jù),在同一數(shù)組中,每個元素的值可以是不同的數(shù)據(jù)類型,它的類型由它接受的數(shù)據(jù)的類型所決定。數(shù)組必須先定義后使用。例如,給數(shù)組A,B元素賦值,A(3)=100,B(2,1)=.T.,或B(4)=.T.等。未經(jīng)賦值的數(shù)組元素,系統(tǒng)將自動賦與邏輯假值(.F.)。2.3表達(dá)式返回將常量、變量和函數(shù)用運(yùn)算符連接起來的式子稱為表達(dá)式。根據(jù)運(yùn)算對象的數(shù)據(jù)類型不同,表達(dá)式可以分為算術(shù)表達(dá)式、字符表達(dá)式、日期和日期時間表達(dá)式、關(guān)系表達(dá)式和邏輯表達(dá)式等。1.算術(shù)表達(dá)式算術(shù)表達(dá)式是由算術(shù)運(yùn)算符將數(shù)值型常量、變量和函數(shù)連接起來的式子。算術(shù)表達(dá)式的結(jié)果為數(shù)值型常數(shù)。算術(shù)運(yùn)算符有**或^(乘方)、*(乘)、/(除)、%(取余)、+(加)、-(減或取負(fù))。其優(yōu)先級由高到低的排列順序?yàn)椋?*,^、*,/,%、+,-。2.字符表達(dá)式字符表達(dá)式可由字符運(yùn)算符連接的字符型常量、變量和函數(shù)組成。字符表達(dá)式的結(jié)果為字符型常數(shù)或邏輯型常數(shù)。字符運(yùn)算符有+(連接)、-(連接)和$(包含)。3.日期和日期時間表達(dá)式日期和日期時間表達(dá)式是指包含日期或日期時間型數(shù)據(jù)和日期運(yùn)算符的表達(dá)式。日期和日期時間表達(dá)式的結(jié)果是日期時間常量或數(shù)值型常數(shù)。運(yùn)算符包括“+”和“-”兩種。2.3表達(dá)式返回4.關(guān)系表達(dá)式關(guān)系表達(dá)式是由關(guān)系運(yùn)算符將字符表達(dá)式、算術(shù)表達(dá)式和日期時間連接起來的式子。關(guān)系運(yùn)算符兩端必須為可比較的同類型的表達(dá)式,關(guān)系表達(dá)式的結(jié)果為邏輯常量。關(guān)系運(yùn)算符包括:<(小于)、>(大于)、=(等于)、<=(小于等于)、>=(大于等于)、==(恒等于)和<>、#、!=(不等于)。5.邏輯表達(dá)式邏輯表達(dá)式是由邏輯運(yùn)算符將邏輯型常量、變量、函數(shù)和關(guān)系表達(dá)式連接起來的式子。邏輯表達(dá)式的結(jié)果為邏輯常數(shù)。邏輯運(yùn)算符包括:.NOT.(邏輯非)、.AND.(邏輯與)和.OR.(邏輯或)。優(yōu)先級由高到底的順序?yàn)?NOT.、.AND.、.OR.。6.表達(dá)式生成器

在VFP系統(tǒng)中任何可以寫表達(dá)式的地方單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“生成表達(dá)式”選項(xiàng),即可彈出“表達(dá)式生成器”對話框。在“表達(dá)式生成器”對話框中,用戶可以直接輸入表達(dá)式,也可以利用對話框提供的函數(shù)(包括運(yùn)算符)、字段和變量組成表達(dá)式。當(dāng)輸入完成時,用戶還可以通過“檢驗(yàn)”按鈕檢驗(yàn)表達(dá)式的有效性。2.4函數(shù)返回函數(shù)是實(shí)現(xiàn)特定功能的程序段。它通過函數(shù)調(diào)用會出現(xiàn)在表達(dá)式中,函數(shù)的運(yùn)算結(jié)果稱為返回值。函數(shù)調(diào)用的形式為:

函數(shù)名([參數(shù)列表])在VFP中函數(shù)可分為系統(tǒng)函數(shù)和用戶自定義函數(shù)兩大類。用戶自定義函數(shù)將在后面介紹,在此,主要介紹部分常用的系統(tǒng)函數(shù),其他函數(shù)的功能請查閱相關(guān)資料。1.數(shù)值函數(shù)2.字符串函數(shù)

3.日期和時間處理函數(shù)

數(shù)據(jù)類型轉(zhuǎn)換函數(shù)測試函數(shù)

本章小結(jié)數(shù)據(jù)類型是存儲數(shù)據(jù)的類型。數(shù)據(jù)類型包括字符型、數(shù)值型、日期型、邏輯型、備注型和通用型等。常量就是在程序運(yùn)行期間其值不能被改變的量。在使用常量時要注意加定界符。變量就是在程序運(yùn)行期間其值可以被改變的量。有兩類變量,分別為內(nèi)存變量和字段變量。函數(shù)是實(shí)現(xiàn)特定功能的程序段。函數(shù)分為系統(tǒng)函數(shù)和用戶自定義函數(shù)兩大類。表達(dá)式是由運(yùn)算符將數(shù)據(jù)、變量、函數(shù)連接起來的一個運(yùn)算式。有算術(shù)表達(dá)式、字符表達(dá)式、日期和日期時間表達(dá)式、關(guān)系表達(dá)式和邏輯表達(dá)式。返回2.6上機(jī)實(shí)戰(zhàn)1.目的和要求熟悉變量的賦值和表達(dá)式的生成及運(yùn)算規(guī)則,并能通過表達(dá)式生成器生成表達(dá)式。2.實(shí)戰(zhàn)內(nèi)容設(shè)置兩個變量a和b,它們的值分別為3、5。通過表達(dá)式生成器生成表達(dá)式a+b,并輸出a和b的和。請同學(xué)們上機(jī)練習(xí)。返回★數(shù)據(jù)庫的建立★數(shù)據(jù)庫的操作★在數(shù)據(jù)庫中加入和移去表★數(shù)據(jù)庫表的建立★上機(jī)實(shí)戰(zhàn)第3章數(shù)據(jù)庫操作★本章小結(jié)返回★表的基本操作★索引與排序★數(shù)據(jù)完整性★多工作區(qū)操作3.1數(shù)據(jù)庫的建立

VFP中的數(shù)據(jù)庫(DataBase)是基于數(shù)據(jù)庫文件建立的,文件的擴(kuò)展名為.DBC,被用于提供對數(shù)據(jù)庫表的引用、建立數(shù)據(jù)庫表之間的關(guān)聯(lián)、建立與數(shù)據(jù)庫表相關(guān)的數(shù)據(jù)視圖、建立與遠(yuǎn)程數(shù)據(jù)源的連接和建立存儲過程等。(1)通過菜單方式建立數(shù)據(jù)庫(2)通過命令方式建立數(shù)據(jù)庫格式:CREATEDATABASE[<數(shù)據(jù)庫文件名>]功能:創(chuàng)建一個數(shù)據(jù)庫文件。若未指定數(shù)據(jù)庫文件名,將彈出“創(chuàng)建”對話框,等待用戶選定保存數(shù)據(jù)庫文件的文件夾和輸入數(shù)據(jù)庫文件名。例如:CREATEDATABASED:\XSGL\學(xué)生管理說明:使用該命令建立數(shù)據(jù)庫后打開的僅僅是數(shù)據(jù)庫,不打開“數(shù)據(jù)庫設(shè)計器”窗口。如果想打開“數(shù)據(jù)庫設(shè)計器”窗口,應(yīng)在命令窗口輸入:MODIFYDATABASE命令。返回3.2數(shù)據(jù)庫的操作1.打開和關(guān)閉數(shù)據(jù)庫對數(shù)據(jù)庫進(jìn)行操作之前,應(yīng)先打開數(shù)據(jù)庫。(1)打開數(shù)據(jù)庫菜單方式選擇“文件”菜單的“打開”選項(xiàng),彈出“打開”對話框,在文件類型下拉列表框內(nèi),選擇文件類型為“數(shù)據(jù)庫”,然后選擇數(shù)據(jù)庫文件名,單擊“確定”按鈕后進(jìn)入“數(shù)據(jù)庫設(shè)計器”窗口。命令方式格式:OPENDATABASE[<數(shù)據(jù)庫文件名>|?][NOUPDATE][EXCLUSIVE|SHARED]功能:打開指定的數(shù)據(jù)庫。說明:?表示系統(tǒng)會彈出“打開”對話框。

NOUPDATE指定以只讀方式打開數(shù)據(jù)庫。

EXCLUSIVE指定以獨(dú)占方式打開數(shù)據(jù)庫,SHARED指定以共享方式打開數(shù)據(jù)庫。返回3.2數(shù)據(jù)庫的操作(2)關(guān)閉數(shù)據(jù)庫菜單方式選擇“文件”菜單的“關(guān)閉”選項(xiàng),關(guān)閉正在使用的數(shù)據(jù)庫。命令方式格式1:CLOSEDATABASES功能:關(guān)閉所有打開的數(shù)據(jù)庫和數(shù)據(jù)表。格2:CLOSEALL功能:關(guān)閉所有打開的數(shù)據(jù)庫和數(shù)據(jù)表,同時關(guān)閉除主窗口之外的各種窗口。2.修改數(shù)據(jù)庫格式:MODIFYDATABASE[<數(shù)據(jù)庫文件名>|?]功能:打開當(dāng)前數(shù)據(jù)庫的“數(shù)據(jù)庫設(shè)計器”窗口,修改數(shù)據(jù)庫。3.刪除數(shù)據(jù)庫格式:DELETEDATABASE<數(shù)據(jù)庫文件名>|?[DELETETABLES]功能:從磁盤上刪除數(shù)據(jù)庫文件。說明:DELETETABLES表示刪除數(shù)據(jù)庫的同時數(shù)據(jù)庫中的數(shù)據(jù)表都將被刪除;否則只刪除數(shù)據(jù)庫文件,原數(shù)據(jù)庫表變成自由表。返回3.3在數(shù)據(jù)庫中加入和移去表1.自由表添加到數(shù)據(jù)庫中(1)菜單方式打開“數(shù)據(jù)庫設(shè)計器”,選擇“數(shù)據(jù)庫”菜單中選擇“添加表”命令,然后從“打開”對話框中選擇要添加到當(dāng)前數(shù)據(jù)庫的自由表。(2)

命令方式格式:ADDTABLE<數(shù)據(jù)庫文件名>|?[NAME<長數(shù)據(jù)庫表名>]功能:將自由表變成數(shù)據(jù)庫表。說明:其中<數(shù)據(jù)庫文件名>給出了要添加到當(dāng)前數(shù)據(jù)庫的自由表表名,如果使用“?”則彈出“打開”對話框,從中選擇要添加到數(shù)據(jù)庫中的自由表。

<長數(shù)據(jù)庫表名>則為數(shù)據(jù)庫表指定了一個長名,最多可以有128個字符。使用長名在程序中可以提高程序的可讀性。當(dāng)數(shù)據(jù)庫不再使用某個表,而其他數(shù)據(jù)庫要使用該表時,必須將表從當(dāng)前數(shù)據(jù)庫中移出,使之成為自由表,再添加到其他數(shù)據(jù)庫中。返回3.3在數(shù)據(jù)庫中加入和移去表2.數(shù)據(jù)庫表移出數(shù)據(jù)庫(1)菜單方式在“數(shù)據(jù)庫設(shè)計器”窗口,選擇要移去的表,然后選擇“數(shù)據(jù)庫”菜單中“移去”選項(xiàng),或者單擊鼠標(biāo)右鍵從快捷菜單中選擇“刪除”命令,最后從提示的對話框中選擇“移去”即可說明:從數(shù)據(jù)庫中移出表,使被移出的表成為自由表,應(yīng)該選擇“移去”;如果選擇“刪除”,則不僅從數(shù)據(jù)庫中將表移出,而且還從磁盤上刪除該表。一旦某個表從數(shù)據(jù)庫中移出,那么與之聯(lián)系的所有主索引、默認(rèn)值及有關(guān)的規(guī)則都隨之消失,因此,將某個表移出的操作會影響到當(dāng)前數(shù)據(jù)庫中與該表有聯(lián)系的其他表。如果移出的表在數(shù)據(jù)庫中使用了長表名,那么表一旦移出,長表名將不能再使用。返回3.3在數(shù)據(jù)庫中加入和移去表(2)命令方式。格式:REMOVETABLE<數(shù)據(jù)庫表名>|?[DELETE][RECYCLE]功能:將數(shù)據(jù)庫表刪除或變成自由表。說明:

<數(shù)據(jù)庫表名>給出了要從當(dāng)前數(shù)據(jù)庫中移去的表名,如果使用問號“?”,則彈出“移去”對話框,從中選擇要移去的表。如果使用選項(xiàng)DELETE,則在把所選表從數(shù)據(jù)庫中移出之外,還將其從磁盤中刪除。如果使用選項(xiàng)RECYCLE,則把所選表從數(shù)據(jù)庫移出之后,放在Windows的回收站中,并不立即從磁盤上刪除。返回3.4數(shù)據(jù)庫表的建立1.表的基本概念

VFP有兩種形式的數(shù)據(jù)表,即自由表和數(shù)據(jù)庫表。不屬于任何數(shù)據(jù)庫而獨(dú)立存在的表稱為“自由表”。當(dāng)把自由表加入到數(shù)據(jù)庫時,自由表就變成了數(shù)據(jù)庫表,數(shù)據(jù)庫表和自由表相比,具有一些自由表所沒有的屬性,如主關(guān)鍵字、觸發(fā)器、默認(rèn)值、表的關(guān)系等。反之,當(dāng)將數(shù)據(jù)庫表從數(shù)據(jù)庫中移去時,數(shù)據(jù)庫表就變成自由表,數(shù)據(jù)庫表所具有的某些屬性也同時消失。此外,在VFP中,任何一個數(shù)據(jù)表都只能屬于一個數(shù)據(jù)庫,如果要將一個數(shù)據(jù)庫表移到其他數(shù)據(jù)庫中,必須先將該數(shù)據(jù)庫表變?yōu)樽杂杀?,再將其加入到另一個數(shù)據(jù)庫中。返回3.4數(shù)據(jù)庫表的建立2.建立表的結(jié)構(gòu)(1)表的結(jié)構(gòu)在學(xué)習(xí)如何創(chuàng)建數(shù)據(jù)表之前,必須先了解表的結(jié)構(gòu)。無論是數(shù)據(jù)庫表還是自由表,在形式上都是一個二維表結(jié)構(gòu),表文件以.DBF為擴(kuò)展名存儲在磁盤上。每一列稱為一個字段,字段有字段名和字段值,所有字段名的集合構(gòu)成了表的第一行(表頭),叫做數(shù)據(jù)表的結(jié)構(gòu);每一行稱為一條記錄。表的結(jié)構(gòu)與記錄是表的兩大組成部分,在表能夠存放數(shù)據(jù)前,必須先定義表結(jié)構(gòu)。定義表結(jié)構(gòu)時,它需要描述數(shù)據(jù)表所有字段的名稱、數(shù)據(jù)類型、寬度、小數(shù)位數(shù)以及能否接收NULL值等。(2)建立表的結(jié)構(gòu)有兩種方式建立表的結(jié)構(gòu):菜單方式和命令方式。返回字段名字段類型字段寬度小數(shù)位數(shù)學(xué)號字符型9課程號字符型4成績數(shù)值型33.4數(shù)據(jù)庫表的建立返回3.向表中輸入數(shù)據(jù)定義好表結(jié)構(gòu)后就可以向表中輸入記錄了,VFP提供以下兩種數(shù)據(jù)輸入方式:瀏覽方式和編輯方式。(1)備注型字段的數(shù)據(jù)輸入:在記錄輸入窗口中,將光標(biāo)移到備注型字段的“memo”處,用鼠標(biāo)雙擊,彈出備注型字段編輯窗口,輸入結(jié)束后,按“×”按鈕或組合鍵Ctrl+W,即可將備注型數(shù)據(jù)存盤,關(guān)閉備注型字段的編輯窗口。按Ctrl+Q則放棄本次輸入,關(guān)閉備注型字段的編輯窗口。注意,此時“memo”變成“Memo”,表示已經(jīng)輸入數(shù)據(jù)。(2)通用型字段的數(shù)據(jù)輸入:在記錄輸入窗口中,將光標(biāo)移到通用型字段的“gen”處,用鼠標(biāo)雙擊,彈出通用型字段編輯窗口,選擇“編輯”菜單的“插入對象”選項(xiàng).注意,此時“gen”變成“Gen”,表示已經(jīng)輸入數(shù)據(jù)。3.5表的基本操作返回1.表的打開與關(guān)閉當(dāng)前正在操作的表稱為當(dāng)前表。故對表進(jìn)行操作前必須先打開,使之成為當(dāng)前表。打開表是指將表文件調(diào)入內(nèi)存,并成為當(dāng)前表,并不打開“表設(shè)計器”;而關(guān)閉表是相反的操作,即將表文件寫回磁盤。(1)

打開數(shù)據(jù)表菜單方式:選擇“文件”菜單下的“打開”選項(xiàng),彈出“打開”對話框,選擇表文件,打開表文件。命令方式:格式:USE<表名>[ALIAS<別名>][EXCLUSIVE|SHARED]功能:打開指定的數(shù)據(jù)表文件。(2)關(guān)閉數(shù)據(jù)表對表操作完成后,應(yīng)及時關(guān)閉表,以保證更新后的內(nèi)容能寫入相應(yīng)的表中。格式1:USE功能:關(guān)閉表文件。格式2:CLOSEALL功能:關(guān)閉包括表在內(nèi)的所有文件。3.5表的基本操作返回2.修改表的結(jié)構(gòu)在VFP中,數(shù)據(jù)表結(jié)構(gòu)的修改包括增加或刪除字段,修改字段名、類型、寬度,增加、刪除或修改索引。對于數(shù)據(jù)庫表,還可以修改或刪除有效規(guī)則等,選擇“顯示”菜單的“表設(shè)計器”選項(xiàng),彈出“表設(shè)計器”對話框,查看表結(jié)構(gòu),將鼠標(biāo)移到相應(yīng)的地方進(jìn)行修改表結(jié)構(gòu)。修改表結(jié)構(gòu)的命令是:MODIFYSTRUCTURE3.表中記錄的瀏覽和顯示瀏覽表的內(nèi)容可以分為“編輯”和“瀏覽”兩種方式,對應(yīng)的命令是EDIT和BROWSE。利用“顯示”菜單也可以方便地實(shí)現(xiàn)表的瀏覽和編輯操作。在此方式下,還可以修改表中的數(shù)據(jù)??梢詫⒈淼娜炕虿糠钟涗涳@示在主窗口中。命令的格式為:LIST|DISPLAY[[FIELDS]<字段名表>][范圍][FOR<條件表達(dá)式>]范圍子句指定對哪些記錄進(jìn)行操作,包括:ALL:指定全部記錄,REST:指定從當(dāng)前記錄開始的其余全部記錄,NEXTn指定從當(dāng)前記錄開始的n條記錄,RECORDn:第n條記錄。3.5表的基本操作返回4.記錄的定位在VFP中,數(shù)據(jù)表中的記錄是由指針管理的,稱為記錄指針。每一個打開的數(shù)據(jù)表都有一個自己的記錄指針,記錄指針?biāo)傅挠涗浄Q為當(dāng)前記錄。(1)菜單方式:打開“瀏覽”窗口;選擇“表”菜單的“轉(zhuǎn)到記錄”選項(xiàng);在子菜單選擇“第一個”、“最后一個”、“下一個”、“上一個”、“記錄號”或“定位”;如果選擇“記錄號”,在“轉(zhuǎn)到記錄”對話框中輸入待查看記錄的編號;如果選擇了“定位”,在“定位記錄”對話框中輸入指定條件,然后單擊“確定”按鈕。(2)GO|GOTO命令格式:GO|GOTO<記錄號>|TOP|BOTTOM功能:將記錄指針移動到指定的位置。(3)SKIP命令相對移動指針命令SKIP的功能是以當(dāng)前記錄指針為基準(zhǔn),向前或向后移動指針。格式:SKIP<記錄數(shù)>功能:使記錄指針在表中向前或向后移動。3.5表的基本操作返回5.記錄的刪除表中記錄的刪除分為邏輯刪除和物理刪除兩種操作。邏輯刪除是對要刪除的記錄加上刪除標(biāo)記,記錄仍然存在,以后還可以恢復(fù);而物理刪除則是將帶刪除標(biāo)記的記錄從表中徹底刪除,以后不能恢復(fù)。(1)邏輯刪除菜單方式命令方式邏輯刪除格式:DELETE[<范圍>][FOR<條件>]功能:邏輯刪除當(dāng)前表中指定范圍內(nèi)滿足條件的記錄,即對這些記錄作刪除標(biāo)記。說明:省略<范圍>和<條件>子句時,默認(rèn)對當(dāng)前記錄進(jìn)行邏輯刪除,即對當(dāng)前記錄添加刪除標(biāo)記。3.5表的基本操作返回(2)恢復(fù)記錄被邏輯刪除的記錄可以恢復(fù)?;謴?fù)的命令為:格式:RECALL[<范圍>][FOR<條件>]功能:恢復(fù)當(dāng)前表中指定范圍內(nèi)滿足條件的被邏輯刪除的記錄,即取消這些記錄的刪除標(biāo)記。說明:省略<范圍>和<條件>子句時,默認(rèn)恢復(fù)當(dāng)前記錄,即取消當(dāng)前記錄的刪除標(biāo)記。恢復(fù)記錄也可以選擇“表”菜單的“恢復(fù)記錄”選項(xiàng)來完成。(3)物理刪除記錄物理刪除就是把邏輯刪除的記錄徹底從磁盤上刪除,釋放磁盤空間。徹底刪除記錄必須先邏輯刪除,然后再物理刪除。物理刪除的命令是PACK,被刪除的記錄將不能恢復(fù)。物理刪除也可以通過選擇“表”菜單的“徹底刪除”選項(xiàng)來完成。ZAP命令是一次性物理刪除表中全部記錄的命令,該命令執(zhí)行后,只保留表的結(jié)構(gòu)。3.5表的基本操作返回6.表中數(shù)據(jù)的替換如果表中有大量數(shù)據(jù)需要有規(guī)律地修改時,可以選擇“表”菜單的“替換字段”選項(xiàng)。批量數(shù)據(jù)替換操作也可通過REPLACE命令完成,命令格式為:REPLACE[范圍]<字段名1>WITH<表達(dá)式1>[,<字段名2>WITH<表達(dá)式2>,…][FOR<條件表達(dá)式>]說明:范圍和FOR省略,表示只替換當(dāng)前記錄。例如,將“學(xué)生信息”表中的學(xué)生的年齡增加1歲。

REPLACEALL年齡WITH年齡+13.6索引與排序返回1.索引的概念(1)索引的概念

VFP索引是由指針構(gòu)成的文件,這些指針邏輯上按照索引關(guān)鍵字值進(jìn)行排序。索引文件和表文件分別存儲,并且不改變表中的物理順序。實(shí)際上創(chuàng)建索引是創(chuàng)建一個由指向表文件記錄的指針構(gòu)成的文件。如果要根據(jù)特定順序處理表記錄,可以選擇一個相應(yīng)的索引。使用索引不僅可以重新安排數(shù)據(jù)表中處理記錄的順序,還可以加速對表的查看和訪問。(2)索引文件的類型根據(jù)索引文件包含索引的個數(shù)和索引文件的打開方式不同,索引文件可分為獨(dú)立索引文件和復(fù)合索引文件。復(fù)合索引文件又分為非結(jié)構(gòu)復(fù)合索引和結(jié)構(gòu)復(fù)合索引文件。(3)索引類型數(shù)據(jù)庫中用來作為索引順序的字段或字段表達(dá)式,可以是表中的單個字段,也可以是表中幾個字段組成的表達(dá)式。在VFP中,索引類型可分為4類:主索引、候選索引、惟一索引和普通索引3.6索引與排序返回2.建立索引

(1)在“表設(shè)計器”中建立索引(2)通過命令方式建立索引格式:INDEXON<索引表達(dá)式>TAG<索引名>[UNIQUE|CANDIDATE][ASCENDING|DESCENDING][FOR<條件>]功能:建立結(jié)構(gòu)復(fù)合索引說明:<索引表達(dá)式>可以是單個字段,也可以是多個字段組合。

TAG<索引名>表示在復(fù)合索引文件中建立一個指定的索引標(biāo)識。

UNIQUE表示建立惟一索引,CANDIDATE表示建立候選索引。不帶這兩個選項(xiàng)表示建立普通索引。

ASCENDING|DESCENDING表示索引關(guān)鍵字以遞增或遞減的方式建立索引,默認(rèn)為升序。

FOR<條件>表示僅對數(shù)據(jù)表中滿足條件的記錄建立索引。使用INDEX命令只能建立普通索引、惟一索引和候選索引。

3.6索引與排序返回3.索引的使用(1)打開和關(guān)閉索引文件格式1:SETINDEXTO[<索引文件表>][ADDITIVE]功能:打開當(dāng)前表的一個或多個索引文件并確定主控索引文件。說明:索引文件表中第一個索引文件為主控索引文件。若缺省ADDITIVE選項(xiàng),則用本命令打開索引文件時,除結(jié)構(gòu)復(fù)合索引文件以外的索引文件均被關(guān)閉。若缺省所有選項(xiàng),SETINDEXTO命令將關(guān)閉當(dāng)前工作區(qū)中除結(jié)構(gòu)復(fù)合索引文件以外的所有索引文件,同時取消主控索引。關(guān)閉表的同時也關(guān)閉與它有關(guān)的所有索引。格式2:USE<表文件名>INDEX<索引文件表>功能:在打開表的同時打開索引文件。3.6索引與排序返回(2)確定主控索引菜單方式命令方式格式:SETORDERTO<索引名>|<索引序號>[ASCENDING|DESCENDING]]功能:確定主控索引。說明:SETORDERTO或SETORDERTO0命令取消主控索引文件及主控索引,表中記錄將按物理順序輸出。(3)刪除索引格式:DELETETAGALL|<索引名1>[<,索引名2>...]功能:刪除打開的結(jié)構(gòu)復(fù)合索引文件的索引名。說明:ALL子句用于刪除結(jié)構(gòu)復(fù)合索引文件的所有索引名。(4)索引的更新自動更新當(dāng)表中的數(shù)據(jù)發(fā)生變化時,所有當(dāng)時已打開的索引文件都會隨數(shù)據(jù)的改變自動改變記錄的邏輯順序,實(shí)現(xiàn)索引文件的自動更新。重新索引格式:REINDEX功能:重新建立索引。3.6索引與排序返回4.排序(1)排序的定義排序就是把數(shù)據(jù)表中的記錄按照某個字段值的大小順序重新排列,作為排序依據(jù)的字段稱為“關(guān)鍵字”。排序操作的結(jié)果是創(chuàng)建一個新的數(shù)據(jù)表文件。排序可以按照關(guān)鍵字值從小到大的順序進(jìn)行升序排序,也可以按照關(guān)鍵字值由大到小的順序進(jìn)行降序排序。(2)數(shù)據(jù)比較大小的依據(jù)在VFP中,數(shù)據(jù)大小的比較規(guī)則為:數(shù)值型數(shù)據(jù)按其數(shù)值的大小進(jìn)行比較。字符型數(shù)據(jù)按其機(jī)內(nèi)碼順序比較,對于西文字符是ASCII碼的值,對于漢字是漢字國標(biāo)碼的值;常用的一級漢字是按照拼音順序排列的,也就是字典順序。日期型數(shù)據(jù)按年、月、日的順序進(jìn)行比較。3.6索引與排序返回(3)排序的實(shí)現(xiàn)格式:SORTTO<文件名>ON<字段名1>[/A][/D][/C][,<字段名2>[/A][/D][/C]…][<范圍>][FOR<條件>][FIELDS<字段名表>]功能:將當(dāng)前數(shù)據(jù)表中指定范圍內(nèi)滿足條件的記錄,按指定字段的升序或降序重新排列,并將排序后的記錄按FIELDS子句指定的字段寫入新的表文件中。說明:

ON子句中字段名1、字段名2等為排序關(guān)鍵字,不包括邏輯型字段、備注型字段和通用型字段。其中,字段名1為主要排序關(guān)鍵字,字段名2為次要關(guān)鍵字,依此類推;排序時先比較主關(guān)鍵字的值,當(dāng)主關(guān)鍵字值相同時,再比較次關(guān)鍵字的值,依此類推。

FIELDS子句指定排序以后的新表所包含的字段個數(shù);若無此選項(xiàng),則新表中包含原表中的所有字段。選項(xiàng)/A表示按字段值升序排列,可以省略不寫;/D表示按字段值降序排列;/C表示按指定的字符字段排序時,不區(qū)分字母的大小寫。/C可以與/D或/A合用,如/AC或/DC

排序后,原來的表文件仍存在,記錄順序和數(shù)據(jù)內(nèi)容不改變。3.7數(shù)據(jù)完整性返回1.實(shí)體完整性與主關(guān)鍵字實(shí)體完整性是保證表中記錄惟一的特性,即在一個表中不允許有重復(fù)的記錄,在VFP中利用主關(guān)鍵字或候選關(guān)鍵字來保證表中的記錄惟一,即保證實(shí)體完整性。2.域完整性與約束規(guī)則域完整性是根據(jù)應(yīng)用環(huán)境的要求和系統(tǒng)的實(shí)際需要,對某一具體引用所涉及的數(shù)據(jù)提出約束條件。數(shù)據(jù)類型的定義屬于域完整性的范疇,域約束規(guī)則也稱作字段有效性規(guī)則,在插入或修改字段值時被激活,主要用于數(shù)據(jù)輸入正確性的檢驗(yàn)。只有數(shù)據(jù)庫表可以建立字段有效性規(guī)則,自由表不能建立字段有效性規(guī)則。3.7數(shù)據(jù)完整性返回3.記錄有效性和觸發(fā)器(1)記錄有效性記錄有效性規(guī)則用來控制用戶輸入到記錄中的信息的有效性檢查,實(shí)際上也是設(shè)置一個邏輯條件。記錄有效性規(guī)則通常比較同一記錄中的兩個或多個字段值,以確保它們遵守在數(shù)據(jù)庫中建立的規(guī)則。例如:可以使用記錄有效性規(guī)則,來保證一個字段的值總是比同一記錄中的另一個字段值大。(2)設(shè)置觸發(fā)器觸發(fā)器是在某些事件發(fā)生時觸發(fā)執(zhí)行的一個表達(dá)式或一個過程。這些事件包括插入記錄、修改記錄和刪除記錄。當(dāng)發(fā)生這些事件時,將引發(fā)觸發(fā)器中所包含的事件代碼。觸發(fā)器有三種:插入觸發(fā)器、刪除觸發(fā)器和更新觸發(fā)器。3.7數(shù)據(jù)完整性返回4.參照完整性與表之間的聯(lián)系(1)建立表之間的關(guān)系表之間的聯(lián)系是基于索引建立的一種永久關(guān)系。這種聯(lián)系作為數(shù)據(jù)庫的一部分保存在數(shù)據(jù)庫中。表之間的聯(lián)系在“數(shù)據(jù)庫設(shè)計器”中顯示為表索引之間的連接線。在數(shù)據(jù)庫的兩個表之間建立聯(lián)系時,要求兩個表的索引中至少有一個是主索引或候選索引。一般地,父表建立主索引,而子表中的索引類型決定了要建立的聯(lián)系類型。如果子表中的索引類型是主索引或候選索引。則建立起來的就是一對一聯(lián)系。如果子表中的索引類型是普通索引,則建立起來的就是一對多聯(lián)系。(2)設(shè)置參照完整性約束在數(shù)據(jù)庫中建立數(shù)據(jù)表之間的聯(lián)系后,可以設(shè)置管理聯(lián)系記錄的規(guī)則。VFP使用用戶自定義的字段級和記錄級規(guī)則完成參照完整性規(guī)則。“參照完整性生成器”可以幫助用戶建立規(guī)則,控制記錄如何在相關(guān)表中被插入、更新或刪除。3.8多工作區(qū)操作返回1.多工作區(qū)的概念為了同時打開多個表,并對多個表進(jìn)行操作,VFP引入了工作區(qū)的概念。工作區(qū)使用來保存表及相關(guān)信息的一片內(nèi)存空間,每個工作區(qū)可以打開一個表文件。VFP提供了32767個工作區(qū),選擇不同的工作區(qū)后,可以使用USE命令打開不同的表。即不同的表可以在多個工作區(qū)同時打開。格式:SELECT<工作區(qū)號>|<別名>功能:選擇工作區(qū)。說明:工作區(qū)號的取值范圍是1~32767之間的正整數(shù)。工作區(qū)的別名可以是系統(tǒng)定義的別名:1~10號工作區(qū)的別名分別為字母A~J,也可以將表名作為工作區(qū)的別名。用戶也可以用命令重新定義別名。例如,USE學(xué)生信息ALIASXS默認(rèn)情況下,VFP工作在1號工作區(qū),工作區(qū)的區(qū)號還可以是0,含義是選擇當(dāng)前未被使用的最小工作區(qū)。一個工作區(qū)同一時刻只能打開一個表。3.8多工作區(qū)操作返回2.表之間的關(guān)聯(lián)為了方便在多個表之間進(jìn)行數(shù)據(jù)互訪,需要在表之間建立臨時聯(lián)系。格式:SETRELATIONTO<表達(dá)式>INTO<工作區(qū)號>|<別名>功能:建立父表與子表的臨時聯(lián)系。說明:

<表達(dá)式>指定建立臨時聯(lián)系的索引關(guān)鍵字,用工作區(qū)號或別名說明臨時聯(lián)系是當(dāng)前工作區(qū)的表(父表)到哪個表(子表)的關(guān)聯(lián),被關(guān)聯(lián)的表(子表)要求必須按關(guān)聯(lián)關(guān)鍵字建立索引,并將其設(shè)置為當(dāng)前索引名。不帶參數(shù)的SETRELATIONTO命令取消兩個表間的關(guān)聯(lián)。本章小結(jié)數(shù)據(jù)庫的概念和建立方式,數(shù)據(jù)庫的相關(guān)操作。表的概念,建立表結(jié)構(gòu)和向表中輸入數(shù)據(jù)。表的基本操作,包括打開和關(guān)閉,修改表結(jié)構(gòu)和表數(shù)據(jù),表中記錄的定位、刪除和替換。索引包括主索引、候選索引、惟一索引和普通索引。數(shù)據(jù)完整性包括實(shí)體完整性、域完整性和參照完整性。表之間永久聯(lián)系是一種對象,存在于數(shù)據(jù)庫中??梢栽诙鄠€工作區(qū)同時打開多個數(shù)據(jù)庫,建立表之間臨時聯(lián)系使用SETRELATIONTO命令。返回3.10上機(jī)實(shí)戰(zhàn)1.目的和要求掌握數(shù)據(jù)庫的操作,包括建立表、設(shè)置域完整性、建立索引、表之間的聯(lián)系、設(shè)置參照完整性。2.實(shí)戰(zhàn)內(nèi)容在數(shù)據(jù)庫“學(xué)生管理”中,添加“教師”表,設(shè)置職稱的默認(rèn)值為“講師”。主索引:教師號,普通索引:課程號。與“課程信息”表建立聯(lián)系,設(shè)置參照完整性:刪除為:級聯(lián)。顯示李紅老師的信息。請同學(xué)們上機(jī)練習(xí)。返回★查詢命令★查詢設(shè)計器★創(chuàng)建查詢★視圖★上機(jī)實(shí)戰(zhàn)第4章查詢與視圖★本章小結(jié)返回★視圖的其他操作★SQL語言4.1查詢命令1.順序查詢命令格式:LOCATE[<范圍>]FOR<條件>功能:查找滿足條件的第一條記錄。若找到,記錄指針就指向該記錄;若表中無此記錄,則在狀態(tài)欄中顯示“已到定位記錄末尾?!?,表示記錄指針指向文件結(jié)尾處。說明:范圍缺省表示ALL。查到滿足條件的記錄后,如果要繼續(xù)查找滿足條件的記錄必須用CONTINUE命令。查詢的表可以索引也可以不索引。

2.索引查詢命令索引查詢依賴二分算法,查詢速度比順序查詢快。但它要求表的記錄是有序的,這就需要事先對表進(jìn)行索引或排序。格式:SEEK<表達(dá)式>功能:在已確定的主控索引的表中按索引關(guān)鍵字查找滿足條件的第一條記錄。若找到,記錄指針就指向該記錄;若找不到滿足條件的記錄則在狀態(tài)欄中顯示“沒有找到?!薄7祷?.2查詢設(shè)計器選擇“文件”菜單的“新建”選項(xiàng),彈出“新建”對話框,選擇“查詢”選項(xiàng),單擊“新建”按鈕,彈出“添加表或視圖”對話框,添加查詢的表或視圖。當(dāng)添加多表時,如果表之間沒建立聯(lián)接,系統(tǒng)會提示是否對表進(jìn)行聯(lián)接,單擊“確定”按鈕,會自動建立聯(lián)接。如果數(shù)據(jù)庫中已經(jīng)建立了聯(lián)系,則保留聯(lián)系,單擊“關(guān)閉”按鈕,打開“查詢設(shè)計器”窗口。返回4.2查詢設(shè)計器“查詢設(shè)計器”分為上部窗格和下部窗格兩部分,上部窗格用來顯示查詢或視圖中的表,下部窗格則包含字段等6個選項(xiàng)卡?!安樵冊O(shè)計器”打開后,VFP還在“查詢”菜單、快捷菜單和“查詢設(shè)計器”工具欄中提供相關(guān)的功能。(1)上部窗格上部窗格顯示已打開的表或視圖,每個數(shù)據(jù)表用一個可調(diào)整大小和位置的方框框起來,其中容納了該數(shù)據(jù)表中的字段及其索引信息。將表或視圖添入上部窗格的方法為:選擇“查詢”菜單(或快捷菜單)中的“添加表”選項(xiàng),或選擇“查詢設(shè)計器”工具欄的“添加表”按鈕,彈出“添加表或視圖”對話框,即可在此對話框中選取要添加的表或視圖。若在分屬于兩個表的字段之間出現(xiàn)連線,表示它們之間設(shè)置了聯(lián)接條件。聯(lián)接條件除了可在添加表時設(shè)置外,也可在表間拖動已索引的字段來創(chuàng)建。若要顯示聯(lián)接條件對話框來修改聯(lián)接條件,只要雙擊某條連線,或選擇“查詢設(shè)計器”工具欄的“添加聯(lián)接”按鈕即可。(2)下部窗格下部窗格包含了以下6個選項(xiàng)卡。①“字段(Fields)”選項(xiàng):該選項(xiàng)卡允許指定要在查詢結(jié)果中顯示的字段、函數(shù)或其他表達(dá)式。返回4.2查詢設(shè)計器②“聯(lián)接(Join)”選項(xiàng):如果查詢結(jié)果來自于多個表,可以添加表之間的聯(lián)接或修改已有的聯(lián)接,以控制查詢的結(jié)果。它提供的聯(lián)接類型有:

InnerJoin(內(nèi)聯(lián)接)

LeftOuterJoin(左聯(lián)接)

RightOuterJoin(右聯(lián)接)

FullJoin(完全聯(lián)接)

CrossJoin(交叉聯(lián)接)③“篩選(Filter)”選項(xiàng):用來指定選擇記錄滿足的條件。④“排序依據(jù)(OrderBy)”選項(xiàng):指定查詢記錄的輸出順序。⑤“分組依據(jù)(GroupBy)”選項(xiàng):用來把具有相同字段值的記錄合并為一組,生成查詢結(jié)果的一條記錄。⑥“雜項(xiàng)(Miscellaneous)”選項(xiàng):用來指定是否對重復(fù)記錄進(jìn)行檢索,是否限制返回的記錄數(shù)。可以設(shè)置輸出去向?yàn)榻徊姹?、報表或?biāo)簽。返回4.3創(chuàng)建查詢利用查詢可以從一個或多個表中檢索需要的數(shù)據(jù),而且還可以對查詢結(jié)果進(jìn)行分組和排序。查詢結(jié)果將產(chǎn)生一個獨(dú)立的數(shù)據(jù)文件,擴(kuò)展名為.QPR,但它僅作為輸出使用。也就是說,不能修改查詢結(jié)果,查詢結(jié)果也不影響原來的數(shù)據(jù)文件,這正是查詢與視圖的差別。創(chuàng)建查詢的步驟如下:(1)選擇出現(xiàn)在查詢結(jié)果中的字段;(2)設(shè)置選擇條件來查找符合條件的記錄;(3)設(shè)置排序或分組選項(xiàng)來組織查詢結(jié)果;(4)選擇查詢結(jié)果的輸出類型:表、報表或?yàn)g覽等;(5)運(yùn)行查詢,查看查詢結(jié)果。返回4.3創(chuàng)建查詢1.利用向?qū)?chuàng)建查詢使用“查詢向?qū)А笨梢钥焖賱?chuàng)建查詢。只需按照向?qū)崾镜牟襟E,逐一回答向?qū)У膯栴},就可以正確地建立查詢。在“向?qū)нx取”對話框中,列出各種形式的向?qū)В海?)查詢向?qū)В簞?chuàng)建一個標(biāo)準(zhǔn)的查詢。(2)交叉表向?qū)В阂噪娮訑?shù)據(jù)表的格式顯示數(shù)據(jù)。(3)圖形向?qū)В阂詧D形的方式顯示查詢結(jié)果。2.利用“查詢設(shè)計器”創(chuàng)建查詢

返回4.3創(chuàng)建查詢3.查詢文件的操作(1)修改查詢文件菜單方式。若要修改查詢文件中的內(nèi)容,用戶選擇“文件”菜單的“打開”選項(xiàng),選擇需要修改的查詢文件。命令方式。在命令窗口輸入:MODIFYQUERY<查詢文件名>,打開“查詢設(shè)計器”窗口,然后進(jìn)行修改。(2)查看文件內(nèi)容查詢文件建立并存盤后,在默認(rèn)文件夾內(nèi)會看到增加了一個擴(kuò)展名為.QPR的文本文件,它里面存儲的是查詢對應(yīng)SQL命令。選擇“查詢”菜單的“查看SQL”命令。單擊“查詢設(shè)計器”工具欄的“顯示SQL窗口”命令右擊鼠標(biāo),選擇快捷菜單的“查看SQL”命令,屏幕上就會列出文件的內(nèi)容。返回4.3創(chuàng)建查詢(3)查詢文件的備注可以為查詢文件加上一些注釋,來說明此查詢文件的查詢目的。添加查詢文件的備注的方法是:選擇“查詢”菜單的“備注”選項(xiàng),彈出“備注”對話框,加入需要的說明文字。給查詢文件加上的備注,會作為說明以綠色形式顯示在查詢文件SQL的第一行。(4)運(yùn)行查詢文件①在“查詢設(shè)計器”中運(yùn)行查詢。按Ctrl+Q鍵運(yùn)行查詢;單擊工具欄中的“!”按鈕運(yùn)行查詢;選擇“查詢”菜單的“運(yùn)行查詢”命令運(yùn)行查詢;右擊鼠標(biāo),選擇快捷菜單的“運(yùn)行查詢”命令運(yùn)行查詢。②如果已完成查詢文件的存儲,可采用命令方法運(yùn)行查詢文件:

DO<查詢文件名>,擴(kuò)展名.QPR不能省略。

返回4.3創(chuàng)建查詢(5)查詢?nèi)ハ蛘f明建立查詢文件后,選擇“查詢”菜單的“運(yùn)行結(jié)果”選項(xiàng)所得到的查詢結(jié)果還可以按多種不同的方式輸出。查詢?nèi)ハ虻倪x擇方法為:選擇“查詢”菜單的“查詢?nèi)ハ颉边x項(xiàng),在彈出的“查詢?nèi)ハ颉睂υ捒蛑羞x擇需要輸出的方式。返回4.3創(chuàng)建查詢4.創(chuàng)建交叉表查詢

交叉表查詢是以電子表格形式顯示數(shù)據(jù)的查詢。它對于快速匯總大量數(shù)據(jù)是很有用的??梢岳谩敖徊姹硐?qū)А被颉安樵冊O(shè)計器”來建立交叉表查詢。(1)利用“交叉表向?qū)А苯⒔徊姹聿樵儯?)利用“查詢設(shè)計器”建立交叉表查詢在“查詢設(shè)計器”中選擇三個字段設(shè)計查詢。然后選擇“Miscellaneous”選項(xiàng)中的“Crosstabulate”按鈕,按提示進(jìn)行設(shè)計即可。注意:交叉表查詢只能選擇三個字段:一個用于行標(biāo)題,一個用于列標(biāo)題,一個用于單元格中數(shù)字計算的依據(jù)。返回4.4視圖1.視圖含義視圖是一個虛擬表。這里所說的虛擬,是因?yàn)橐晥D的數(shù)據(jù)是從已有的表(數(shù)據(jù)庫表和自由表)或其它視圖中選取出來的。視圖一經(jīng)定義,就成為數(shù)據(jù)庫中的一個組成部分,可以像數(shù)據(jù)庫表一樣讓用戶查詢數(shù)據(jù)。查詢與視圖之間的區(qū)別:(1)查詢的結(jié)果可以存儲成多種數(shù)據(jù)格式,如圖表、表、報表等。(2)查詢的結(jié)果僅供輸出查看,不具備被數(shù)據(jù)回存的性質(zhì)。而視圖中數(shù)據(jù)則可以修改,并且能回存到源數(shù)據(jù)表中。所以,在“視圖設(shè)計器”中多了一個“更新條件”選項(xiàng)卡。(3)視圖定義于數(shù)據(jù)庫中,其文件也僅存在于數(shù)據(jù)庫中。視圖并不真正含有數(shù)據(jù),當(dāng)關(guān)閉數(shù)據(jù)庫后視圖不會包含數(shù)據(jù);查詢是可以獨(dú)立于數(shù)據(jù)庫存在的.QPR文件。返回4.4視圖2.本地視圖的創(chuàng)建

VFP中,可以使用視圖向?qū)?、視圖設(shè)計器和SQL命令創(chuàng)建視圖?!耙晥D設(shè)計器”中有七組選項(xiàng),其中字段、連接、篩選、排序依據(jù)、分組依據(jù)、雜項(xiàng)與“查詢設(shè)計器”相同,這里就不再多說。下面將著重說明更新條件該選項(xiàng)用來設(shè)定視圖中哪些字段可以修改。①“字段名”區(qū)域中列出了此視圖文件中使用的字段,在字段名前有兩個符號。

鑰匙

圖形表示字段為關(guān)鍵字字段。

若要設(shè)定某字段為關(guān)鍵字字段,可在此字段前單擊使其出現(xiàn)√符號,而再單擊一下則可取消設(shè)定。在視圖文件中修改某項(xiàng)數(shù)據(jù)時,VFP會根據(jù)關(guān)鍵字字段修改原始數(shù)據(jù),因此若要通過視圖文件修改原數(shù)據(jù)表,就必須在視圖文件中將其設(shè)定為關(guān)鍵字字段。而且設(shè)為關(guān)鍵字字段的數(shù)據(jù)必須是惟一的,若有重復(fù)數(shù)據(jù)則必須為一個源數(shù)據(jù)文件選取多個關(guān)鍵字字段來避免重復(fù)。鉛筆圖形表示字段為可修改的字段。若選取某字段為可修改字段,則視圖數(shù)據(jù)修改后可自動傳回源數(shù)據(jù)表中。注意:必須先為數(shù)據(jù)表設(shè)定關(guān)鍵字字段,才能選取可修改字段。返回4.4視圖②“表”列表框可用來選取視圖文件中要更改的數(shù)據(jù)表,若僅選取其中一個數(shù)據(jù)表,則中間的字段名將出現(xiàn)此數(shù)據(jù)表的字段,這里選“全部表”。③“重置關(guān)鍵字”按鈕用來設(shè)定數(shù)據(jù)表的關(guān)鍵字字段和可修改字段為未選定狀態(tài),以便重新設(shè)定。④“全部更新”按鈕用來將關(guān)鍵字字段以外的所有字段設(shè)定為可更新的字段。⑤“發(fā)送SQL更新”用來設(shè)定是否用視圖文件中修改的數(shù)據(jù)更改源數(shù)據(jù)表中的對應(yīng)數(shù)據(jù)。⑥“SQLWHERE子句”用來設(shè)定如何檢測修改時發(fā)生的沖突。當(dāng)視圖文件同時由多個用戶使用時,若在修改一個數(shù)據(jù)的同時,該數(shù)據(jù)已經(jīng)被另外一個用戶改變過,此時將發(fā)生沖突問題,在此就是設(shè)定對此類沖突的檢測。⑦“使用更新”用來設(shè)定使用修改的方法?!癝QLDELETEthenINSERT”表示修改源數(shù)據(jù)表時,先刪除要修改的數(shù)據(jù),再插入新的數(shù)據(jù)?!癝QLUPDATE”表示利用SQL的修改記錄功能,直接將此數(shù)據(jù)修改。返回4.5視圖的其他操作(1)打開視圖打開視圖的命令格式為:

USE<視圖名>

只有先打開數(shù)據(jù)庫,才能進(jìn)行打開視圖操作,此操作不打開“視圖設(shè)計器”。(2)修改視圖打開“視圖設(shè)計器”窗口修改視圖的命令格式是:

MODIFYVIEW<視圖名>(3)刪除視圖刪除視圖的命令格式為:

DELETEVIEW<視圖名>(4)參數(shù)化視圖視圖查詢記錄滿足的條件是在“視圖設(shè)計器”的“篩選”選項(xiàng)卡中一次性設(shè)置好,然后進(jìn)行查詢得到滿足條件的記錄。查詢滿足不同條件的記錄,則必須重新打開“視圖設(shè)計器”窗口,在“篩選”選項(xiàng)卡中重新進(jìn)行設(shè)置。為了克服上述不足,VFP提供了參數(shù)化視圖。參考例題4-6。返回4.6SQL語言1.SQL概述

SQL是英文StructuredQueryLanguage的縮寫,已被國際標(biāo)準(zhǔn)化組織(ISO)認(rèn)定為關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言,它的核心是數(shù)據(jù)查詢。所有的關(guān)系數(shù)據(jù)庫管理系統(tǒng)都支持SQL。SQL主要具有以下特點(diǎn):(1)SQL是一種高度非過程化的語言,它無需一步一步地告訴計算機(jī)“如何去做”,而只需要告訴計算機(jī)“做什么”。(2)SQL是一種一體化的語言,它包括了數(shù)據(jù)定義、數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)控制等方面的功能,它可以完成對數(shù)據(jù)庫的全部操作。(3)SQL非常簡潔,雖然只有為數(shù)不多的幾條命令(見表4-1),但SQL的功能非常強(qiáng)大。另外,由于SQL非常接近英文自然語言,所以容易學(xué)習(xí)和使用;(4)SQL既可以直接以命令方式交互使用,也可以嵌入程序設(shè)計語言中以程序方式使用。無論SQL以何種方式使用,SQL的語法基本是一致的。返回4.6SQL語言2.數(shù)據(jù)定義(1)表的定義格式:CREATETABLE<表名>(字段名類型(寬度,小數(shù),…))功能:創(chuàng)建表結(jié)構(gòu)。(2)修改表結(jié)構(gòu)格式1:ALTERTABLE<表名>ADD<字段名1><類型>[(長度[,小數(shù)位數(shù)])]格式2:ALTERTABLE<

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論