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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

常量就是在程序運行期間其值不能被改變的量。在VFP中,常量可以是一個數(shù)據項,也可以是在程序或命令中直接引用的實際值。常量類型有如下6種。(1)字符型常量是由ASCII表中的可打印字符(英文字母、數(shù)字、標點符號等)和漢字組成的由定界符括起來的串。字符型定界符有三種:(“”)、(‘’)或([])。(2)數(shù)值型常量由數(shù)字、小數(shù)點和正負號構成。例如,-123.89、80、+42.37等都是合法的數(shù)值型常量。為了表示很大或很小的數(shù)值型常量,可以使用科學計數(shù)法表示。例如,6.23E-12表示6.23×10-12。(3)邏輯型常量由代表真或假的符號及定界符“..”構成。邏輯真的表示有:.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ù),并且沒有科學計數(shù)法表示。例如,$124.56是一個貨幣型常量。2.2常量與變量返回2.變量

所謂變量就是在程序運行期間其值可以被改變的量。每個變量都有一個名稱來標識,稱為變量名。變量名最長可包含254個字符,是由字母、數(shù)字和下劃線組成,并由字母、下劃線開頭。其中,字母不分大小寫。在給變量起名時,應盡量做到見名知義。在VFP中,有兩類變量,分別為內存變量和字段變量。如果內存變量與字段變量重名,則字段變量優(yōu)先識別。若想改變這種優(yōu)先關系,可在內存變量名前加識別前綴“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.數(shù)組數(shù)組是一組有序內存變量的集合。其中每一個內存變量是這個數(shù)組的一個元素。每一個數(shù)組元素在內存中獨占一個內存單元。為了區(qū)分不同的數(shù)組元素,每一個數(shù)組元素都是通過數(shù)組名和下標訪問的。數(shù)組必須先定義后使用。(1)數(shù)據的定義格式:DIMENSION<數(shù)組名1>(下標1[,下標2])[,<數(shù)組名2>(下標1[,下標2])],…功能:定義一維或二維數(shù)組及其下標的上界。(2)數(shù)組元素賦值數(shù)組一旦定義,它的初始值為邏輯值.F.,下標從1開始,在VFP系統(tǒng)中,同一個數(shù)組元素在不同的時刻可以存放不同類型的數(shù)據,在同一數(shù)組中,每個元素的值可以是不同的數(shù)據類型,它的類型由它接受的數(shù)據的類型所決定。數(shù)組必須先定義后使用。例如,給數(shù)組A,B元素賦值,A(3)=100,B(2,1)=.T.,或B(4)=.T.等。未經賦值的數(shù)組元素,系統(tǒng)將自動賦與邏輯假值(.F.)。2.3表達式返回將常量、變量和函數(shù)用運算符連接起來的式子稱為表達式。根據運算對象的數(shù)據類型不同,表達式可以分為算術表達式、字符表達式、日期和日期時間表達式、關系表達式和邏輯表達式等。1.算術表達式算術表達式是由算術運算符將數(shù)值型常量、變量和函數(shù)連接起來的式子。算術表達式的結果為數(shù)值型常數(shù)。算術運算符有**或^(乘方)、*(乘)、/(除)、%(取余)、+(加)、-(減或取負)。其優(yōu)先級由高到低的排列順序為:**,^、*,/,%、+,-。2.字符表達式字符表達式可由字符運算符連接的字符型常量、變量和函數(shù)組成。字符表達式的結果為字符型常數(shù)或邏輯型常數(shù)。字符運算符有+(連接)、-(連接)和$(包含)。3.日期和日期時間表達式日期和日期時間表達式是指包含日期或日期時間型數(shù)據和日期運算符的表達式。日期和日期時間表達式的結果是日期時間常量或數(shù)值型常數(shù)。運算符包括“+”和“-”兩種。2.3表達式返回4.關系表達式關系表達式是由關系運算符將字符表達式、算術表達式和日期時間連接起來的式子。關系運算符兩端必須為可比較的同類型的表達式,關系表達式的結果為邏輯常量。關系運算符包括:<(小于)、>(大于)、=(等于)、<=(小于等于)、>=(大于等于)、==(恒等于)和<>、#、!=(不等于)。5.邏輯表達式邏輯表達式是由邏輯運算符將邏輯型常量、變量、函數(shù)和關系表達式連接起來的式子。邏輯表達式的結果為邏輯常數(shù)。邏輯運算符包括:.NOT.(邏輯非)、.AND.(邏輯與)和.OR.(邏輯或)。優(yōu)先級由高到底的順序為.NOT.、.AND.、.OR.。6.表達式生成器

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

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

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

數(shù)據類型轉換函數(shù)測試函數(shù)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

InnerJoin(內聯(lián)接)

LeftOuterJoin(左聯(lián)接)

RightOuterJoin(右聯(lián)接)

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

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

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

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

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

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

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

鑰匙

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

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

USE<視圖名>

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

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

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

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

溫馨提示

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

評論

0/150

提交評論