VFP二級培訓(xùn)教程_第1頁
VFP二級培訓(xùn)教程_第2頁
VFP二級培訓(xùn)教程_第3頁
VFP二級培訓(xùn)教程_第4頁
VFP二級培訓(xùn)教程_第5頁
已閱讀5頁,還剩138頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

VFP二級培訓(xùn)教程

VisualFoxPro6.0

數(shù)據(jù)庫治理系統(tǒng)

趙兵

目錄

開篇錯誤!未定義書簽。

第一章差不多概念錯誤味定義書簽。

第二章走進(jìn)VFP3

第三章VFP的數(shù)據(jù)形式、類型及運(yùn)算12

第四章數(shù)據(jù)庫及其操作32

第五章SQL語言58

第六章查詢與視圖74

第七章程序設(shè)計基礎(chǔ)80

第八章表單設(shè)計與應(yīng)用97

第九章菜單設(shè)計與應(yīng)用125

第十章報表設(shè)計130

第十一章數(shù)據(jù)庫應(yīng)用系統(tǒng)的開發(fā)136

第一章數(shù)據(jù)庫系統(tǒng)基礎(chǔ)知識

1.1數(shù)據(jù)庫系統(tǒng)概述

1.1數(shù)據(jù)庫基礎(chǔ)知識

1數(shù)據(jù)與數(shù)據(jù)處理

數(shù)據(jù)是指儲備在某一種媒體上能夠識別的物理符號。

數(shù)據(jù)處理的中心咨詢題是數(shù)據(jù)治理。

2運(yùn)算機(jī)數(shù)據(jù)治理

(1)人工治理。

(2)文件系統(tǒng)。

(3)數(shù)據(jù)庫系統(tǒng)。

(4)分布式數(shù)據(jù)庫系統(tǒng)。

(5)面向?qū)ο髷?shù)據(jù)庫系統(tǒng)。

3數(shù)據(jù)庫治理系統(tǒng)

為數(shù)據(jù)庫的建立、使用和愛護(hù)而配置的軟件稱為數(shù)據(jù)

庫治理系統(tǒng)DBMS(DataBaseManagementSystem)□

2數(shù)據(jù)庫系統(tǒng)

1有關(guān)數(shù)據(jù)庫的概念

(1)數(shù)據(jù)庫(DataBase):儲備在運(yùn)算機(jī)儲備設(shè)備上、結(jié)

構(gòu)化的有關(guān)數(shù)據(jù)的集合。

(2)數(shù)據(jù)庫應(yīng)用系統(tǒng)(DBAS):是由系統(tǒng)開發(fā)人員利用

數(shù)據(jù)庫系統(tǒng)資源開發(fā)出來的,面向某一類實(shí)際應(yīng)用的應(yīng)用軟件

系統(tǒng)。

(3)數(shù)據(jù)庫治理系統(tǒng)(DBMS):對數(shù)據(jù)實(shí)行專門治理,

提供安全性和完整性等統(tǒng)一機(jī)制,能夠?qū)?shù)據(jù)庫的建立、使用

和愛護(hù)進(jìn)行治理。

(4)數(shù)據(jù)庫系統(tǒng)(DBS):是指引進(jìn)數(shù)據(jù)庫技術(shù)后的運(yùn)算

機(jī)系統(tǒng),實(shí)現(xiàn)有組織地、動態(tài)地儲備大量有關(guān)數(shù)據(jù),提供數(shù)據(jù)

處理和信息資源共享的便利手段。數(shù)據(jù)庫系統(tǒng)由硬件系統(tǒng)、數(shù)

據(jù)庫、數(shù)據(jù)庫治理系統(tǒng)及有關(guān)軟件、數(shù)據(jù)庫治理員和用戶等部

分組成。

2數(shù)據(jù)庫系統(tǒng)的特點(diǎn)

(1)實(shí)現(xiàn)數(shù)據(jù)共享,減少數(shù)據(jù)冗余。

(2)采納特定的數(shù)據(jù)模型。

(3)具有較高的數(shù)據(jù)獨(dú)立性。

(4)具有統(tǒng)一的數(shù)據(jù)操縱功能。

3數(shù)據(jù)模型

1實(shí)體的描述

⑴實(shí)體。

(2)實(shí)體的屬性。

(3)實(shí)體集和實(shí)體型。

2實(shí)體間聯(lián)系及聯(lián)系的種類

(1)一對一聯(lián)系。

(2)一對多聯(lián)系。

(3)多對多聯(lián)系。

3數(shù)據(jù)模型簡介

為了反映事物本身及事物之間的各種聯(lián)系,數(shù)據(jù)庫中

的數(shù)據(jù)必須有一定的結(jié)構(gòu),這種結(jié)構(gòu)用數(shù)據(jù)模型來表示,通常

有以下3種。

(1)層次數(shù)據(jù)模型。

(2)網(wǎng)狀數(shù)據(jù)模型。

(3)關(guān)系數(shù)據(jù)模型。

小提示:

數(shù)據(jù)庫DB、數(shù)據(jù)庫系統(tǒng)DBS和數(shù)據(jù)庫治理系統(tǒng)DB

MS之間的關(guān)系是DBS包括DB和DBMS。

1.2關(guān)系模型

關(guān)系模型的用戶界面專門簡單,一個關(guān)系的邏輯結(jié)構(gòu)

確實(shí)是一張二維表。這種用二維表的形式表示實(shí)體和實(shí)體間聯(lián)

系的數(shù)據(jù)模型稱為關(guān)系數(shù)據(jù)模型。

1關(guān)系術(shù)語

(1)關(guān)系:一個關(guān)系確實(shí)是一張二維表,每個關(guān)系有一

個關(guān)系名。在VisualFoxPro中一個關(guān)系儲備為一個文件,擴(kuò)

展名為DBF,稱為“表二

對關(guān)系的描述稱為關(guān)系模式,一個關(guān)系模式對應(yīng)一個

關(guān)系的結(jié)構(gòu),格式為:

關(guān)系名(屬性名1,屬性名2,…,屬性

名n)

(2)元組:在一個二維表中,水平方向的行稱為元組,

每一行為一個元組。

(3)屬性:將二維表中垂直方向的列稱為屬性,每一列

都有一個屬性名。

(4)域:屬性的取值范疇,即不同元組對同一個屬性的

取值所限定的范疇。

(5)關(guān)鍵字:屬性或?qū)傩缘慕M合,其值能夠唯獨(dú)地標(biāo)識

一個元組。在VisualFoxPro中,主關(guān)鍵字和候選關(guān)鍵字就起

唯獨(dú)標(biāo)志一個元組的作用。

(6)外部關(guān)鍵字:如果表中一個字段不是本表的主關(guān)鍵

字或候選關(guān)鍵字,而是另一個表的主關(guān)鍵字或候選關(guān)鍵字,那

么那個字段(屬性)就稱為外部關(guān)鍵字。

2關(guān)系的特點(diǎn)

(1)關(guān)系必須規(guī)范化。

(2)在同一個關(guān)系中不能顯現(xiàn)同名屬性,VisualFoxPr

o中表示為字段名的不同。

(3)關(guān)系中不承諾有完全相同的元組,即冗余。

(4)在一個關(guān)系中元組的次序無關(guān)緊要。

(5)在一個關(guān)系中列的次序無關(guān)緊要。

5關(guān)系運(yùn)算

對關(guān)系數(shù)據(jù)庫進(jìn)行查詢時,需要找到用戶感愛好的數(shù)

據(jù),這就需要對關(guān)系進(jìn)行一定的關(guān)系運(yùn)算,關(guān)系的差不多運(yùn)算

有兩類:傳統(tǒng)的集合運(yùn)算和專門的關(guān)系運(yùn)算。

1傳統(tǒng)的集合運(yùn)算

(1)并:兩個相同結(jié)構(gòu)關(guān)系的并是由屬于這兩個關(guān)系的

全部元組組成的集合。

(2)差:兩個相同結(jié)構(gòu)關(guān)系的差是由屬于前一個關(guān)系的

元組而不屬于后一個關(guān)系的元組組成的集合。例如,關(guān)系R和

S的差結(jié)果是由屬于R但不屬于S的元組組成的集合。

(3)交:兩個相同結(jié)構(gòu)關(guān)系的交是由屬于這兩個關(guān)系所

共有的元組組成的集合。

2專門的關(guān)系運(yùn)算

(1)選擇:從關(guān)系中找出滿足給定條件的元組的操作。

(2)投影:從關(guān)系模式中指定若干個屬性組成新的關(guān)

系:

(3)連接:關(guān)系的橫向結(jié)合,將兩個關(guān)系模式拼接成一

個更寬的關(guān)系模式。

(4)自然連接:在連接運(yùn)算中,按照字段值對應(yīng)相等為

條件進(jìn)行的連接操作稱為等值連接。自然連接是去掉重復(fù)屬性

的等值連接。

小提示:

選擇和投影運(yùn)算的操作對象只是一個表,相當(dāng)于對一

個二維表進(jìn)行切割。連接運(yùn)算則需要把兩個表作為操作對象。

如果兩個表以上進(jìn)行連接,應(yīng)當(dāng)兩兩進(jìn)行連接。

1.3數(shù)據(jù)庫設(shè)計基礎(chǔ)

6數(shù)據(jù)庫設(shè)計步驟

1設(shè)計原則

(1)關(guān)系數(shù)據(jù)庫的設(shè)計應(yīng)遵從概念單一化“一事一地”

的原則。

(2)幸免在表之間顯現(xiàn)重復(fù)字段。

(3)表中的字段必須是原始數(shù)據(jù)和差不多數(shù)據(jù)元素。

(4)用外部關(guān)鍵字保證有關(guān)聯(lián)的表之間的聯(lián)系。

2設(shè)計步驟

利用VisualFoxPro來開發(fā)數(shù)據(jù)庫應(yīng)用系統(tǒng),能夠按

照以下步驟來設(shè)計。

(1)需求分析。

(2)確定需求表C

(3)確定需求字段。

(4)確定聯(lián)系。

(5)設(shè)計精確

1.4VisualFoxPro系統(tǒng)概述

7VisualFoxPro的特點(diǎn)

(1)增強(qiáng)項(xiàng)目與數(shù)據(jù)庫治理。

(2)提升應(yīng)用程序開發(fā)的生產(chǎn)率。

(3)互操作性與支持Internet。

(4)充分利用已有數(shù)據(jù)

第二章走進(jìn)VFP

一、VFP簡介

1、VFP的認(rèn)識

VFP是一個適合小型數(shù)據(jù)庫治理的數(shù)據(jù)庫治理系統(tǒng)。

2、VFP之前統(tǒng)領(lǐng)小型數(shù)據(jù)庫治理領(lǐng)域的數(shù)據(jù)庫治理系統(tǒng)是

dBASE,其要緊版本:dBASEH-dBASEHI-dBASEIIIPlu

s-dBASEIV

3、VFP的進(jìn)化軌跡

FoxBase2.0/2.1-FoxPro2.0-*FoxPro2.5-FoxPro2.6-

VisualFoxPro3.0-*VisualFoxPro5.0-*VisualFoxPro6.0

我們學(xué)習(xí)的是VisualFoxPro6.0。

4、VisualFoxPro(包括3.0、5.0、6.0版本)的差不多特

點(diǎn):

?以可視化方式開發(fā)軟件界面。

?采納面向?qū)ο蟮能浖_發(fā)技術(shù)。

二、接近VFP

1、VFP的安裝(略)

2、VFP的啟動

3、VFP差不多界面的認(rèn)識

?菜單欄

?工具欄

?狀態(tài)欄

?主屏幕:顯示交互操作結(jié)果。

?命令窗口

作用:供輸入操作命令的場所。一個命令輸完后按下回車

鍵,VFP才會執(zhí)行相應(yīng)的命令。

命令窗口的關(guān)閉與顯示

快捷鍵操作一Ctrl+F4:關(guān)閉;Ctrl+F2:顯示。

4、VFP的差不多命令

,clear:清除主屏幕上的顯示。

??:在主屏幕當(dāng)前行的下一行顯示其后要顯示的內(nèi)容。

???:在主屏幕當(dāng)前行內(nèi)容之后顯示其后要顯示的內(nèi)容。

講明:差不多使用過的命令能夠再用。

5、VFP的退出

鼠標(biāo)操作:見演示。

鍵盤操作:

?快捷鍵:Alt+F4o

?退出命令:QUITo

三、設(shè)置VFP

1、設(shè)置VFP是指對VFP的工作環(huán)境進(jìn)行一些設(shè)置,如日

期的格式等。這些設(shè)置能夠通過相應(yīng)命令進(jìn)行,也可在“選項(xiàng)”

對話框中進(jìn)行。

2、“選項(xiàng)”對話框設(shè)置VFP。

1)狀態(tài)欄的設(shè)置

2)日期格式設(shè)置

3)默認(rèn)名目(工作名目)設(shè)置

?了解默認(rèn)名目(工作名目)

?sys(5)+sys(2OO3)

sys(5)一默認(rèn)名目中的盤;sys(2003)一默認(rèn)名目中的

路徑。

?設(shè)置

,意義(doformgzml.scx)

4)使設(shè)置長期有效

四、學(xué)習(xí)VFP

1、VFP提供的關(guān)心系統(tǒng)是我們學(xué)習(xí)VFP的一本專門好教

科書,建議同學(xué)們經(jīng)常使用。

2、使用關(guān)心系統(tǒng)而不要依靠關(guān)心系統(tǒng),如此不利于我們通

過二級考試。

第三章VFP的數(shù)據(jù)形式、類型及運(yùn)算

一、常量

1、常量是表示一個確定值的數(shù)據(jù)。常量有數(shù)值型、貨幣型、

字符型、邏輯型、日期型、日期時刻型6種。

2、數(shù)值型常量

?數(shù)值型常量表示的是一個具體的數(shù),因此,數(shù)值型常量

也稱為常數(shù)。

?數(shù)值型常量的書寫方法:

(1)日常表示法

如12、+56、-64.8等。

(2)科學(xué)表示法

1.6E12表示1.6X1012;

1.6E-12表示1.6X10-12;

-L6E12表示-1.6X1012;

-1.6E-12表示-1.6X10-12。

3、貨幣型常量

?貨幣型常量用來表示一個具體的貨幣值。貨幣型常量的

小數(shù)位數(shù)采納4位。

?貨幣型常量的書寫方法:

如$12,$12.68,-$12.68等。

4、字符型常量

?字符型常量用來表示一串確定的字符,因此,字符型常

量也稱為字符串。

?字符型常量的書寫方法:

'abed'、"abed",[abed]均表示字符串a(chǎn)bed。

?講明

(1)表示字符型常量前后的,、"或口稱為字符型常量的定

界符,它表示字符串的開始和終止,不是字符串的組成內(nèi)容。

字符串的前后定界符必須一致,如,abed"等是錯誤的。

(2)當(dāng)字符串中包含,、"或口時,必須使用其它的定界符,

如字符串a(chǎn)b'ed應(yīng)表示為"ab,cd"或[ab'ed]。

(3)字符型數(shù)據(jù)中的字母大小寫是區(qū)分的,例如"abed"和

"ABCD"是不同的兩個字符串。順便講一下,命令中的字母大小

寫是不區(qū)分的,如Clear、cleAr、CLEAR等均表示清除主屏幕

顯示命令。

(4)兩個單引號(”)、兩個雙引號("")、一對中括號([])

均表示沒有組成內(nèi)容的字符串,如此的字符串稱為空串。

(5)組成字符串的內(nèi)容也能夠有空格,如"abcd"、"a

bed\""等差不多上正確的字符串。

(6)注意定界符應(yīng)是英文符號,不能是中文符號。順便講

一下中英文符號咨詢題:除了字符串中能夠隨意使用符號以外,

其它場合均只能使用英文符號!

5、邏輯型常量

?邏輯型常量用來表示一確定的邏輯值。邏輯值只有真值

和假值兩個。

?邏輯型常量的書寫方法:

真值:.T.、.t.、.Y.、.y.;

假值:.F.、.f.、.N.、.n.。

6、日期型常量

?日期型常量用來表示一確定的日期。

?日期型常量的書寫方法:

2004年7月14日可表示為:{人2004-7-14}、{人2004.7.14}、

{人2004/7/14}、{人2004714}。

7、日期時刻型常量

?日期時刻型常量用來表示一確定的日期和時刻。

?日期時刻型常量的書寫方法:

格式:{人日期,時刻}

其中,日期的書寫格式同日期型常量,時刻的書寫格式有:

8:10:30、18:15:25、8:10:30A,8:10:30AM,8:10:30P,8:10:30P

Mo

二、變量

1、變量是表示可變值的數(shù)據(jù)。變量用一名稱來表示,該名

稱稱為變量名。變量名一樣以字母或漢字開始,其后能夠是字

母、漢字、數(shù)字及某些符號(如下劃線)。

摸索:a,aa,bl2,c_l,alB2,2d4,同學(xué)們,“同學(xué)們”。

2、變量的值能夠通過賦值命令獲得:

a=12表示為變量a賦一個值12;

store34.2toa,b,c表示將值34.2分別賦給變量a,b,

Co

3、賦值命令的格式:

變量=表達(dá)式

store表達(dá)式to變量1,變量2,

4、變量的類型由其值的類型決定。

5、變量的另一種使用形式一一數(shù)組

?一般變量是一個變量對應(yīng)一個值,而數(shù)組變量卻一個變

量對應(yīng)多個值。數(shù)組變量中的每一個值稱為數(shù)組元素。

?數(shù)組變量的取名同一般變量,數(shù)組元素用數(shù)組變量名加

下標(biāo)的方法來表示,如a(1)、a(2)、b(1,1)、b(1,2)

等。也確實(shí)是講,數(shù)組用下標(biāo)來區(qū)分其元素。

?如果一個數(shù)組,其元素只用一個下標(biāo),則該數(shù)組稱為一

維數(shù)組;如果一個數(shù)組,其元素使用兩個下標(biāo),則該數(shù)組稱為

二維數(shù)組。

?數(shù)組變量的使用與一般變量的使用有所不同:數(shù)組變量

必須先定義,然后才能使用。

?定義一維數(shù)組變量:

dimension/declare數(shù)組名(下標(biāo)上限)

下標(biāo)上限指下標(biāo)的最大值。下標(biāo)下限指下標(biāo)的最小取值。

VFP中,下標(biāo)的下限規(guī)定為1,因此無須在定義數(shù)組時指定。

?定義二維數(shù)組變量:

dimension/declare數(shù)組名(第一個下標(biāo)上限,第二個下標(biāo)

上限)

?數(shù)組變量定義后,如果未對其賦值,則各元素為假值。

?給數(shù)組變量賦一個值時,其元素均得到該值,也能夠?yàn)?/p>

其元素分別賦以不同的值。

?數(shù)組變量不直截了當(dāng)參加運(yùn)算,其元素能夠。

6、和變量有關(guān)的常用命令

,listmemory命令

格式:p60o

功能:顯示變量信息。

講明:

。書中命令格式的書寫約定:中括號部分表示選項(xiàng);尖括

號部分內(nèi)容(漢字部分)要按照要求提供;豎杠(斜杠)兩邊

內(nèi)容表示只能選擇其一。

。顯示的變量信息不僅有我們自己使用的變量,而且包括

VFP本身所固有的變量(這些變量稱為系統(tǒng)變量,系統(tǒng)變量名

均以下劃線開始)。

O"like〈通配名〉”表示只顯示和通配名一致的變量信息。

通配名是指包含?或*的名稱,其中,?表示該位置能夠是任意

的某個符號,*表示該位置能夠是任意多的符號。例如a?c表示

如此的一些名稱:第一位是a,第二為任意,第三位是c;a*c

表示如此的一些名稱:第一位是a,最后一位是c,中間內(nèi)容任

思、O

O“toprinter"表示將變量信息同時送打印機(jī)打印;“tof

ile〈文件〉”表示將變量信息同時存入到指定的文件中。

。當(dāng)顯示的變量信息超出一個屏幕時,前面的信息會滾出

屏幕。

OVFP命令中規(guī)定使用的英文單詞稱為保留字。使用時,

保留字能夠只寫出前面部分,但至少要有4位。

,displaymemory命令

格式:p60o

功能:顯示變量信息。

講明:與listmemory命令的唯獨(dú)區(qū)別在于:當(dāng)顯示的變量

信息超出一個屏幕時,該命令能做到一個屏幕一個屏幕地顯示。

,clearmemory命令

格式:clearmemory

功能:清除所有變量。

講明:系統(tǒng)變量是我們清除不掉的。

,release命令

格式1:release變量1,變量2,……

功能:清除指定的變量。

格式2:releaseall

功能:清除所有變量。

格式3:releasealllike通配名

功能:清除和通配名一致的變量。

格式4:releaseallexcept通配名

功能:清除和通配名不一致的變量。

二、表達(dá)式

1、表達(dá)式是對數(shù)據(jù)(常量、變量)進(jìn)行運(yùn)算的式子。運(yùn)算

能夠通過運(yùn)算符,也能夠通過函數(shù)。為改變運(yùn)算的順序,也能

夠在表達(dá)式中使用圓括號。

講明:

?運(yùn)算機(jī)中,表達(dá)式里的所有字符均并列書寫。

?單個常量或變量是表達(dá)式的特例,即屬于表達(dá)式范疇。

2、數(shù)值表達(dá)式

?對數(shù)值型、貨幣型數(shù)據(jù)進(jìn)行運(yùn)算的式子,其值為數(shù)值型

或貨幣型。

?算術(shù)運(yùn)算符:

**或人:乘方運(yùn)算;

*:乘法運(yùn)算;

/:除運(yùn)算;

%:求余運(yùn)算;

+:加運(yùn)算;

-:減運(yùn)算。

3、字符表達(dá)式

?對字符型數(shù)據(jù)進(jìn)行運(yùn)算的式子,其結(jié)果仍為字符型。

?字符運(yùn)算符:

+:將前后兩個字符串進(jìn)行合并,如[abc]+[def],其結(jié)果

為字符串[abcdef]。

-:將前后兩個字符串進(jìn)行合并,但將前面字符串尾部的空

格挪到合并后的新字符串尾部。如[abc]-[def],其結(jié)果為字符

串[abcdef]0

兩個字符運(yùn)算符的優(yōu)先級相同。

4、日期時刻表達(dá)式

?對日期時刻型數(shù)據(jù)進(jìn)行運(yùn)算的式子,其結(jié)果類型依情形

而定。

?日期時刻表達(dá)式類型:p64表3.3。

5、關(guān)系表達(dá)式

?通過關(guān)系運(yùn)算符進(jìn)行比較的式子。如果比較成立,結(jié)果

為邏輯值真,否則為假。

?關(guān)系運(yùn)算符:p65表3.4。關(guān)系運(yùn)算符的優(yōu)先級相同,但

低于前面的運(yùn)算符。

?關(guān)系運(yùn)算符前后參與比較的數(shù)據(jù)要求是同一類型(數(shù)值

型能夠和貨幣型比較)。

?關(guān)系表達(dá)式的運(yùn)算結(jié)果和關(guān)系運(yùn)算符兩邊的數(shù)據(jù)大小緊

密有關(guān),VFP中,數(shù)據(jù)大小的規(guī)定:

(1)數(shù)值型、貨幣型

同算術(shù)中大小。

(2)日期型、日期時刻型

靠后的日期、時刻大。

(3)邏輯型

真大于假。

(4)字符型

【單個字符大小的規(guī)定】

當(dāng)設(shè)置為Machine(機(jī)器)順序時:

字符大?。嚎崭瘛磾?shù)字字符('0'至『9')〈大寫字母〈小

寫字母;

漢字大小:常用漢字以拼音順序排大小,如‘李'<'張

當(dāng)設(shè)置為PinYin(拼音)順序時:

字符大?。嚎崭瘢〝?shù)字字符('0'至『9')<'a'<'N

<,b,<,B,……;

漢字大?。阂云匆繇樞蚺糯笮?,如‘李'<'張'。

當(dāng)設(shè)置為Stroke(筆畫)順序時:

字符大?。嚎崭瘢〝?shù)字字符('0'至『9')<'a'<'N

<,b,<,B,……;

漢字大?。阂詴鴮懝P畫多少確定大小,筆畫多的大。

【三種順序的設(shè)置】

方法一:“選項(xiàng)”對話框中設(shè)置。

方法二:用命令設(shè)置:

setcollateto“Machine”

setcollateto"PinYin”

setcollateto“Stroke”

【字符型數(shù)據(jù)的大小】

兩個字符串大小的判定規(guī)則:

自左至右,逐個字符進(jìn)行比較,直到某個字符能辨論出大

小為止。七,(字符型數(shù)據(jù)大小規(guī)則圖解)

非精確比較方式(默認(rèn)方式):

兩個字符串的比較以右邊字符串的終止而終止。亡(比較

方式圖解)

精確比較方式:

兩個字符串的比較以最長字符串的終止而終止。e(比較

方式圖解)

【比較方式的設(shè)置】

方法一:“選項(xiàng)”對話框中進(jìn)行。

方法二:命令

SETEXACTON&&設(shè)置為精確比較方式

SETEXACTOFF&&設(shè)置為非精確比較方式

【摸索、練習(xí)與提示】

1)了解當(dāng)前比較方式。提示:通過SETCEXACT)函數(shù)也

可了解。

2)分別在非精確比較方式和精確比較方式下判定下述關(guān)系

表達(dá)式的值:

'XYZ'='XY'XY'='XYZ','XYZ'=='XY'

XY'=='XYZ';XY'<'XYZ'XYZ'〉'XY'。

6、邏輯表達(dá)式

?對邏輯型數(shù)據(jù)進(jìn)行運(yùn)算的式子,結(jié)果為邏輯型。

?邏輯運(yùn)算符:

.not.或not或?。悍沁\(yùn)算;

.and.或and:與運(yùn)算;

.or.或or:或運(yùn)算。

優(yōu)先級(高一低):非、與、或。但它們的優(yōu)先級均低于前

面的運(yùn)算符。

講明:如果一個運(yùn)算符只對一個數(shù)據(jù)進(jìn)行運(yùn)算,稱之為單

目運(yùn)算符;如果對兩個數(shù)據(jù)進(jìn)行運(yùn)算,稱為雙目運(yùn)算符。

7、邏輯表達(dá)式、關(guān)系表達(dá)式的意義

VFP中,使用邏輯表達(dá)式、關(guān)系表達(dá)式表示條件。當(dāng)邏輯

表達(dá)式、關(guān)系表達(dá)式的值為真時,所表示的條件成立;當(dāng)邏輯

表達(dá)式、關(guān)系表達(dá)式的值為假時,所表示的條件不成立。

例:試用關(guān)系表達(dá)式或邏輯表達(dá)式表示如下條件,并驗(yàn)證

條件的成立與否和表達(dá)式真假值之間的關(guān)系。

1)A大于5

2)A不大于5

3)A大于5且B小于10

4)A大于5或B小于10

5)A在5和20之間

四、常用函數(shù)

1、函數(shù)是進(jìn)行數(shù)據(jù)運(yùn)算的另一種途徑。

2、函數(shù)的一樣使用格式:

函數(shù)名(自變量,自變量,……)

自變量又稱參數(shù)。無自變量時,圓括號也要寫上,如DAT

E()等。

3、常用函數(shù)

(1)數(shù)值處理函數(shù)

?ABS函數(shù)

功能:求一個數(shù)的絕對值。

例:ABS(67),ABS(-67+89),ABS(-82)

?SIGN函數(shù)

功能:當(dāng)自變量值正時,返回1;當(dāng)自變量值負(fù)時,返回-

1;當(dāng)自變量值為0時,返回0。

例:當(dāng)變量A的值為正時,B賦以值8+20;當(dāng)變量A的

值為負(fù)時,B賦以值8-20;當(dāng)變量A的值為。時,B賦以值8。

?SQRT函數(shù)

功能:求正數(shù)的平方根。

例:SQRT(2)

講明:默認(rèn)運(yùn)算結(jié)果為2位小數(shù)。SETDECIMALSTO命

令可設(shè)置運(yùn)算結(jié)果的小數(shù)位數(shù)。

?PI函數(shù)

功能:得到n的值。

例:PIo

?INT函數(shù)

功能:返回自變量的整數(shù)部分。

例:INT(1.3),INT(1.6),INT(-1.3),INT(-1.6)

?CEILING函數(shù)

功能:返回大于或等于自變量的最小整數(shù)。

例:CEILING(1.3),CEILING(2),CEILING(-1.3),C

EILING(-2)

?FLOOR函數(shù)

功能:返回小于或等于自變量的最大整數(shù)。

例:FLOOR(1.3),FLOOR(2),FLOOR(-1.3),FLOO

R(-2)

?ROUND函數(shù)

功能:對自變量的值進(jìn)行四舍五入運(yùn)算。運(yùn)算時,第二個

自變量表示精確到哪一位。

例:ROUND(345.345,2),ROUND(345.345,1),RO

UND(345.345,0),ROUND(345.345,-1)

?MOD函數(shù)

功能:求兩個整數(shù)相除以后的余數(shù)。

例:MOD(10,3),MOD(9,3),MOD(11,3)

講明:有負(fù)數(shù)的求余不考慮。

?MAX函數(shù)

功能:從多個自變量中挑出最大的值。

例:MAX(1,2,7,4,5),MAX('A','ABC','BC')

講明:自變量的類型應(yīng)一致。

?MIN函數(shù)

功能:從多個自變量中挑出最小的值。

例:MIN(1,2,7,4,5),MIN「A"'ABC','BC')

講明:自變量的類型應(yīng)一致。

(2)字符處理函數(shù)

?LEN函數(shù)

功能:求字符串的長度。

講明:一個漢字長度為2,一個英文字符(包括空格)長

度為lo

例:LEN(“二級VisualFoxPro培訓(xùn)班”)

?LOWER函數(shù)

功能:將自變量中的所有字母轉(zhuǎn)化為小寫字母。

例:LOWER(“二級VisualFoxPro培訓(xùn)班”)

?UPPER函數(shù)

功能:將自變量中的所有字母轉(zhuǎn)化為大寫字母。

例:UPPER(“二級VisualFoxPro培訓(xùn)班”)

?SPACE函數(shù)

功能:產(chǎn)生指定個數(shù)空格組成的字符串。

例:SPACE(10)

?REPLICATE函數(shù)

功能:由指定字符串重復(fù)組合產(chǎn)生字符串。

例:REPLICATE('*',10),REPLICATE('ABCD',5)

?TRIM函數(shù)

功能:將字符型自變量右邊空格去掉。

例:TRIM("VisualFoxPro”)

?LTRIM函數(shù)

功能:將字符型自變量左邊空格去掉。

例:LTRIM("VisualFoxPro”)

?ALLTRIM函數(shù)

功能:將字符型自變量左、右兩邊的空格均去掉。

例:ALLTRIM("VisualFoxPro”)

?LEFT函數(shù)

功能:從一個字符串左邊開始取子串。

例:LEFT(“上午好!”,2),LEFT(“上午好!”,4)

?RIGHT函數(shù)

功能:從一個字符串右邊取子串。

例:RIGHT(“上午好!”,2),RIGHT(“上午好!”,4)

?SUBSTR函數(shù)

功能:從一個字符串中取子串。

例:SUBSTR(“上午好!”,3,2),SUBSTR(“上午好!”,

3,4)

?OCCURS函數(shù)

功能:求第一個字符串在第二個字符串中顯現(xiàn)的次數(shù)。

例:OCCURS("ab","huabhgtabagfbyrba"),OCCURS("a

b","huahgtbagfbyrba")

?AT函數(shù)

功能:求第一個字符串在第二個字符串中顯現(xiàn)的位置。

例:AT("ab","huABygabhgtabagf"),AT("ab","huAByga

bhgtabagf",2)

?ATC函數(shù)

功能:求第一個字符串在第二個字符串中顯現(xiàn)的位置,但

不區(qū)分字母大小寫。

例:ATC("ab","huABygabhgtabagfATC("ab","hu

ABygabhgtabagf",2)

?STUFF函數(shù)

功能:用第二個字符串替換第一個字符串中的內(nèi)容。

例:STUFF("gtyabku",3,4,"AA")

摸索:

1)在"ab"的a、b之間插入"和"。

2)將"淮北煤炭師范學(xué)院”中的“煤炭”二字刪除。

?CHRTRAN函數(shù)

功能:對第一個字符串中的字符進(jìn)行替換。

例1:CHRTRAN("ABACAD","ACD","X12")

例2:CHRTRAN("大伙兒好大伙兒你")

?LIKE函數(shù)

功能:第一個字符串中的字符和第二個字符串中字符是否

對應(yīng)相同,是返回真,否則返回假。

例1:LIKE("ABA","ABAD")

講明:第一個字符串中能夠使用通配符。

例2:LIKE("AB*","ABAD")

(3)日期、時刻函數(shù)

?DATE函數(shù)

功能:返回當(dāng)前系統(tǒng)日期。

例:DATE()

?TIME函數(shù)

功能:返回當(dāng)前系統(tǒng)時刻。

例:TIME()

講明:函數(shù)值為字符型。

?DATETIME函數(shù)

功能:返回當(dāng)前系統(tǒng)日期及時刻。

例:DATETIMEO

?YEAR函數(shù)、MONTH函數(shù)、DAY函數(shù)

功能:分別返回日期或日期時刻型自變量對應(yīng)的年份、月

份和生活。

例:YEAR(DATE()),MONTH(DATEQ),DAY(DATE())

?HOUR函數(shù)、MINUTE函數(shù)、SEC函數(shù)

功能:分別返回日期時刻型自變量對應(yīng)的時、分、秒。

例:HOUR(DATETIME()),MINUTE(DATETIME()),SEC

(DATETIMEO)

摸索:10小時后是幾點(diǎn)?

(4)轉(zhuǎn)換類函數(shù)

?STR函數(shù)

功能:將數(shù)值型自變量轉(zhuǎn)換為字符型。

例1:STR(123.456)

講明:函數(shù)值默認(rèn)10位,不帶小數(shù)部分。能夠加上第2、

第3個參數(shù),用來分別表示總位數(shù)和小數(shù)位數(shù)。默認(rèn)或指定位

數(shù)比實(shí)際位數(shù)多時,函數(shù)值的左邊補(bǔ)以相應(yīng)個數(shù)的空格,以保

證總位數(shù)。

例2:STR(123.456,5),STR(123.456,5,1),STR(123.4

56,5,2),STR(123.456,6,2),

STR(123.456,3,2),STR(123.456,2)

,VAL函數(shù)

功能:將字符型自變量轉(zhuǎn)換為數(shù)值型。

例:VAL([1234.56]),VAL([123a]),VAL([下午好])

?DTOC函數(shù)

功能:將日期型自變量轉(zhuǎn)換為日期形式的字符串。

例1:DTOC(DATEO)

講明:轉(zhuǎn)換后的字符串組成和當(dāng)前日期格式有關(guān),但加上

1參數(shù)后,將轉(zhuǎn)化為YYYYMMDD這種固定格式的字符串。

例2:DTOC(DATE(),1)

?TTOC函數(shù)

功能:將日期時刻型自變量轉(zhuǎn)換為日期時刻形式的字符串。

例1:TTOC(DATETIME())

講明:轉(zhuǎn)換后的字符串組成和當(dāng)前日期、時刻格式有關(guān),

但加上1參數(shù)后,將轉(zhuǎn)化為YYYYMMDDHHMMSS這種固定

格式的字符串。

例2:TTOC(DATETIME(),1)

?CTOD函數(shù)

功能:將日期形式的字符串轉(zhuǎn)化為日期型。

例:CTOD("2004/7/16")

講明:字符串的日期形式應(yīng)和當(dāng)前日期格式一致,否則將

轉(zhuǎn)化為空日期。

?CTOT函數(shù)

功能:將日期時刻形式的字符串轉(zhuǎn)化為日期時刻型。

例:CTOT("2004/7/1610:10")

(5)測試類函數(shù)

?BETWEEN函數(shù)

功能:判定一個數(shù)據(jù)是否在另兩個數(shù)據(jù)之間,是為真,否

則為假。

例:BETWEEN(2,1,16),BETWEEN("2","1","16")

?EMPTY函數(shù)

功能:判定一個數(shù)據(jù)是否空值(p76表3.7),是為真,否

則為假。

例:EMPTY(0),EMPTY("0"),EMPTYEMPTY("

"),EMPTY({})

?VARTYPE函數(shù)

功能:判定一個數(shù)據(jù)的類型。

例:VARTYPE(A)

4、典型函數(shù)介紹

?條件函數(shù)

用法:HF(邏輯型表達(dá)式,表達(dá)式1,表達(dá)式2)

功能:如果邏輯型表達(dá)式的值為真,則表達(dá)式1的值作為

函數(shù)值,否則,表達(dá)式2的值作為函數(shù)值。

例:函數(shù)IIF(X>10,'AAA'BBB')

摸索:當(dāng)變量X分別取值10、0、100時,函數(shù)nF(X>10,'

AAA',IIF(X<10/BBB'/CCC'))的值。

?宏替換函數(shù)

用法:&字符型變量.

功能:用字符型變量的值(不帶定界符)替換整個宏替換

函數(shù)。

例:假設(shè)A=,76+28',咨詢表達(dá)式1+A和1+&A.分別等

價于什么?

講明:

(1)該函數(shù)是一個十分有用又十分專門的一個函數(shù)。

(2)宏替換函數(shù)顯現(xiàn)在字符串中時也還有效,而其它函數(shù)

顯現(xiàn)在字符串中時被當(dāng)作一個個字符處理。即:

<A='ABC,則X&A.Y,等價于XABCY,;而,ABS(-86),卻

不等價于,861

(3)宏替換函數(shù)最后的小數(shù)點(diǎn)是宏替換函數(shù)的終止標(biāo)記。

當(dāng)宏替換函數(shù)和其后的內(nèi)容能夠明確區(qū)分清晰時,該終止標(biāo)記

能夠省略。

摸索:下面的表達(dá)式中,哪些宏替換函數(shù)的終止標(biāo)記能夠

省略?假設(shè)A='76+28\

&A.+52,&A.6-285&A.BCDEFG'。

第四章數(shù)據(jù)庫及其操作

一、認(rèn)識VFP數(shù)據(jù)庫

1、VFP中,數(shù)據(jù)庫是一個擴(kuò)展名為DBC的文件,但為了

儲存與數(shù)據(jù)庫有關(guān)的其它信息,VFP還會自動地為每個數(shù)據(jù)庫

文件建立同差不多名但不同擴(kuò)展名的另兩個文件:擴(kuò)展名為D

CT的數(shù)據(jù)庫備注文件和擴(kuò)展名為DCX的數(shù)據(jù)庫索引文件。

摸索:假設(shè)我們建立了數(shù)據(jù)庫SJK.DBC,咨詢:實(shí)際會產(chǎn)

生哪些文件?

2、VFP數(shù)據(jù)庫要緊由表組成。組成數(shù)據(jù)庫的表能夠是一個,

也能夠是多個。

3、VFP中,表是一個擴(kuò)展名為DBF的文件。

4、VFP中,表就相當(dāng)于我們?nèi)粘I钪兴姷母鞣N表格。

日常表格中,表頭上所列出的各項(xiàng)在VFP中叫字段;表格中的

一行內(nèi)容在VFP中叫作一個記錄。,拶(字段與記錄)

5、盡管數(shù)據(jù)庫包含表,但數(shù)據(jù)庫文件和表文件從文件夾中

看差不多上獨(dú)立的文件。t(數(shù)據(jù)庫和表的關(guān)系)

6、VFP中,數(shù)據(jù)庫建立的一樣步驟是:

(1)建立數(shù)據(jù)庫。

(2)在數(shù)據(jù)庫中建立表。

(3)重復(fù)(2),創(chuàng)建數(shù)據(jù)庫中的其它表。

(4)關(guān)閉數(shù)據(jù)庫。

講明:關(guān)閉數(shù)據(jù)庫后,其所屬的表也被關(guān)閉?;蛘?,先關(guān)

閉表,再關(guān)閉數(shù)據(jù)庫。

7、VFP中,使用數(shù)據(jù)庫的一樣步驟:

(1)先打開數(shù)據(jù)庫,再打開表。或直截了當(dāng)打開表(現(xiàn)在,

表所屬的數(shù)據(jù)庫也會自動打開)。

(2)對表進(jìn)行操作。

(3)關(guān)閉數(shù)據(jù)庫?;蛘呦汝P(guān)閉表,再關(guān)閉數(shù)據(jù)庫。

二、數(shù)據(jù)庫及表的差不多操作

1、建立數(shù)據(jù)庫

?菜單方法

?命令方法

CREATEDATABASE[數(shù)據(jù)庫]

講明:

1)命令中,不指定要建立的數(shù)據(jù)庫時,會顯現(xiàn)對話框,通

過對話框來選擇數(shù)據(jù)庫的位置及提供數(shù)據(jù)庫名。

2)命令中,指定要建立的數(shù)據(jù)庫時,能夠省略數(shù)據(jù)庫擴(kuò)展

名。如果要建立的數(shù)據(jù)庫文件不想放在默認(rèn)名目,則文件名前

面還必須提供文件位置。如果文件位置或文件名中用到空格,

則所提供的內(nèi)容前后應(yīng)加上字符定界符。

3)菜單方式建立數(shù)據(jù)庫后,會自動顯示出“數(shù)據(jù)庫設(shè)計器”

窗口(我們今后簡稱為“數(shù)據(jù)庫窗口”),命令方式建立時可不

能。執(zhí)行“MODIFYDATABASE”命令可顯示數(shù)據(jù)庫窗口。

4)不管顯示不顯示數(shù)據(jù)庫窗口,新建的數(shù)據(jù)庫都將是打開

狀態(tài)。即關(guān)閉數(shù)據(jù)庫窗口,不表示關(guān)閉數(shù)據(jù)庫。

5)分別建幾個數(shù)據(jù)庫時,這些數(shù)據(jù)庫差不多上打開狀態(tài),

但叫“當(dāng)前數(shù)據(jù)庫”的只有一個。從“常用”工具欄能夠看出

差不多打開的數(shù)據(jù)庫、當(dāng)前數(shù)據(jù)庫,也能夠選擇當(dāng)前數(shù)據(jù)庫。

2、在數(shù)據(jù)庫中建立表

?菜單方法

?命令方法

CREATE[表]

講明:

1)命令中,不指定要建立的表時,會顯現(xiàn)對話框,通過對

話框來選擇表的位置及提供表名。

2)命令中,指定要建立的表時,能夠省略表擴(kuò)展名。如果

要建立的表文件不想放在默認(rèn)名目,則文件名前面還必須提供

文件位置。如果文件位置或文件名中用到空格,則所提供的內(nèi)

容前后應(yīng)加上字符定界符。

3)一個表的組成字段稱為表的結(jié)構(gòu)。

4)如果當(dāng)前有多個數(shù)據(jù)庫是打開狀態(tài),則新建的表將屬于

當(dāng)前數(shù)據(jù)庫。

5)表建好后,自動處在打開狀態(tài),但看不到表內(nèi)容。

6)一樣情形下,打開一個表將自動關(guān)閉差不多打開的表。

即一樣情形下,只能打開一個表。當(dāng)前所打開的表從狀態(tài)欄能

夠看出有關(guān)信息。從狀態(tài)欄所看到的表稱為當(dāng)前表。

3、關(guān)閉表和數(shù)據(jù)庫

關(guān)閉表

?命令方法

USE

關(guān)閉數(shù)據(jù)庫

?命令方法

CLOSEDATABASES&&關(guān)閉當(dāng)前數(shù)據(jù)庫

CLOSEDATABASESALL&&關(guān)閉所有數(shù)據(jù)庫

4、打開數(shù)據(jù)庫

?菜單方法

?命令方法

OPENDATABASE[數(shù)據(jù)庫]

講明:用“OPENDATABASE”打開數(shù)據(jù)庫時并不自動

顯示數(shù)據(jù)庫窗口,要想顯示,須再執(zhí)行“MODIFYDATABAS

E”命令。

5、打開表

?菜單方法

?命令方法

USE表[EXCLUSIVE/SHARED]

講明:

1)選擇EXCLUSIVE選項(xiàng)時,表以獨(dú)占方式打開;選擇S

HARED選項(xiàng)時,表以共享方式打開。省略時,默認(rèn)以獨(dú)占方

式打開。獨(dú)占方式打開時,表的結(jié)構(gòu)能夠修改,表的記錄能夠

刪除。

2)一樣情形下,新打開一個表時,之前打開的表會被關(guān)閉。

6、修改表結(jié)構(gòu)

?菜單方法:“顯示|表設(shè)計器”

?命令方法:MODIFYSTRUCTURE

講明:修改一個表結(jié)構(gòu)前,相應(yīng)表必須打開。

三、表的有關(guān)操作

專門提示:對表進(jìn)行任何操作前,該表都要預(yù)先打開。

1、表窗口及其操作

?表窗口的打開

菜單方式:“顯示|掃瞄二

命令方式:

命令1:BROWSE[LAST]

命令中的LAST選項(xiàng)將使表窗口以上次的顯示外觀顯現(xiàn)。

命令2:EDIT

命令3:CHANGE

命令4:APPEND

?講明:

(1)表窗口有兩種顯不方式:掃瞄方式和編輯方式。

(2)表窗口有兩種工作方式:追加方式和非追加方式。使

用APPEND命令打開的表窗口自動處在追加方式,其余均處在

非追加方式。如果處在非追加工作方式,能夠?qū)⑵滢D(zhuǎn)換為追加

方式;反之不行。

(3)表窗口顯現(xiàn)后,能夠?qū)Ρ淼膬?nèi)容進(jìn)行任意的修改。所

以,如果表是以只讀方式打開時,則禁止修改。命令方式打開

表示,加上“NOUPDATE”選項(xiàng)表示以只讀方式打開。

(4)表窗口顯現(xiàn)后,VFP會自動多出一個“表”菜單,從

中,我們能夠進(jìn)行許多操作。

2、定位記錄指針

?記錄指針的認(rèn)識

(1)表中有許多記錄,為了指示出當(dāng)前可操作的記錄,V

FP自動為打開的表安排一個“記錄指針:記錄指針?biāo)爸浮?/p>

的記錄稱為當(dāng)前記錄。

(2)一個表剛打開時,記錄指針指向1號記錄。隨著操作

的進(jìn)行,記錄指針會自動改變其指向。我們也能夠人為移動記

錄指針。

(3)記錄指針的位置能夠從狀態(tài)欄看出。也可通過RECN

0()函數(shù)值獲知。

?記錄指針的定位

GOTOP或GOTOTOP

將記錄指針指向表中最前面的記錄。

講明:在記錄指針差不多指向最前面記錄的情形下,如果

讓指針再前移“一步”,則稱”指向了表的開頭“,這時,函數(shù)

BOFO的值將為真。在指針差不多指向表頭的情形下,再“越

雷池一步”,就會出錯。

GOBOTTOM或GOTOBOTTOM

將記錄指針指向表中最后面的記錄。

講明:在記錄指針差不多指向最后面記錄的情形下,如果

讓指針再后移“一步”,則稱“指向了表的末尾”,這時,函數(shù)

E0FO的值將為真。在指針差不多指向表尾的情形下,再“越

雷池一步”,就會出錯。

GO記錄號或GOTO記錄號或

記錄號

將記錄指針指向指定記錄號的記錄。

講明:VFP會自動對表中的記錄進(jìn)行編號,這確實(shí)是我們

所講的記錄號。記錄號從1開始,記錄號的順序反映了記錄在

表中的實(shí)際順序。

SKIP

記錄指針后移一個記錄。

SKIPn(n為正整數(shù))

記錄指針后移n個記錄。

SKIP-n(n為正整數(shù))

記錄指針前移n個記錄。

?摸索:將記錄指針指向表頭,查看當(dāng)前記錄號;將記錄

指針指向表尾,查看當(dāng)前記錄號。所顯示的記錄號與你認(rèn)為的

不同嗎?你不能懂得嗎?

3、在主屏幕顯示記錄

?LIST

顯示表中全部記錄。顯示完畢,記錄指針指向表尾。

?LIST范疇

顯示指定范疇內(nèi)的記錄。范疇:ALL一全部記錄,NEXT

n一當(dāng)前記錄開始的n個記錄,REST—當(dāng)前記錄到最后一個記

錄,RECORDn—第n號記錄。

?LISTFOR條件

顯示表中符合條件的記錄。

?LISTFOR條件范疇或LIST范疇FOR

條件

僅顯示指定范疇內(nèi)符合條件的記錄。

?DISPLAY

顯示當(dāng)前記錄。

?DISPLAY范疇

同LIST范疇。

?DISPLAYFOR條件

同LISTFOR條件。

?DISPLAYFOR條件范疇或DISPLAY范

疇FOR條件

同LIST范疇FOR條件。

?講明:

(DLIST命令和DISPLAY命令除了第一種用法上功能有

差別外,另外一個差別是:當(dāng)顯示的記錄信息多時,LIST命令

不能一屏一屏顯示記錄信息,而DISPLAY命令能夠。

(2)命令中,若加上OFF選項(xiàng),則不顯示記錄號。

(3)能夠指定顯示字段,格式:FIELDS字段名1,字段

名2,……o

(4)如果期望記錄信息送往打印機(jī),可加上TOPRINT

ER選項(xiàng)。

(5)VFP命令中,若同時顯現(xiàn)多個選項(xiàng),一樣它們能夠以

任意順序顯現(xiàn)。

(6)留意顯示前后記錄指針位置的變化。

4、向表中添加記錄

?INSERT

當(dāng)前記錄之后插入一空記錄,同時打開表窗口以便填寫內(nèi)

容。

?INSERTBLANK

當(dāng)前記錄之后插入一空記錄,但不打開表窗口。

?INSERTBEFORE

當(dāng)前記錄之前插入一空記錄,同時打開表窗口以便填寫內(nèi)

容。

?INSERTBEFOREBLANK

當(dāng)前記錄之前插入一空記錄,但不打開表窗口。

?APPEND

在表的最后添加一空記錄,同時打開表窗口以便為空記錄

填寫內(nèi)容。

?APPENDBLANK

在表的最后添加一空記錄,但不打開表窗口。

?APPENDFROM表[FOR條件]

將指定表中記錄有條件或無條件地追加到當(dāng)前表后。命令

中指定的表無須打開。

例:先分別查看“學(xué)生Ldbf”和“學(xué)生.dbf”的內(nèi)容,然

后將“學(xué)生Ldbf”中年齡小于20的記錄追加到“學(xué)生.dbf”中,

并查看追加后的“學(xué)生.dbf”內(nèi)容。

5、自動替換字段內(nèi)容

命令格式:

REPLACE字段1WITH表達(dá)式1,字段2WITH

表達(dá)式2,……[范疇][FOR條件]

功能:對表中指定范疇內(nèi)符合條件的記錄進(jìn)行替換。若省

略范疇和條件,只對當(dāng)前記錄進(jìn)行替換。

例:對學(xué)生表進(jìn)行如下替換:

?每人獎學(xué)金為1000元。

?按照出生日期重新運(yùn)算年齡(CEILING)

?85年前(包括85年)出生的學(xué)生獎學(xué)金增加100元。

?男生獎學(xué)金加100,女生獎學(xué)金加150。

6、記錄的刪除

?邏輯刪除(即在記錄上做個刪除標(biāo)記,并不是確實(shí)刪除)

命令格式:DELETE[范疇][FOR條件]

功能:刪除指定范疇內(nèi)符合條件的記錄。省略范疇和條件

時,只刪除當(dāng)前記錄。

講明:如果當(dāng)前記錄被邏輯刪除,則函數(shù)DELETEDO

值為真。

?邏輯刪除記錄的復(fù)原(即取消刪除標(biāo)記)

命令格式:RECALL[范疇][FOR條件]

功能:復(fù)原指定范疇內(nèi)符合條件的記錄,如果它被邏輯刪

除的話。省略范疇和條件時,只復(fù)原當(dāng)前記錄。

講明:也能夠在表窗口中,通過鼠標(biāo)或Ctrl+T鍵邏輯刪除

/復(fù)原記錄。

?物理刪除(確實(shí)將記錄從表中刪除)

命令1:PACK

功能:物理刪除差不多邏輯刪除的記錄。

命令2:ZAP

功能:物理刪除表的全部記錄,不管其是不是已邏輯刪除。

7、查找記錄

命令格式:LOCATEFOR條件[范疇]

功能:從表中找出符合條件的第一個記錄。

講明:

(1)找到如此的記錄后,只是將記錄指針指向所找到的記

錄,并可不能顯示出所找記錄的內(nèi)容。

(2)若要查找表中符合條件的下一個記錄,使用Continu

e命令。

(3)找到記錄時,函數(shù)FOUND()值為真,否則為假。

摸索:找不到符合條件的記錄時,記錄指針將指向何處?

8、獲知表中記錄個數(shù)

從狀態(tài)欄能夠看出,也可通過RECCOUNT()函數(shù)值獲

四、索引

1、索引的認(rèn)識

?索引是為了在不改變表中記錄順序的情形下得到新的記

錄順序。

假設(shè)學(xué)生表:

記錄號學(xué)號姓名年齡

12003001張三21

22003002李四20

32003003王五19

42003004張三18

52003005趙六20

如果我們期望得到以“姓名”升序排列的記錄順序,做法

是:建立一個以“姓名”升序排列的如下“索引表”:

姓名記錄號

李四2

王五3

張三1

張三4

趙六5

從該“索引表”中,就能夠看出“姓名”升序排列下的記

錄順序。該“索引表”就叫作上述學(xué)生表的一個索引。

一個表,其索引能夠有多個。

?索引的有關(guān)概念

(1)索引名:為建立的索引所取的名字。

(2)索引項(xiàng)(索引關(guān)鍵字或索引表達(dá)式):建立索引的依

據(jù),如上例中的“姓名”字段。索引項(xiàng)能夠是一個字段,也能

夠是一個表達(dá)式。如期望建立一個如此的索引:以“姓名”升

序排列,當(dāng)記錄的“姓名”相同時,再以“年齡”的升序排列。

這時,索引項(xiàng)確實(shí)是:姓名+年齡?索引如下:

姓名+str(年記錄號

齡,2)

李四202

王五193

張三184

張三211

趙六205

?索引的類型

(1)主索引:如果不同記錄,其索引項(xiàng)值要求不同,貝L

如此的索引能夠定義為主索引。

(2)候選索引:如果不同記錄,其索引項(xiàng)值要求不同,貝11,

如此的索引也能夠定義為候選索引。

主索引與候選索引的區(qū)別是:一個表,只能有一個主索弓1,

能夠有多個候選索引。

(3)一般索引:對索引項(xiàng)值無限制要求的索引可定義為一

般索引。

(4)唯獨(dú)索引:關(guān)于索引項(xiàng)值相同的記錄,在索引中只記

錄第一個記錄。有這種要求的索引應(yīng)定義為唯獨(dú)索引。3(唯

獨(dú)索引圖解)

?索引的儲存

(1)索引不是和表一起儲存在表文件中,而是單獨(dú)儲存到

索引文件中。

(2)索引文件的類型:

單索引文件:一個索引文件只能儲備一個索引。單索引文

件的擴(kuò)展名為IDXo

復(fù)合索引文件:一個索引文件能儲備多個索引,不同索引

以索引名進(jìn)行區(qū)分。復(fù)合索引文件的擴(kuò)展名為CDX。如果表的

某個復(fù)合索引文件,其差不多名與表同名,則該復(fù)合索引文件

稱為結(jié)構(gòu)化復(fù)合索引文件,否則稱為非結(jié)構(gòu)化復(fù)合索引文件。

(3)明顯,一個表的單索引文件能夠有多個,非結(jié)構(gòu)化復(fù)

合索引文件也能夠有多個,但結(jié)構(gòu)化復(fù)合索引文件只能有一個。

實(shí)際使用中,以結(jié)構(gòu)化復(fù)合索引文件最常用。

?索引的其它認(rèn)識

(1)同數(shù)據(jù)庫和表一樣,索引也只有當(dāng)其是打開狀態(tài)時,

索引才能使用。新建一個索引時,其自動處于打開狀態(tài);結(jié)構(gòu)

化復(fù)合索引文件中的索引,隨表的打開而自動打開;單索引文

件及非結(jié)構(gòu)化復(fù)合索引文件中的索引必須人為打開。

(2)當(dāng)多個索引被打開時,能夠指定某個索引為當(dāng)前索弓

當(dāng)前索引也能夠沒有。如果沒有當(dāng)前索引,則對表進(jìn)行處理時,

以表中的記錄順序進(jìn)行(例LIST、GOTOP等);如果有當(dāng)前

索引,則對表進(jìn)行處理時,以當(dāng)前索引中的記錄順序進(jìn)行(例

LIST、GOTOP等)。

(3)當(dāng)索引處在打開狀態(tài)時,索引的內(nèi)容會隨表內(nèi)容的改

變而自動調(diào)整。也確實(shí)是講,當(dāng)一個索引處在關(guān)閉狀態(tài)時,表

內(nèi)容改變后,索引內(nèi)容得不到及時調(diào)整,這就導(dǎo)致索引內(nèi)容的

“老化”。為此,能夠打開索引,對其進(jìn)行重新索引即可??梢?

表的索引一樣都要讓其處在打開狀態(tài)。

2、索引的有關(guān)操作

?索引的建立

(1)結(jié)構(gòu)化復(fù)合索引文件中索引的建立

在“表設(shè)計器”中建立:見演示。

命令方式建立:

INDEXON索引項(xiàng)TAG索引名[ASCENDING/DESCE

NDING][UNIQUE/CANDIDATE]

講明:UNIQUE一建唯獨(dú)索弓],CANDIDATE—?選索弓1,

不指定為一般索引。

(2)單索引文件中索引的建立

INDEXON索引項(xiàng)TO單索引文件[ASCENDING/DES

CENDING][UNIQUE/CANDIDATE]

(3)非結(jié)構(gòu)化復(fù)合索引文件中索引的建立

INDEXON索引項(xiàng)TAG索引名OF非結(jié)構(gòu)化復(fù)合索引

文件[ASCENDING/DESCENDING][UNIQUE/CANDIDATE]

講明:新建的索引自動處于打開狀態(tài),且用命令方式建立

的索引為當(dāng)前索引(“表設(shè)計器”中建立的索引不被自動設(shè)為當(dāng)

前索引)。

?索引的打開

(1)結(jié)構(gòu)化復(fù)合索引文件中索引的打開

隨表的打開而打開。索引打開后,沒有指定當(dāng)前索引。

(2)單索引文件、非結(jié)構(gòu)化復(fù)合索引文件中索引的打開

K和表一起打開H

USE表INDEX索引文件1,索引文件2,……

K表打開后打開X

SETINDEXTO索引文件1,索引文件2,[ADD

ITIVE]

講明:一個或一批索引文件打開后,之前打開的索引文件

(不包括結(jié)構(gòu)化復(fù)合索引文件)將自動關(guān)閉,除非命令中有“A

DDITIVE”選項(xiàng)。

?設(shè)置當(dāng)前索引(又稱主控索引)

SETORDERTO索引號[ASCENDING/DESCENDING]

索引號從1開始編號,編號順序:單索引文件中索引、結(jié)

構(gòu)化復(fù)合索引文件中索引、非結(jié)構(gòu)化復(fù)合索引文件中索引。

SETORDERTO[TAG]索引名[ASCENDING/DESC

ENDING]

單索引文件中索引的索引名為單索引文件的差不多名。

講明:

(1)如果顯現(xiàn)索引名重名情形,應(yīng)在索引名后指明其所在

的復(fù)合索引文件:OF復(fù)合索引文件。

(2)當(dāng)前索引也能夠重新指定升、降序,不重新指定為建

立索引時的升、降序。

(3)SETORDERTO或SETORDERTO0表示不指定

當(dāng)前索引。

(4)也能夠在打開索引時指定當(dāng)前索引。這時,在打開索

引命令中加上如下選項(xiàng)即可:

ORDER索引號[ASCENDING/DESCENDING]

ORDER[TAG]索引名[ASCENDING/DESCENDING]

(5)表窗口顯現(xiàn)后,選擇“表/屬性”菜單功能能夠了解

當(dāng)前打開的索引、索引的順序,也能夠設(shè)置當(dāng)前索引。

(6)ORDER。函數(shù)能夠了解當(dāng)前索引的索引名。無當(dāng)前索

引時,為空串。

?重新索引

命令:REINDEX

功能:對所有打開的索引進(jìn)行重新索引。

講明:當(dāng)表窗口顯現(xiàn)后,也能夠通過“表”菜單進(jìn)行重新

索引。

?按照索引項(xiàng)查找記錄

格式:SEEK索引項(xiàng)值

功能:按照當(dāng)前索引,找出指定索引項(xiàng)值的第一個記錄,

將記錄指針指向該記錄。如未找到,記錄指針指向表尾。

講明:

(1)“索引項(xiàng)值”處能夠是一個表達(dá)式。

(2)找到后,函數(shù)FOUND()值為真,否則為假。

(3)要想找到相同索引項(xiàng)值的下一個記錄,使用SKIP命

令即可,不能使用CONTINUE命令。

(4)如果想在非當(dāng)前索引中,按照其索引項(xiàng)進(jìn)行查找,則

命令中應(yīng)指定一個索引:

ORDER索引號[ASCENDING/DESCENDING]

ORDER[TAG]索引名

溫馨提示

  • 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

提交評論