Visual FoxPro程序設計實用教程_第1頁
Visual FoxPro程序設計實用教程_第2頁
Visual FoxPro程序設計實用教程_第3頁
Visual FoxPro程序設計實用教程_第4頁
Visual FoxPro程序設計實用教程_第5頁
已閱讀5頁,還剩184頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

DBMS的主要功能如下:①定義功能。②數據操作功能。③數據庫的運行管理。④數據庫的建立和維護功能。

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

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

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

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

1995年微軟公司推出了VisualFoxPro3.0版,VisualFoxPro3.0是一個可運行于Windows3.x、Windows95和WindowsNT環境的數據庫開發系統。與FoxPro2.5、FoxPro2.6相比,它是一個革命性的軟件產品,引進了可視化編程和面向對象的概念。

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

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

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

VFP可以使用“選項”對話框或SET命令進行配置,還可以通過配置文件進行設置。選擇“工具”菜單的“選項”選項,彈出“選項”對話框。1.4VFP可視化設計工具返回1.向導向導是一種快捷設計工具。它通過一組對話框依次與用戶對話,引導用戶分步完成VFP的某項任務,例如創建表單、表、創建查詢和創建報表等。

VFP有20余種向導工具。從創建表、視圖、查詢等數據文件,到建立報表、標簽、圖表、表單等VFP文檔,直至創建VFP的應用程序,SQL服務器上的數據庫等操作,均可使用相應的向導工具來完成。

啟動向導有以下四種途徑。(1)在“項目管理器”中選擇要創建的文件類型,然后單擊“新建”按鈕。打開相應的新建對話框,單擊相應的向導就可以啟動相應的向導。(2)選擇“文件”菜單的“新建”選項,或者單擊工具欄的“新建”按鈕,打開“新建”對話框,選擇待創建文件的類型。然后單擊“向導”按鈕就可以啟動相應的向導。(3)選擇“工具”菜單的“向導”選項,也可以直接訪問大多數的向導。(4)單擊工具欄的“向導”按鈕可以直接啟動相應的向導。1.4VFP可視化設計工具返回2.設計器

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

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

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

hh:mm:ssAM|PM,常用的日期型常量的系統輸入格式為:{^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位小數,并且沒有科學計數法表示。例如,$124.56是一個貨幣型常量。2.2常量與變量返回2.變量

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

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

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

3.日期和時間處理函數

數據類型轉換函數測試函數

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

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

NOUPDATE指定以只讀方式打開數據庫。

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

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

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

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

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

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

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

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

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

TAG<索引名>表示在復合索引文件中建立一個指定的索引標識。

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

ASCENDING|DESCENDING表示索引關鍵字以遞增或遞減的方式建立索引,默認為升序。

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

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

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

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

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

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

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

InnerJoin(內聯接)

LeftOuterJoin(左聯接)

RightOuterJoin(右聯接)

FullJoin(完全聯接)

CrossJoin(交叉聯接)③“篩選(Filter)”選項:用來指定選擇記錄滿足的條件。④“排序依據(OrderBy)”選項:指定查詢記錄的輸出順序。⑤“分組依據(GroupBy)”選項:用來把具有相同字段值的記錄合并為一組,生成查詢結果的一條記錄。⑥“雜項(Miscellaneous)”選項:用來指定是否對重復記錄進行檢索,是否限制返回的記錄數。可以設置輸出去向為交叉表、報表或標簽。返回4.3創建查詢利用查詢可以從一個或多個表中檢索需要的數據,而且還可以對查詢結果進行分組和排序。查詢結果將產生一個獨立的數據文件,擴展名為.QPR,但它僅作為輸出使用。也就是說,不能修改查詢結果,查詢結果也不影響原來的數據文件,這正是查詢與視圖的差別。創建查詢的步驟如下:(1)選擇出現在查詢結果中的字段;(2)設置選擇條件來查找符合條件的記錄;(3)設置排序或分組選項來組織查詢結果;(4)選擇查詢結果的輸出類型:表、報表或瀏覽等;(5)運行查詢,查看查詢結果。返回4.3創建查詢1.利用向導創建查詢使用“查詢向導”可以快速創建查詢。只需按照向導提示的步驟,逐一回答向導的問題,就可以正確地建立查詢。在“向導選取”對話框中,列出各種形式的向導:(1)查詢向導:創建一個標準的查詢。(2)交叉表向導:以電子數據表的格式顯示數據。(3)圖形向導:以圖形的方式顯示查詢結果。2.利用“查詢設計器”創建查詢

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

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

返回4.3創建查詢(5)查詢去向說明建立查詢文件后,選擇“查詢”菜單的“運行結果”選項所得到的查詢結果還可以按多種不同的方式輸出。查詢去向的選擇方法為:選擇“查詢”菜單的“查詢去向”選項,在彈出的“查詢去向”對話框中選擇需要輸出的方式。返回4.3創建查詢4.創建交叉表查詢

交叉表查詢是以電子表格形式顯示數據的查詢。它對于快速匯總大量數據是很有用的。可以利用“交叉表向導”或“查詢設計器”來建立交叉表查詢。(1)利用“交叉表向導”建立交叉表查詢(2)利用“查詢設計器”建立交叉表查詢在“查詢設計器”中選擇三個字段設計查詢。然后選擇“Miscellaneous”選項中的“Crosstabulate”按鈕,按提示進行設計即可。注意:交叉表查詢只能選擇三個字段:一個用于行標題,一個用于列標題,一個用于單元格中數字計算的依據。返回4.4視圖1.視圖含義視圖是一個虛擬表。這里所說的虛擬,是因為視圖的數據是從已有的表(數據庫表和自由表)或其它視圖中選取出來的。視圖一經定義,就成為數據庫中的一個組成部分,可以像數據庫表一樣讓用戶查詢數據。查詢與視圖之間的區別:(1)查詢的結果可以存儲成多種數據格式,如圖表、表、報表等。(2)查詢的結果僅供輸出查看,不具備被數據回存的性質。而視圖中數據則可以修改,并且能回存到源數據表中。所以,在“視圖設計器”中多了一個“更新條件”選項卡。(3)視圖定義于數據庫中,其文件也僅存在于數據庫中。視圖并不真正含有數據,當關閉數據庫后視圖不會包含數據;查詢是可以獨立于數據庫存在的.QPR文件。返回4.4視圖2.本地視圖的創建

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

鑰匙

圖形表示字段為關鍵字字段。

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

USE<視圖名>

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

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

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

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

溫馨提示

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

評論

0/150

提交評論