版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第一章:VisualFoxPro基礎(chǔ)
一、VFP6.0的作用
VFP6.0關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)是新一代小型數(shù)據(jù)庫(kù)管理系統(tǒng)的杰出代表,它以強(qiáng)大的性能、完整而又
豐富的工具、較高的處理速度、友好的界面以及完備的兼容性,深受廣大用戶的喜愛(ài)。VFP是第一個(gè)全
面支持面向?qū)Τ绦蛟O(shè)計(jì)(OOP)的數(shù)據(jù)庫(kù)語(yǔ)言。
VFP6.0擁有的近500條命令,200余種標(biāo)準(zhǔn)函數(shù)。
二、計(jì)算機(jī)數(shù)據(jù)管理的發(fā)展
1、人工管理(20世紀(jì)50年代中期以前)
2、文件系統(tǒng)(20世紀(jì)50年代后期至60年代中期)
3、數(shù)據(jù)庫(kù)方式(20世紀(jì)60年代后期)
數(shù)據(jù)與程序分離、數(shù)據(jù)集中的管理、數(shù)據(jù)可被多個(gè)程序共享
4、分布式的數(shù)據(jù)庫(kù)系統(tǒng)(20世紀(jì)70年代)
數(shù)據(jù)庫(kù)與網(wǎng)絡(luò)技術(shù)的結(jié)合,可分為緊密結(jié)合型和松散結(jié)合型
5、面向?qū)ο蟮臄?shù)據(jù)庫(kù)系統(tǒng)(20世紀(jì)80年代后期)
面向?qū)ο蟮姆椒ㄅc數(shù)據(jù)庫(kù)的結(jié)合
1.1.2數(shù)據(jù)庫(kù)系統(tǒng)(DBS)
一、數(shù)據(jù)庫(kù)(DataBase)
DBS(DB)DBMS
存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上,結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合。
1、數(shù)據(jù)的冗余度最小
2、資源共享性和數(shù)據(jù)獨(dú)立性
3、安全可靠,保密性能好
二、數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)(DBAS)
(DataBaseApplicationSystems)
指系統(tǒng)開發(fā)人員利用數(shù)據(jù)庫(kù)資源開的面向某一類實(shí)際應(yīng)用的應(yīng)用軟件系統(tǒng).
三、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)
(DataBaseManagementSystem)
對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理的系統(tǒng)軟件
四、數(shù)據(jù)庫(kù)系統(tǒng)(DBS)
引入了數(shù)據(jù)庫(kù)技術(shù)后的計(jì)算機(jī)系統(tǒng)。它實(shí)現(xiàn)了有組織地、動(dòng)態(tài)地存儲(chǔ)大量關(guān)聯(lián)數(shù)據(jù)及提供數(shù)據(jù)處理
及信息共享的手段。
1、組成
數(shù)據(jù)庫(kù)(DB)
數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)及相關(guān)軟件
數(shù)據(jù)庫(kù)管理員及用戶
硬件系統(tǒng)
DBS包括DB和DBMS
數(shù)據(jù)庫(kù)系統(tǒng)的核心是數(shù)據(jù)庫(kù)管理系統(tǒng)
1.1.3數(shù)據(jù)模型和二維表
通過(guò)計(jì)算機(jī)處理數(shù)據(jù),首先存在著把事物及事物間的聯(lián)系抽象為計(jì)算機(jī)所能接收的數(shù)據(jù)的一個(gè)過(guò)
程。
一:實(shí)體描述
1、實(shí)體
客觀存在并可以相互區(qū)別的事物
形式:
實(shí)際存在的事物.(例:職工,圖書)
抽象的事件.(例:職工的比賽活動(dòng),借閱圖書)
2、實(shí)體屬性
描述實(shí)體的特性稱為屬性
例:職工屬性(職工號(hào),姓名,性別,出生日期,職稱)
圖書屬性(總編號(hào),分類號(hào),書名,作者,單價(jià),出版社)
實(shí)體:屬性值的集合
實(shí)體型:屬性的集合
實(shí)體集:同類型實(shí)體的集合
VisualFoxPro中,表的字段對(duì)應(yīng)實(shí)體的屬性;表中的記錄對(duì)應(yīng)一個(gè)具體的實(shí)體;表對(duì)應(yīng)實(shí)體集;某個(gè)
記錄屬性的集合對(duì)應(yīng)實(shí)體型。
二、實(shí)體間聯(lián)系
1、聯(lián)系
實(shí)體與實(shí)體間的對(duì)應(yīng)關(guān)系,它反映現(xiàn)實(shí)世界事物之間的聯(lián)系。
三、數(shù)據(jù)模型
1、概念:DBMS中表示實(shí)體與實(shí)體間聯(lián)系的方法
2、數(shù)據(jù)模型的種類
層次模型:通過(guò)樹型結(jié)構(gòu)來(lái)反映實(shí)體與實(shí)體間聯(lián)系的方法,適宜于反映實(shí)體之間1:n的關(guān)系;
網(wǎng)狀模型:通過(guò)網(wǎng)狀結(jié)構(gòu)來(lái)反映實(shí)體與實(shí)體間聯(lián)系的方法,適宜于反映實(shí)體之間m:n的關(guān)系;
關(guān)系模型:
用二維表格的結(jié)構(gòu)形式來(lái)表示實(shí)體及實(shí)體間的聯(lián)系。
1.2關(guān)系數(shù)據(jù)庫(kù)
121關(guān)系模型
用二金表的形式表示實(shí)體及實(shí)體間的聯(lián)
系的數(shù)據(jù)模型稱關(guān)系數(shù)據(jù)模型。
一、關(guān)系術(shù)語(yǔ)
1、關(guān)系:一個(gè)關(guān)系就是一張二維表,每個(gè)關(guān)系有一個(gè)關(guān)系名。在VisualFoxPro中,一個(gè)
關(guān)系就是一個(gè)表文件。
2、屬性:二維表中垂直方向的列稱為屬性,
在VisualFoxPro中叫字段。
3、域:屬性的取值范圍。
4、元組:二維表中水平方向的行稱為元組,
在VisualFoxPro中叫記錄。
5、關(guān)鍵字:屬性或?qū)傩缘慕M合,其值能唯一標(biāo)識(shí)一個(gè)元組,分主關(guān)鍵字和候選關(guān)鍵字.
6、外部關(guān)鍵字:如果一個(gè)字段不是本表的主字或候選關(guān)鍵字,而是另外一個(gè)表的主關(guān)字或候選關(guān)鍵字,
則此字段(屬性)為外部關(guān)鍵字。
總結(jié).
1、關(guān)系是元組(或?qū)嶓w)的集合,對(duì)應(yīng)VFP中的表。
2、關(guān)系模式:實(shí)體屬性的集合,對(duì)應(yīng)表記錄的屬性。
3、元組:屬性值的集合,對(duì)應(yīng)VFP中的記錄。
4、關(guān)系模型:若干個(gè)相互聯(lián)系的關(guān)系模式的集合,在VFP中對(duì)應(yīng)數(shù)據(jù)庫(kù)。
1.2.2關(guān)系運(yùn)算
一、傳統(tǒng)的集合運(yùn)算
1、并:指由屬于兩個(gè)關(guān)系R,S元組組成的集合。
2、差:指屬于關(guān)系R但不屬于關(guān)系S的元組組成的集合,
即差運(yùn)算的結(jié)果是從R中去掉S中也有的元組。
3、交:由即屬于關(guān)系R又屬于關(guān)系S的元組組成的集合,即交運(yùn)算的結(jié)果是R和S的共同元組。
注:以上運(yùn)算均要求兩個(gè)關(guān)系R,S必須具有相同的實(shí)型體,即屬性集合要相同。
二、專門的關(guān)系運(yùn)算
關(guān)系運(yùn)算的操作對(duì)象是關(guān)系,運(yùn)算的結(jié)果仍為關(guān)系。
1、選擇
從關(guān)系中找出滿足給定條件的元組組成新的關(guān)系。
也就是說(shuō),選擇運(yùn)算是在二維表中選擇滿足指定條件的行。
例:在Student(學(xué)生基本情況)表中,若要找出所有女學(xué)生的元組,
就可以使用選擇運(yùn)算來(lái)實(shí)現(xiàn),條件是:Sex="女
2、投影
從在關(guān)系中指定若干個(gè)屬性組成新的關(guān)系。
投影是從列的角度進(jìn)行運(yùn)算,相當(dāng)于對(duì)關(guān)系進(jìn)行垂直運(yùn)算。
3、聯(lián)接
聯(lián)接運(yùn)算是將兩個(gè)關(guān)系模式拼接成一個(gè)更寬的關(guān)系模式,生成的新關(guān)系中滿足聯(lián)接條件的所有元組。(聯(lián)
接是關(guān)系的橫向結(jié)合)
聯(lián)接過(guò)程通過(guò)聯(lián)接條件來(lái)控制,聯(lián)接條件中將出現(xiàn)兩個(gè)表中的公共屬性名。
自然聯(lián)接
第二章:表的創(chuàng)建及常用命
VisualFoxPro6.0是一個(gè)32位數(shù)據(jù)庫(kù)開發(fā)系統(tǒng)
一、表的創(chuàng)建
表的組成:表由表結(jié)構(gòu)和表中數(shù)據(jù)組成
建立數(shù)據(jù)庫(kù)表(.dbf)即表結(jié)構(gòu)的四種方法:
(1)、通過(guò)項(xiàng)目管理器
(2)、通過(guò)“新建”菜單
(3)、通過(guò)數(shù)據(jù)庫(kù)設(shè)計(jì)器
(4)、通過(guò)命令方式
Create[TabieName]
eg:create學(xué)生表.dbf
eg:ceratexs.dbf
1、Null
在表設(shè)計(jì)器中,Null用于表示字段值是否允許為空,Null在此表示的是缺值或無(wú)確定的值,即中
數(shù)據(jù)庫(kù)中尚未存儲(chǔ)數(shù)據(jù)的字段,它與空字符串,數(shù)值0等含義不同。
二、修改表結(jié)構(gòu),啟用表單設(shè)計(jì)器
modifystructure
三、給當(dāng)前表追加新記錄
append命令或ctrl+y
命令格式
Append[Blank]
功能:該命令用于向當(dāng)前表末尾添加空記錄或以交互式填寫記錄。
命令說(shuō)明
(1)、Blank子句用于在表尾添中空記錄,若省略Blank參數(shù),則進(jìn)入記錄編輯對(duì)話框以交互式輸入記
錄。
(2)、若添加的是空記錄,要向表中輸入數(shù)據(jù),則還需用Edit,Change或Browse等命令來(lái)實(shí)現(xiàn)。
eg:use學(xué)生表
append
****四、補(bǔ)充四個(gè)標(biāo)識(shí)符
(1)、Bof(文件頭):BeginningOfFile具體的位置是最上面那一條記錄的上面。
(2)、Top(頂端):最上面的那條記錄,并不等同于1號(hào)記錄。
(3)、Eof(文件尾):EndOfFile最下面的那條記錄的下面。
(4)、Bottom最下面那條記錄,不一定是記錄號(hào)最大的記錄。
網(wǎng)學(xué)生表口回區(qū)I
BOF?姓名性別1大學(xué)英語(yǔ)1計(jì)算機(jī)1高數(shù)1
TOP?1001張三男80.508010
1002王小丫女60.0010080
1003李四女25.005060
1004張三豐男98.005010
BOTTOM—?1005王五丁80.009013
?
EOFy
五、三個(gè)常用函數(shù)
(1)、RecnoO測(cè)試當(dāng)前記錄的記錄號(hào),結(jié)果為N型。
(2)、Bof()測(cè)試當(dāng)前記錄指針是否指向BOF,結(jié)果為L(zhǎng)型。
(3)、Eof()測(cè)試當(dāng)前記錄指針是否指向EOF,結(jié)果為L(zhǎng)型。
六、go(或got。)指針的絕對(duì)定位。
eg:goN/Top/BottomoN是代表記錄號(hào)。
七、skip
?skip]
功能:以當(dāng)前記錄作為參考點(diǎn),向下或向上移動(dòng)指針。其中N是代表移動(dòng)的記錄數(shù)。
八:displaylist
格式:display[范圍]for表達(dá)式,如果沒(méi)的for表達(dá)式,表示范圍為顯示當(dāng)前記錄。
補(bǔ)充:VFP中的四個(gè)范圍
(1)All表示全部記錄,All與當(dāng)前的記錄無(wú)關(guān)。
(2)NextN
N代表的記錄數(shù),
表示從當(dāng)前記錄開始往下數(shù),總共有N條記錄,包括當(dāng)前記錄。
如:use學(xué)生表
go3
display
displayall
go2
displaynext2
(3)RecordN表示記錄為N那條記錄。與當(dāng)前記錄無(wú)關(guān)。
如:go2
displayrecord3注:顯示3號(hào)記錄
(4)Rest表示從當(dāng)前記錄開始,
往下到最后一條記錄,包括當(dāng)前記錄。
如:go2
displayrest(顯示的是:2、3、4條記錄)
八、list
格式:list[范圍]for表達(dá)式
功能:顯示記錄所有記錄
如:usexs
go2
list
?recno()2
九、使用Browse命令瀏覽記錄
命令格式
Browse
命令功能
該命令用于打開瀏覽窗口以瀏覽表中的記錄。
【例】假設(shè)已建立一個(gè)Student表,則要瀏覽Student表中的內(nèi)容,可采用如下命令:
UseStudent
Browse
十、insert命令
格式:Blank[Before][Blank]
功能:在表的任意位置插入一條記錄
說(shuō)明:
(1)、Before子句用于在當(dāng)前記錄前插入新記錄,缺省則在當(dāng)前記錄之后插入新記錄.
(2)、Blank子句用于插入空記錄,若缺省則出現(xiàn)記錄編輯對(duì)話框
(3)、若添加的是空記錄,則要向表中輸入數(shù)據(jù),還需用Edit,Change或Browse等命令來(lái)實(shí)現(xiàn)。
VFP中記錄的刪除要經(jīng)歷兩步:
(1)邏輯刪除,即先在要?jiǎng)h除的記錄上加刪除標(biāo)記;
(2)物理刪除,即用Pack命令將帶有刪除標(biāo)記的所有記錄從表中物理刪除。
VFP提供了三種刪除記錄的命令:
Delete(邏輯刪除即置刪除標(biāo)記)。
Pack(物理刪除)命令以及Zap(全部刪除)命令。另外,VFP也提供了對(duì)已標(biāo)記刪除標(biāo)記的記錄進(jìn)
行恢復(fù)的Recall命令。
H一、置刪除標(biāo)記Delete命令
邏輯刪除指在滿足條件的記錄上打上刪除標(biāo)記"*",并不真正將其從表中刪除。
格式:Delete[For1Expressionl]pack
功能:對(duì)當(dāng)前表上滿足條件的所有記錄加上刪除標(biāo)記"*
說(shuō)明:
For子句用于將滿足條件的所有記錄加上刪除標(biāo)圮,若缺省,則在當(dāng)前記錄置刪除標(biāo)記。
【例】若要邏輯刪除Student表中的第3條記錄,那么可以使用如下命令:
UseStudent
Go3
Delete
【例】若要邏輯刪除Student表中的所有的男生記錄,那么可以使用如下命令:
Use學(xué)生表
DeleteFor性別=“男”
十二、恢復(fù)記錄Recall命令
格式:Recall[ForlExpressionl]
功能:用于對(duì)已做了刪除標(biāo)記的記錄進(jìn)行恢復(fù)操作,即撤消記錄上的刪除標(biāo)記“
說(shuō)明:
For子句用于恢復(fù)所有滿足條件的記錄,若缺省則只恢復(fù)當(dāng)前記錄。若當(dāng)前記錄上無(wú)刪除標(biāo)記,則
什么都不做。
例:恢復(fù)當(dāng)前表中已經(jīng)刪除的女生記錄
RecallFor性別="女”
十三、物理刪除所有帶有刪除標(biāo)記的記錄Pack命令
格式:Pack
功能:對(duì)當(dāng)前表中所有已做了刪除標(biāo)記的記錄進(jìn)行物理刪除操作。
十四、物理刪除表中的所有記錄Zap命令
格式:Zap
功能:物理刪除當(dāng)前表中所有記錄,不管是否帶有刪除標(biāo)記。
說(shuō)明:
(1)、該命令只刪除表中的記錄,并不刪除表的結(jié)構(gòu)。
(2)、該命令等同于Delete和Pack兩條命令的組合。
(3)、該命令刪除時(shí)全部刪除,而不管記錄上是否帶有刪除標(biāo)記。
十五、Copyto
格式:Copy[范圍]To新表名For表達(dá)式Fields字段名列表。
功能:將當(dāng)前表中指定范圍內(nèi)滿足For表達(dá)式的記錄復(fù)制生成新的表文件。其中新的表文件所包含的
字段由Fields后面的字段列表決定。
例如:
Usexs
Copytoj:\student.dbf
Copytoj:\student.dbffields學(xué)號(hào),姓名
Usexs
Go2
DeleteNext2
Copytoj:\xsl.dbffordelete()
十六、Copystructureto
格式:Copystructureto表文件fields字段名表
功能:將當(dāng)前表的結(jié)構(gòu)復(fù)制生成新的表文件,生成的表是一個(gè)空表。
例如:
usexs
list
copystructuretonew.dbf
usenew
liststructure
modifystructure
注:第十五和十六條命令的to后面必須是一個(gè)新的文件或是一個(gè)處于關(guān)閉狀態(tài)下的表文件,如果是一
個(gè)處于打開的狀態(tài)下的表文件,則系統(tǒng)將會(huì)出現(xiàn)”文件正在使用“
closeall
十七、copystructureto結(jié)構(gòu)描術(shù)文件extended
功能:將當(dāng)前表文件的結(jié)構(gòu)生成一個(gè)結(jié)構(gòu)描術(shù)文件。結(jié)構(gòu)描術(shù)文件也是一個(gè)表文件,只是它的結(jié)構(gòu)是由
VFP自動(dòng)設(shè)置的。
例如:
usexs
copystructuretonewlextended
usenewl
liststructure
*十八、AppendFrom
格式:AppendFrom表文件for表達(dá)式
或AppendFromarray數(shù)組名for表達(dá)式
功能:將另一個(gè)表中滿足for表達(dá)式的記錄追加到當(dāng)前表中,或者將一個(gè)數(shù)組中滿足for表達(dá)式的數(shù)
據(jù)添加到當(dāng)前表。
例如
1、先打開表
useaa
2、使用appendfrom
Appendfromxs.dbf
則將xs.dbf中所有的記錄添加到aa.dbf的后面。
十九、Clear清屏作用
第三章:VFP基礎(chǔ)知識(shí)
3.1常量和變量
據(jù)計(jì)算機(jī)處理數(shù)據(jù)的形式來(lái)劃分,VFP除表中的數(shù)據(jù)外,還有常量,變量,表達(dá)式,函數(shù)四種
形式的數(shù)據(jù),而對(duì)于每一種數(shù)據(jù)來(lái)說(shuō),都有一定的類型,數(shù)據(jù)類型決定了數(shù)據(jù)的存儲(chǔ)方式和運(yùn)算方
式。
對(duì)一個(gè)表中的數(shù)據(jù),其類型是在定義表的結(jié)構(gòu)時(shí)定義的。常見的數(shù)據(jù)類型有:
1、字符型2、數(shù)值型3、貨幣型
4、日期型5、日期時(shí)間型6、邏輯型(L)
3.1.1常量
1、常量:指程序運(yùn)行期間其值不變的量,其類型主要有以下六種:
(1)字符型常量:
用定界符(單引號(hào)',、雙引號(hào)”“和方括號(hào)[])括起來(lái)的字符串。
(示例:"ade”<568,[book]“<book,的中文意思是,書,?!?
注意:
定界符不作為字符型常量本身,但它規(guī)定了常量的類型以及常量的起始與終止界限
字符型常量的定界符必須成對(duì)匹配(例:"myname,,[bcde”兩個(gè)表示均錯(cuò)]
若某種定界符也是字符串本身的內(nèi)容,則需要用另一種定界符作為該字符串的定界符.(例:
“'abed",[“abc[ned]”])
不包含任何字符的字符串(”“)叫空串,它與包含空格的字符串(”“)不同
(2)數(shù)值型常量:用來(lái)表示一個(gè)數(shù)量的大小
構(gòu)成:由數(shù)字,負(fù)號(hào),小數(shù)點(diǎn)構(gòu)成.
表示形式:一般:538,-10.5
科學(xué)記數(shù)法:56E-12,34E4,-1.05E+20
(3)貨幣型常量:用來(lái)表示貨幣值,書寫時(shí)應(yīng)加前導(dǎo)符"$"
注:貨幣型常量無(wú)科學(xué)記數(shù)表示法,其處理和運(yùn)算時(shí)采用4位小數(shù),如果一個(gè)貨幣型常量多于4位小數(shù),
則系統(tǒng)會(huì)自動(dòng)將多余的小數(shù)四舍五入。
例:$123.45678將存儲(chǔ)為$123.4568(超過(guò)4位自動(dòng)四舍五入)
例:S332E12(錯(cuò)誤)$435(正確)
(4)日期型常量:表示一個(gè)確切的日期,
「花括號(hào)作為}定界符,分隔符為斜杠(/),連字符(-)或空格中任一種,默認(rèn)為斜杠(/)。12-22-1980
影響日期格式的命令:
(l)SETMARKTO[日期分隔符]
功能:設(shè)置日期的分隔符
分隔符可設(shè)置為“/“,“,缺省時(shí)系統(tǒng)統(tǒng)默認(rèn)為斜杠
(2)SETDATE[TO]AMERICAN|ANSI|YMD等
功能:設(shè)置日期的的顯示格式,默認(rèn)為美國(guó)格式
(3)SETCENTURYON/OFF
功能:設(shè)置日期型數(shù)據(jù)顯示時(shí)年份以2位還是以4位顯示。
(4)SETSTRICTDATETO[0/1/2]
功能:用設(shè)置是否對(duì)日期格式進(jìn)行檢查
0表示不進(jìn)行嚴(yán)格日期格式檢查,與早期FoxPro兼容
1表示進(jìn)行嚴(yán)格日期格式檢查,系統(tǒng)默認(rèn)
2表示進(jìn)行嚴(yán)格日期格式檢查,且對(duì)CTOD()和CDOT()函數(shù)也有效。
(5)邏輯型常量:只有邏輯真或邏輯假兩個(gè)值,用句點(diǎn)(??)來(lái)作定界符
邏輯真的表示形式有:.「,.t.,.Y.,.y.
邏輯假的表示形式有:.F.,.f.,.N.,.n.
(示例:.t..T..f..F..Y..N..y..n.)
注:邏輯型常量的定界符不能省略
3.1.2變量
變量:在使用過(guò)程中其值可以改變的量。分為字段變量、內(nèi)存變量?jī)纱箢?/p>
1、字段變量
2、內(nèi)存變量
(1)、內(nèi)存變量:它是內(nèi)存中的一個(gè)區(qū)域,其值就是存儲(chǔ)于該區(qū)域里的數(shù)據(jù),它常用來(lái)存儲(chǔ)常數(shù)、中間
結(jié)果或最終結(jié)果。
(2)、內(nèi)存變量的類型包括:
字符型(C),貨幣型(Y),
日期型(D),日期時(shí)間型(T),
數(shù)據(jù)型(N),邏輯型(L)六種.
(3)、當(dāng)內(nèi)存變量名與字段變量名同名時(shí),字段名優(yōu)先于內(nèi)存變量名,若確實(shí)要使用內(nèi)存變量,則可在
其前加上”乂->或(M.)”以示訪問(wèn)的是內(nèi)存變量,而非字段變量。
3.1.3內(nèi)存變量常用命令
一、內(nèi)存變量的賦值
格式1:
STORE(表達(dá)式)T0
store〈變量名列表或數(shù)組名列表》
功能:將表達(dá)式的值賦給一個(gè)或多個(gè)內(nèi)存變量.
格式2:
內(nèi)存變量名*表達(dá)式>
格式2只能給一個(gè)變量賦值,而格式1可給多個(gè)內(nèi)存變量或數(shù)組賦值。
【例如】
store3*4toal,a2,a3,a4,a5則al,a2值均為12
【例如】
bl=3將bl賦值3;
b2=bl+2將bl加2后的值賦給b2,此時(shí)b2等于5;
b2=b2+3將b2加3后的值再賦給b2,此時(shí)b2等于8。
說(shuō)明:
一個(gè)變量的值可以不斷變化,最終結(jié)果是它最后一次的賦值,在此,”="不是等于運(yùn)算符,而賦值運(yùn)算
符。
2、表達(dá)式值的顯示
?
??
3、顯示內(nèi)存變量
格式:
LIST/DISPLAYMEMORY[LIKE〈通配符>][TOPRINTER/TOFILE<文件名>]
說(shuō)明:
◎通配符指"?“和“
?:表示任意的一個(gè)字符。
*:表示任意多個(gè)字符。
like短語(yǔ)用于顯示與通配符匹配的內(nèi)存變量
list和display區(qū)別為:
4、釋放內(nèi)存變量
格式1:RELEASE〈內(nèi)存變量名表》
格式2:RELEASEALL[LIKE〈通配符>/EXCEPT〈通配符》]
格式3:RELEASEALL[EXTEND]
格式4:CLEARMEMORY
說(shuō)明:
(1)、格式1用釋放指定的內(nèi)存變量。
(2)、格式2:選用LIKE短語(yǔ)用于清除與通配符本匹配的內(nèi)存變量,若選用EXCEPT短語(yǔ),用于清除與
通配符不相匹配的變量。
(3)、格式3用于清除所有內(nèi)存變量。
(4)、格式4用于在關(guān)閉所有文件的同時(shí)清除所有的內(nèi)存變量。
示例:RELEASEALL
RELEASEX,Y,Z
RELEASEALLLIKEA*
二、數(shù)組
2、數(shù)組的定義
命令格式:
Dimensiondeclare〈數(shù)組名1>(<下標(biāo)上限1>[,<下標(biāo)上限2>])
說(shuō)明
(1)〈下標(biāo)上限》為數(shù)組下標(biāo),對(duì)一維數(shù)組來(lái)說(shuō),指的是數(shù)組元素的個(gè)數(shù);對(duì)二維數(shù)組來(lái)說(shuō),指的是數(shù)組
的最大行號(hào)和最大列號(hào)。
(2)數(shù)組的下標(biāo)允許使用圓括號(hào)或方括號(hào)括起來(lái)。
(3)在同一個(gè)數(shù)組中,不同的數(shù)組元素?cái)?shù)據(jù)類型可以不同。
(4)數(shù)組一旦被定義之后,
該數(shù)組的每個(gè)元素的初值為邏輯假值,
即.F.,可以使用有關(guān)的命令給數(shù)組元素賦值。
(5)數(shù)組應(yīng)先定義,再使用,這與普通的內(nèi)存變量不一樣。
例如:Dimensionaa(3),C[2,3]
二維數(shù)組舉例:
DIMENSIONA(2,3)
A(l,1)=1A(l,2)=2A(l,3)=3
A(2,1)=4A(2,2)=5A(2,3)=6
123
456
?a(l,1)
二維數(shù)組元素的存放:按行存放
例如:給二維數(shù)組X和一維數(shù)組Y進(jìn)行賦值。
DIMENSIONX(3,4),Y(3)
STORE5TOX
Y(1)=325
Y(2)="ABC”
Y(3)=.T.
5、表中數(shù)據(jù)與數(shù)組數(shù)據(jù)之間的交換
(1)、表中的數(shù)據(jù)傳送到數(shù)組的語(yǔ)句
格式1:
SCATTERTO〈數(shù)組名〉
例:DIMEA(9)
USE學(xué)生表.dbf
SCATTOA
?A(l),A(2),A(3)
(2)數(shù)組中的數(shù)據(jù)復(fù)制到表的的當(dāng)前記錄
格式1:
GATHERFROM〈數(shù)組名>[FIELDS〈字段名表>][MEMO]
格式2:
格式1:將數(shù)組中的數(shù)據(jù)作為一個(gè)記錄復(fù)制到表的當(dāng)前記錄中,從第一個(gè)數(shù)組元素開始,依次向指定的
字段填寫數(shù)據(jù)。
例dimeA(3)
STORE“0”TOA
USE學(xué)生表
GATHFROMA
3.2表達(dá)式
1、表達(dá)式是指用運(yùn)算符將常量、變量、字段或函數(shù)連接起來(lái)的有意義的式子。
2、表達(dá)式值:表達(dá)式最終計(jì)算結(jié)果
3、表達(dá)式的類型:由表達(dá)式值的數(shù)據(jù)類型決定,主要有:數(shù)值型、字符型、日期型、關(guān)系型、邏輯型
等。
3.2.1數(shù)值、字符與日期時(shí)間表達(dá)式
1、數(shù)值表達(dá)式
數(shù)值表達(dá)式是由算術(shù)運(yùn)算符將常量、變量、字段或函數(shù)連接起來(lái)的式子,其結(jié)果仍為數(shù)值型數(shù)據(jù)。
(1)、數(shù)值運(yùn)算符:圓括號(hào)()、乘方(**或,)、乘(*)、除(/)、取余(%)、加(+)、減(-)?
(2)、數(shù)值表達(dá)式:由數(shù)值運(yùn)算符將數(shù)值型常量、變量、函數(shù)等連接起來(lái)的式子,其結(jié)果為數(shù)值型。
(3)、運(yùn)算符的優(yōu)先順序:括號(hào)、乘方、乘除與取模、加減。
例:取余運(yùn)算符閭的應(yīng)用。?10%3?-10%3
2、字符表達(dá)式
字符表達(dá)式是由字符運(yùn)算符將常量、變量、字段或函數(shù)連接起來(lái)的式子,其結(jié)果仍為字符型數(shù)據(jù)。
在字符運(yùn)算符兩邊的數(shù)據(jù)必須是字符型數(shù)據(jù)。
(1)字符串運(yùn)算符:+、-、字符串包含運(yùn)算符($)和精確比較運(yùn)算符仁=)o
說(shuō)明:
+:兩個(gè)字符串首尾連接形成新字符串;
-:當(dāng)?shù)谝粋€(gè)字符串的尾部有空格時(shí),
將第一個(gè)字符串尾部的空格移到第二個(gè)字符串的尾部,然后,再將兩個(gè)字符串連接起來(lái)。
【例】?"ABC"+”DEF”="ABCDEF”
?“ABC“DEF”="ABCDEF”
包含運(yùn)算符$:檢測(cè)左邊的字符串是否被包含在右邊的字符串中。
如果包含,返回邏輯真值(」.),否則返回邏輯假值(.F.)。
精確比較運(yùn)算符==:只有當(dāng)兩邊的字符串完全相等時(shí),才返回邏輯真值(.「),反之假(.F.)。
(2)字符表達(dá)式:由字符串運(yùn)算符將字符型常量、變量、函數(shù)等連接起來(lái)的式子。
例:?”abc"+"bed"結(jié)果為“abcbed”
?”abcbed"結(jié)果為"abcbed'
?"book"$"bookstore"結(jié)果為(.T.)
?“the”$"this”結(jié)果為(.F.)
?“that”=="that”結(jié)果為(?「)
?”that“=="that”結(jié)果為(.F.)
3、日期時(shí)間表達(dá)式
(1)日期型運(yùn)算符:(+)、(-)
例如
?{04/03/99,12:30:20}+20結(jié)果為:{04/23/99,12:30:40)
?{04/03/99,12:30:20}-20結(jié)果為:{03/14/99,12:30:00)
?{03/03/99,12:30:20}-{03/3/99,11:30:20}結(jié)果為3600
例如:已知某個(gè)人的出生日期為1979年7月20日,計(jì)算其現(xiàn)在年齡為多少?
(「2008/1/17}-「1979/7/20})/365
注意:
(1)兩個(gè)日期及日期時(shí)間型數(shù)據(jù)的相加是無(wú)意義的。
(2)+和-既可作為日期運(yùn)算符,也可作算術(shù)和字符串運(yùn)算符,而使用時(shí)具體做何種運(yùn)算符受其所連接運(yùn)
算對(duì)象決定。
3.2.2關(guān)系表達(dá)式
(1)關(guān)系運(yùn)算符:小于(<)、大于(>)、等于(=)、不等于(<>、#或!=)、小于等于(<=)、大于等于(>=)。
(2)關(guān)系表達(dá)式:由關(guān)系運(yùn)算符、數(shù)值表達(dá)式、字符表達(dá)式或日期表達(dá)式組合而成的式子,返回結(jié)果為
邏輯型數(shù)據(jù)。
(3)關(guān)系運(yùn)算符的兩邊,可以是字符表達(dá)式、數(shù)值表達(dá)式或者日期表達(dá)式,但兩邊的數(shù)據(jù)類型必須一致
才能進(jìn)行比較。
(4)=與==不完全相同。前者稱為普通比較,后者稱為精確比較。
當(dāng)環(huán)境設(shè)定為SETEXACTON時(shí),二者有一定區(qū)別;當(dāng)環(huán)境設(shè)定為SETEXACTOFF時(shí),結(jié)果是不同的。
比較時(shí),使用右字符串去比較左字符串。當(dāng)右字符串比較完,則比較結(jié)束。如果此時(shí)的比較結(jié)果相同,
則=比較的值為.「,而不管左字符串是否結(jié)束;相反,==則要求左右必須完全一致,結(jié)果才為.T.。
【例】?”abede”=“abc”
當(dāng)設(shè)置了SETEXACTOFF時(shí),上述關(guān)系表達(dá)式結(jié)果為.T.
當(dāng)設(shè)置了SETEXACTON時(shí),上述關(guān)系表達(dá)式結(jié)果為.F.
(5)比較大小時(shí),
日期早的日期型數(shù)據(jù)小于日期晚的日期型數(shù)據(jù);
越早的越小,越晚的越大
如:{*2000-06-11}>{*2008-12-15}
(6)字符型數(shù)據(jù)比較時(shí)從左到右逐個(gè)比較,當(dāng)某個(gè)字符不一樣時(shí),則兩個(gè)不同字符的大小決定兩個(gè)字符
串的大小,字符的大小受命令設(shè)置影響.
例:?"abc”>“ab”結(jié)果為(.T.)
(7)字符串包含運(yùn)算符"$”用于比較左字符串是否存在于右字符串中,如果存在,則為.T.,反之為.F.。
(8)比較貨幣或數(shù)值時(shí),按數(shù)值及貨幣的大小比較
例:?$564>$234結(jié)果為(.T.)
例:?“王”$"王紅”結(jié)果為.T.
1、字符排序次序的設(shè)置
當(dāng)比兩個(gè)字符串時(shí),系統(tǒng)對(duì)兩個(gè)字符串的字符自左向右逐個(gè)進(jìn)行比較,一旦發(fā)現(xiàn)兩個(gè)對(duì)應(yīng)的字符不
同,則根據(jù)這兩個(gè)字符的排列次序決定兩個(gè)字符串的大小,其字符的排列次序(即字符的大?。┦茉O(shè)置命
令的影響,其命令設(shè)置方法:
(1)在“工具”菜單下選擇"選項(xiàng)“,打開”選項(xiàng)對(duì)話框,選擇其中的”數(shù)據(jù)選項(xiàng)卡,再選擇右上方的”
排列序列''下列框中選擇"Machine(機(jī)器)","PinYin(拼音)”,或者"Stroke(筆畫)”
(2)命令設(shè)置方式
命令:SETCOLLATETO“〈排序次序名>“
次序名可以是:"Machine","PinYin”,或"Stroke”
(3)字符的排列次序
Machine(機(jī)器)次序:西文字符按照ASCII碼值排列,空格在最前面,大寫ABCD字母序列在小寫abed
字母序列的前面,因此大寫字母小于小寫字母;對(duì)于漢字,據(jù)它們的拼音順序決定其大小,其拼音第一
個(gè)字母在后的值大.
例:?"計(jì)算機(jī)”>“電腦”結(jié)果為(.T.)
?"a”<“A”結(jié)果為(.F.)
PinYin(拼音)次序:按照拼音次序排序,對(duì)于西文字符,空格在最前面,小寫abed字母序列在前,大
寫ABCD字母序列在后,即大寫字母大于小寫字母。
Stroke(筆畫)次序:中文按照書寫筆畫的多少排序;對(duì)于西文與拼音方式相同。
3.2.3邏輯表達(dá)式
邏輯表達(dá)式是由邏輯運(yùn)算符將關(guān)系表達(dá)式連接起來(lái)的表達(dá)式,結(jié)果為邏輯真和邏輯假。
邏輯運(yùn)算符有:.NOT(非).、.AND(與).和.OR(或)…
優(yōu)先級(jí)別:.NOT.、.AND.、.OR.。
運(yùn)算規(guī)則為:
注意點(diǎn)總結(jié):
And邏輯與遇假則假
Or邏輯或遇真則真
not或!邏輯非真假互換
【例】已知某28歲女職工工資為600元
?NOT.(性別=“女”)結(jié)果為.F.
?性別="女”.AND.年齡>=28結(jié)果為.T.
?性別="男”.AND.年齡>=28結(jié)果為.F.
?性別=“女”.OR.年齡<28結(jié)果為.T.
3.2.4運(yùn)算符的優(yōu)先級(jí)
同一類運(yùn)算符可同時(shí)出現(xiàn)在一個(gè)表達(dá)式中,其運(yùn)算具有優(yōu)先級(jí),而對(duì)不同類型的運(yùn)算符也有可能出
現(xiàn)于同一表達(dá)式,此時(shí)也要據(jù)它們的優(yōu)先級(jí)順序來(lái)決定表達(dá)式的運(yùn)算順序.
不同類型運(yùn)算符在同一表達(dá)式中的運(yùn)算符優(yōu)先級(jí)順序?yàn)椋?/p>
1、算術(shù)運(yùn)算符:(),**或八,*/%,+-
2、字符串運(yùn)算符和日期時(shí)間運(yùn)算符:+-
3、關(guān)系運(yùn)算符
4、邏輯運(yùn)算符:NOT,AND,OR
例:12>2.AND.,人,<,人民,.OR..T.<.F.
先判數(shù)12>2,再判斷‘人'<'人民',再運(yùn)算AND,之后再運(yùn)算.T.<.F.,最后運(yùn)算0R.
例:((10%3)AND(15%2=0))OR,電腦,!=,計(jì)算機(jī),
3.3常用函數(shù)
函數(shù)是用程序來(lái)實(shí)現(xiàn)的一種數(shù)據(jù)運(yùn)算或轉(zhuǎn)換,每一個(gè)函數(shù)都有特定的數(shù)據(jù)運(yùn)算或轉(zhuǎn)換功能,它往往
需要若干個(gè)自變量,即運(yùn)算對(duì)象或參數(shù),但函數(shù)只能有一個(gè)返回值,稱為函數(shù)值或返回值,函數(shù)值的類
型決定了函數(shù)的類型,其常見類型有:
函數(shù)的格式:函數(shù)名(參數(shù)1,參數(shù)2)
3.3.1數(shù)值型函數(shù)
(IX絕對(duì)值函數(shù)
格式:ABS(〈數(shù)值表達(dá)式〉)
功能:返回?cái)?shù)值表達(dá)式的絕對(duì)值。
【例】?ABS(-12.34)結(jié)果為12.34
(2)、最大值函數(shù)
格式:MAX(〈數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)
功能:計(jì)算各數(shù)值表達(dá)式的值并返回最大值。
【例】?MAX(5*4,60/2)結(jié)果為30
(3)、最小值函數(shù)
格式:MIN(〈數(shù)值表達(dá)式1>,(數(shù)值表達(dá)式2>)
功能:計(jì)算數(shù)值表達(dá)式的值,返回最小值。
(4)、平方根函數(shù)
格式:SQRT(〈數(shù)值表達(dá)式〉)255
功能:計(jì)算數(shù)值表達(dá)式的平方根。
注:其自變量表達(dá)式不能為負(fù)
【例】?SQRT(25*4)結(jié)果為10
?-SQRT(ABS(zz))
(5)、取整函數(shù)
格式:INT(〈數(shù)值表達(dá)式》)
CEILING(〈數(shù)值表達(dá)式》)
FLOOR(〈數(shù)值表達(dá)式》)
功能:
INTO返回?cái)?shù)值表達(dá)式的整數(shù)部分.
【例】?INT(-4.68)結(jié)果為-4
****(6)四舍五入函數(shù)
格式:ROUND(〈數(shù)值表達(dá)式),〈保留小數(shù)位數(shù)》)
功能:返回指定數(shù)值表達(dá)式指定位置后的結(jié)果。
說(shuō)明:如果保留小數(shù)位數(shù)為正數(shù)n,
則對(duì)小數(shù)位進(jìn)行四舍五入,
如果保留小數(shù)位數(shù)為負(fù)數(shù)n,
則對(duì)整數(shù)位進(jìn)行四舍五入.
第0位指整數(shù)部分的第一位數(shù)即個(gè)位
【例】?ROUND(123.34567,3)結(jié)果為123.346
?ROUND(753.34567,-3)結(jié)果為1000
(7)圓周率函數(shù)
格式:PI()
功能:返回圓周率(數(shù)值型),無(wú)自變量
(8)求余函數(shù)(與%等同)
格式:MOD(〈數(shù)值表達(dá)式1>,<數(shù)值表達(dá)式2>)
功能:
返回兩個(gè)數(shù)相除后的余數(shù).3%5
〈數(shù)值表達(dá)式1》為被除數(shù),
〈數(shù)值表達(dá)式2>為除數(shù),
余數(shù)的符號(hào)與被除數(shù)相同,
如果被除數(shù)與除數(shù)同號(hào),
則函數(shù)值即為兩數(shù)相除的余數(shù);
若被除數(shù)與除數(shù)異號(hào),
則函數(shù)值為兩數(shù)相除的余數(shù)再加上除數(shù)的值.
例:
?MOD(1O,3),MOD(10,-3),MOD(-10,3),MOD(-10,-3)
則結(jié)果為:1-22-1
注:首先將除數(shù)和被除數(shù)的符號(hào)忽略進(jìn)行求余運(yùn)算,得到X=L
再將X的符號(hào)定為被除數(shù)的符號(hào),得到Y(jié)=T。
由于除數(shù)和被除數(shù)是異號(hào),所以結(jié)果是:Y+除數(shù)=-1+3=2。
mod(15,-4)=-l3+(-4)15-12=3+(-4)=-1
mod(-15,4)=1-3+4-15+12=-3+4=l
1、滿足MOD(X,2)=0這個(gè)表達(dá)式時(shí),說(shuō)明X是一個(gè)偶數(shù)。
2、滿足MOD(X,2)=1這個(gè)表達(dá)式時(shí),說(shuō)明X是一個(gè)奇數(shù)。
3、MOD(X,5)=0
如下數(shù)列請(qǐng)描術(shù)它的通項(xiàng)公式。
(1)1、9、17、25、33...
(2)3、7、11、19、23...
MOD(X,8)=1或MOD((X-1),8)=0
MOD(X,4)=3或MOD((X+l),4)=0
3.3.2字符型函數(shù)
字符型函數(shù)主要對(duì)字符型數(shù)據(jù)進(jìn)行運(yùn)算。
(IX求子串位置函數(shù)
格式:
AT(〈字符表達(dá)式1>,〈字符表達(dá)式2>,[<數(shù)值表達(dá)式n>])
ATC(〈字符表達(dá)式1>,〈字符表達(dá)式2>,[<數(shù)值表達(dá)式n>])
功能:
著找〈字符表達(dá)式1>在〈字符表達(dá)式2>中的起始位置。如果有<數(shù)值表達(dá)式n>,則確定〈字符型表達(dá)
式1>在<字符型表達(dá)式2>中的第n次出現(xiàn)的起始位置,若缺省〈數(shù)值表達(dá)式n>默認(rèn)為1;如果字符表達(dá)
式1不是字符表達(dá)式2的子串,則返回為0。
結(jié)
為
界H
T0
【例】?AT(“A”,"BCDE”)K
結(jié)
為
劣m1
?AT("A","ABADE”)/l
結(jié)
為
身n4
?AT(“A”,"ABCADE”,2)=T
ATC函數(shù)不區(qū)分大小寫
?ATC("a","ABCDA”,1)
(2)、截取子串函數(shù)
*****格式:SUBSTR(〈字符表達(dá)式》,〈起始位置>,[<長(zhǎng)度>])
功能:從指定的〈起始位置》開始,在〈字符表達(dá)式》中截取指定〈長(zhǎng)度》的字符串。
說(shuō)明:假設(shè)起始位置為m,長(zhǎng)度為n。若省略n,則從m開始截取以后的所有字符串;若n大于從m開
始的字符串長(zhǎng)度,則從m開始截取以后的所有字符串;若m大于字符表達(dá)式的長(zhǎng)度,則截取的字符串為
空白字符串。
【例】
?SUBSTR(“HARDWORK”,3,4)結(jié)果為“RDWO”
?SUBSTR(“HARDWORK”,2)結(jié)果為“ARDWORK”
?SUBSTR(“HARDWORK”,3,9)結(jié)果為“RDWORK”
?SUBSTR(“HARDWORK”,9,5)結(jié)果為““
(3)、左截取子串函數(shù)
格式:LEFT(〈字符表達(dá)式>,〈數(shù)值表達(dá)式》)
功能:從字符表達(dá)式左邊開始,截取〈數(shù)值表達(dá)式>指定長(zhǎng)度的字符串。
【例】
?LEFT("HARDWORK",3)'結(jié)果為“HAR”
(4)、右截取子串函數(shù)
格式:RIGHT(〈字符表達(dá)式>,〈數(shù)值表達(dá)式》)
功能:從字符表達(dá)式右邊開始向左截取〈數(shù)值表達(dá)式)指定長(zhǎng)度的字符串o
【例】
?RIGHT(“HARDWORK”,3),結(jié)果為“ORK”
(5)、生成空字符串函數(shù)
格式:SPACE(〈數(shù)值表達(dá)式》)
功能:生成指定空格數(shù)的空字符串。
【例】?SPACE(3)'結(jié)果為““
(6)、字符串長(zhǎng)度函數(shù)
格式:LEN(〈字符表達(dá)式》)
功能:求字符串的長(zhǎng)度(包括空格)。
【例】?LEN("howareyou")11
'結(jié)果為11
?Len(space(3)-space(6))
(7)、字符串替換函數(shù)
格式:
***STUFF(〈字符表達(dá)式1>,〈起始位置〉,〈長(zhǎng)度〉,〈字符表達(dá)式2〉)
功能:從指定的起始位置開始,用字符表達(dá)式2替換字符表達(dá)式1中指定個(gè)數(shù)的子串。
說(shuō)明:替換與被替換的字符個(gè)數(shù)不一定相等;若長(zhǎng)度為0,則將〈字符表達(dá)式2>插入到字符表達(dá)式1中;
若〈字符表達(dá)式2>為空,則指定長(zhǎng)度的字符串被刪除.
【例】7STUFF(wcomputerw,3,4,“abc”)'結(jié)果為"coabcer”
?STUFF("computer”,3,1,“abc”)'結(jié)果為"coabcputer”
?STUFF("computer”,3,4,”“)‘結(jié)果為“coer”
(8)、刪除前后空格函數(shù)
格式:TRIM(〈字符表達(dá)式》)
LTRIM(〈字符表達(dá)式》)
ALLLTRIM(〈字符表達(dá)式))
功能:
TRIM。返回指字符表達(dá)式值去掉尾部空格后形成的字符串
LTRIM0返回指字符表達(dá)式值去掉前導(dǎo)空格后形成的字符串
ALLTRIM()返回指字符表達(dá)式值去掉前導(dǎo)和尾部空格后形成的字符串
例:
STORESPACE(1)+“TEST'+SPACE(3)TOSS
?TRIM(SS)+LTRIM(SS)+ALLTRIM(SS)
結(jié)果為:”TESTTESTTEST”
?LEN(SS),LEN(TRIM(SS)),LEN(LTRIM(SS)),LEN(ALLTRIM(SS))
結(jié)果為:8574
(9)、計(jì)算子串出現(xiàn)次數(shù)函數(shù)
格式:OCCUS(〈字符表達(dá)式1>,<字符表達(dá)式2>)
功能:
返回第一個(gè)字符串在第二個(gè)字符串中出現(xiàn)的次數(shù),若第一個(gè)字符串不是第二個(gè)字符串的子串,則返
回0.
例:STORE'abracadabra'TOS
?OCCUS('a',S),OCCUS('b',S),OCCUS('c',S),OCCUS('e',S)
結(jié)果為:5210
(口)、字符串匹配函數(shù)(等同于==)
格式:LIKE(〈字符串表達(dá)式1》,〈字符串表達(dá)式2>)
功能:
比較兩個(gè)字符串對(duì)應(yīng)位置上的字符,若所有對(duì)應(yīng)字符都相匹配,函數(shù)返回邏輯真(」.),反之,返
回邏輯假(.F.)
〈字符表達(dá)式1>中可包含有通配符"*“和“?”
例:STORE“abc”TOx
STORE“abed”TOy
?LIKE(“ab”,x),LIKE(“ab*”,y),LIKE("?b”,x),LIKE(“Abe”,x)
結(jié)果為:.F..T..F..F.(大小寫區(qū)分)
(12)、字符替換函數(shù)
格式:Chrtran(〈字符表達(dá)式1>,〈字符表達(dá)式2>,<字符表達(dá)式3>)
功能:
當(dāng)?shù)谝粋€(gè)字符串中的一個(gè)或多個(gè)字符與第二字符串中的某個(gè)字符相匹配時(shí),就用第三個(gè)字符串中的
對(duì)應(yīng)字符(即與第二個(gè)字符串位置對(duì)應(yīng))替換這些字符,若第三個(gè)字符串包含的字符個(gè)數(shù)少于第二個(gè)字符
串包含的字符個(gè)數(shù),即無(wú)對(duì)應(yīng)字符,則第一個(gè)字符串中相匹配的字符被刪除;反之,若多余,則多余字
符被忽略.
例:X1=CHRTRAN(“ABACAD”,“ACD”,“X12”)
CHRTRAN("ABACAD”,“ACD”,“X12”)
CHRTRAN(“XBACAD”,“ACD”,“X12”)
CHRTRAN(“XBXCAD”,“ACD”,“X12”)
CHRTRAN(“XBX1AD”,“ACD”,“X12”)
CHRTRAN(“XBX1X”,“AC”,“XI”)
CHRTRAN(“XBX1X2”,“ACD”,“X12”)
yl=CHRTRAN(“計(jì)算機(jī)ABC”,“計(jì)算機(jī)“,"電腦
Z1=HCRTRAN(“大家好”,“大家”,“你”)
?XI,yl,zl
結(jié)果等于多少?
3.3.3日期函數(shù)
(1)、系統(tǒng)時(shí)間函數(shù)
格式:TIME()
功能:返回當(dāng)前系統(tǒng)時(shí)間。時(shí)間格式為HH:MM:SS
說(shuō)明:此函數(shù)返回值不是日期時(shí)間型,
****而是字符型
【例】?TIME()
(2)、系統(tǒng)日期函數(shù)
格式:DATE()
功能:返回當(dāng)前系統(tǒng)日期,函數(shù)值為日期型
(3)、系統(tǒng)日期時(shí)間
格式:DATETIME()
功能:返回當(dāng)前系統(tǒng)的日期時(shí)間,函數(shù)值為日期時(shí)間型
【例】SETDATETOYMD
?DATE()
'假設(shè)當(dāng)前日期為2001/2/17,那么結(jié)果為01/02/17
(4)、年函數(shù)
格式:YEAR(〈日期型|日期時(shí)間型〉)
功能:輸出日期型表達(dá)式的年份。
【例】?YEAR(DATE())'假設(shè)當(dāng)前日期為2001/2/17,那么結(jié)果為2001。
(5)、月函數(shù)
格式:MONTH(<日期型|日期時(shí)間型》)
功能:輸出日期型表達(dá)式的月份。
【例】?MONTH(DATE())'假設(shè)當(dāng)前日期為2001/2/17,那么結(jié)果為2
(6)、日函數(shù)
格式:DAY(〈日期型|日期時(shí)間型》)
功能:輸出日期型表達(dá)式的日。
【例】?DAY(DATE())'假設(shè)當(dāng)前日期為2001/2/17,那么結(jié)果為17
(7)、時(shí),分,秒函數(shù)
格式:HOUR(〈日期時(shí)間表達(dá)式》)
MINUTE(〈日期時(shí)間表達(dá)式》)
SEC(<日期時(shí)間表達(dá)式〉)
功能:返日期時(shí)間型表達(dá)式的當(dāng)前小時(shí),分鐘和秒數(shù)
注:此三函數(shù)的參數(shù)只能為日期時(shí)間型,而不能是日期型.
3.3.4轉(zhuǎn)換函數(shù)
數(shù)據(jù)的運(yùn)算要求符合數(shù)據(jù)類型一致的原則,因此,若要對(duì)不同類型的數(shù)據(jù)進(jìn)行運(yùn)算,那么必須通過(guò)
轉(zhuǎn)換函數(shù)將其轉(zhuǎn)換為一致的數(shù)據(jù)類型。
(IX數(shù)值型轉(zhuǎn)換為字符型函數(shù)
格式:STR(〈數(shù)值表達(dá)式>[,<長(zhǎng)度>][,<小數(shù)位數(shù)>])
功能:將數(shù)值表達(dá)式按設(shè)定的長(zhǎng)度和小數(shù)位數(shù)轉(zhuǎn)換成字符型數(shù)據(jù)。
說(shuō)明:轉(zhuǎn)換后字符串的理想長(zhǎng)度應(yīng)為L(zhǎng),即剛好等轉(zhuǎn)換后的數(shù)值所有位,包括小數(shù)點(diǎn)及負(fù)號(hào)在內(nèi)。
〈長(zhǎng)度》為轉(zhuǎn)換后的字符串位數(shù),若〈長(zhǎng)度〉的設(shè)定值大于L,則轉(zhuǎn)換后的字符串前補(bǔ)”空格”;若〈長(zhǎng)度》
的設(shè)定值小于L而大于實(shí)際數(shù)值的整數(shù)部分位數(shù),則優(yōu)先滿足整數(shù)部分而自動(dòng)調(diào)整小數(shù)位數(shù);若〈長(zhǎng)度〉
的設(shè)定值小于L又小于實(shí)際數(shù)值的整數(shù)部分位數(shù),則返回一串星號(hào)(*)
【例】?STR(123.4567,6,2)'結(jié)果為123.46
?STR(123.4567,9,2)'結(jié)果為"123.46”
?STR(123.4567,6,3)'結(jié)果為123.46
?STR(123.4567,1,2)'結(jié)果為*
(2)、字符型轉(zhuǎn)換為數(shù)值型函數(shù)
格式:VAL(〈字符型表達(dá)式》)
功能:將數(shù)字字符串轉(zhuǎn)換為數(shù)值。
說(shuō)明:轉(zhuǎn)換時(shí)遇到非數(shù)字字符時(shí)停止;
***若第一個(gè)字符就不是數(shù)字,則值為0.00
【例】VAL("123.45AB")'結(jié)果為123.45
VAL(“A123.45AB”)'結(jié)果為0.00
(3)、字符轉(zhuǎn)換為ASCH函數(shù)
格式:ASC(〈字符型表達(dá)式〉)
功能:返回字符表達(dá)式第一個(gè)字符的ASCH碼值。
【例】ASC(“abc")'結(jié)果為97
(4)、ASCII碼轉(zhuǎn)換為字符函數(shù)
格式:CHR(〈數(shù)值型表達(dá)式》)
功能:將ASCII碼轉(zhuǎn)化為相應(yīng)的字符。
A=65
a=97
0=48
【例】CHR(65)'結(jié)果為A
(5)、日期型或日期時(shí)間型轉(zhuǎn)換為字符型
格式:DTOC(〈日期型表達(dá)式日期時(shí)間型>[,1])
TT0C(〈日期時(shí)間表達(dá)式>[,1])
功能:DT0C將日期型或日期時(shí)間型轉(zhuǎn)換為字符型
功能:TT0C將日期時(shí)間型表達(dá)式轉(zhuǎn)換為字符串。
說(shuō)明:若使用選項(xiàng)LU,則轉(zhuǎn)換為年月日無(wú)分隔符的形式。
【例】?DTOC(DATE())
假設(shè)當(dāng)前日期為2001/2/17,那么結(jié)果為02/17/01
?DTOC(DATE(),1)
假設(shè)當(dāng)前日期為2001/2/17,那么結(jié)果為20010217
(6)、字符型轉(zhuǎn)換為日期型函數(shù)
格式:CTOD(〈字符型表達(dá)式》)
CTOT(〈字符型表達(dá)式》)
功能:CTOD將字符型表達(dá)式轉(zhuǎn)換為日期型。
CTOD將字符型表達(dá)式轉(zhuǎn)換為日期時(shí)間型
說(shuō)明:字符串表達(dá)式的內(nèi)容必須是0-9之間的字符,否則出錯(cuò)
【例】?CTOD(“02/17/64")'結(jié)果為02/17/64
(7)大寫字母轉(zhuǎn)換為小寫字母函數(shù)
格式:LOWER(〈字符型表達(dá)式〉)
功能:將字符型表達(dá)式中的大寫字母轉(zhuǎn)換為小寫字母。
【例】?LOWER(“AaBbCc")'結(jié)果為aabbcc
(8)小寫字母轉(zhuǎn)換為大寫字母函數(shù)
格式:UPPER(〈字符型表達(dá)式》)
功能:將字符型表達(dá)式中的小寫字母轉(zhuǎn)換為大寫字母。
【例】?UPPER(“AaBbCc")'結(jié)果為AABBCC
3.3.5測(cè)試函數(shù)
1、系統(tǒng)對(duì)表的記錄是逐個(gè)處理的,對(duì)于一個(gè)打開的表來(lái)說(shuō),在每一時(shí)刻只能處理一條記錄,VFP為每
一個(gè)打開的表設(shè)置一個(gè)內(nèi)部使用的記錄指針,指向正在被操作的記錄,該記錄稱為當(dāng)前記錄.記錄指針
的作用是標(biāo)識(shí)表的當(dāng)前記錄.
2、表的邏輯結(jié)構(gòu)如圖所示,最上面的記錄是首記錄,記為TOP,最下面的記錄是尾記錄,記為BOTTOM.
在第一個(gè)記錄之前有一個(gè)文件起始標(biāo)識(shí),稱為BeginningofFile(BOF);在最后一個(gè)記錄的后面還有
一個(gè)文件結(jié)束標(biāo)志,稱為EndofFile(EOF).使用測(cè)試函數(shù)能夠得到指針的位置,剛打開表時(shí),記錄
指針總是指向首記錄.
(1)、值域測(cè)試函數(shù)
格式:BETWEEN(〈表達(dá)式T〉,〈表達(dá)式L〉,〈表達(dá)式H>)
功能:判斷〈表達(dá)式T>的值是否在〈表達(dá)式L>與〈表達(dá)式H〉之間,若在,則返回真.T.,反之返回假.F>;.
若〈表達(dá)式L>和〈表達(dá)式H>中有任一個(gè)為NULL是,則返回NULL.
【例】STORENULLTOX
STORE100TOY
?BETWEEN(150,Y,Y+100),BETWEEN(90,X,Y)
結(jié)果為:.T..NULL.
(2)、記錄個(gè)數(shù)測(cè)試函數(shù)
格式:RECCOUNT(〈工作區(qū)號(hào))|〈別名>))
功能:測(cè)試指定表或當(dāng)前表的記錄個(gè)數(shù)。
說(shuō)明:(1)標(biāo)識(shí)了邏輯刪除的記錄也包括在內(nèi),即返回表文件中物理
上存在的記錄個(gè)數(shù)。
(2)若指定表沒(méi)有打開,則返回0
(3)、工作區(qū)測(cè)試函數(shù)
格式:SELECT(〈工作區(qū)號(hào)》|〈別名〉))
功能:測(cè)試指定表或當(dāng)前表所在的工作區(qū)號(hào)。
【例】SELECT1
USEStudent
SELECT2
USEScore
?SELECT()'結(jié)果為2
(4)、數(shù)據(jù)類型測(cè)試函數(shù)
格式:VARTYPE(〈表達(dá)式>[,邏輯表達(dá)式])
功能:測(cè)試表達(dá)式的數(shù)據(jù)類型,返回一個(gè)大寫字母即代表數(shù)據(jù)類型的字母,具體參見課本P77表3.8。
表達(dá)式若為常量,則需用定界符界定。
說(shuō)明:若〈表達(dá)式〉為一個(gè)數(shù)組,則返回第一個(gè)數(shù)組的元素的類型;
當(dāng)表達(dá)式的運(yùn)算結(jié)果為NULL時(shí),則據(jù)〈邏輯表達(dá)式>的值返回表達(dá)式的值,若〈邏輯表達(dá)式>為.工,則返
回表達(dá)式的原數(shù)據(jù)類型;若〈邏輯表達(dá)式為.F.或缺省,則返回X以表明〈表達(dá)式》的運(yùn)算結(jié)果是NULL;
若〈表達(dá)式〉運(yùn)算的結(jié)果是NULL,則返回X,表示運(yùn)算結(jié)果是NULL
【例】x="AAA”
STORE10TOy
STORE.NULL.TOx
STORE$100.2TOz
?VARTYPE(X),VARTYPE(X,.F.),VARTYPE(X,.T.),
?VARTYPE(y),VARTYPE(z)
結(jié)果為:XXCNY
(5)、空值(NULL)測(cè)試函數(shù)
格式:ISNULL(〈表達(dá)式〉)
功能:判斷〈表達(dá)式》的運(yùn)算結(jié)果是否為NULL值,若是NULL值返
回邏輯真(.「),反之為假(.F.)
(6)、“空”值測(cè)試函數(shù)
格式:EMPTY(〈表達(dá)式〉)
功能:判斷〈表達(dá)式》的結(jié)果是否為“空值”,若是則返回邏輯具(.T.),反之返回邏輯假(.F.)
NULL與“空”的區(qū)別:
NULL表示一個(gè)不確定的值,而“空”表示不同數(shù)據(jù)類型所代
(7)、條件測(cè)試函數(shù)
格式:IIF(〈邏輯表達(dá)式》,〈表達(dá)式1〉,〈表達(dá)式2>)
功能:測(cè)試〈邏輯表達(dá)式>的值,若為真(.「),函數(shù)返回〈表達(dá)式1>的值,反之返回〈表達(dá)式2>的值,
其中表達(dá)式1與表達(dá)式2的類型可以不一樣
(8)、記錄刪除測(cè)試函數(shù)
格式:DELETED(k別名)|〈工作區(qū)號(hào)>])
功能:測(cè)試指定表或當(dāng)前表的當(dāng)前記錄是否有刪除標(biāo)記"*",若有則返回真(.T.),反之返回假
(.F.)
(9)宏替換函數(shù)
格式:&<字符型變量》
功能:替換出字符型變量的內(nèi)容,即&的值是變量中的字符串,如果該函數(shù)與其后的字符無(wú)明確分界,
則要用”.”作函數(shù)結(jié)束標(biāo)識(shí).
例:STORE'職工'TODB
USE&DB
XM=“姓名”
?&XM+結(jié)果為李小明你好
SKIP
?XM,結(jié)果姓名李新
值為
3.5.6程序設(shè)計(jì)
定義:是為完成某種任務(wù)的命令序列,這些命令序列按照一定的結(jié)構(gòu)合理地、有機(jī)地組合在一起,
并以文件的形式存儲(chǔ)在磁盤上,稱命令文件。
程序執(zhí)行時(shí),從磁盤上調(diào)入內(nèi)存,系統(tǒng)按照文件中排列的順序從第一條命令逐條執(zhí)行,直到結(jié)束。
2、關(guān)于程序的幾點(diǎn)說(shuō)明
⑴注釋
?代碼行注釋:以NOTE或*開頭的注釋,獨(dú)立占用一
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版智能航運(yùn)物流船運(yùn)輸合作協(xié)議合同2篇
- 二零二五年測(cè)繪數(shù)據(jù)處理與分析合同范本3篇
- 二零二五年特種花卉種子采購(gòu)合同范本3篇
- 二零二五版商業(yè)街區(qū)保安臨時(shí)工勞動(dòng)合同示范文本3篇
- 二零二五版生態(tài)農(nóng)業(yè)基地種植分包合同3篇
- 河北省二零二五年度二手房買賣合同附帶專業(yè)拆除及清理服務(wù)3篇
- 二零二五年度車輛過(guò)戶手續(xù)代理合同3篇
- 二零二五版汽車制造專用管子配件供應(yīng)合同3篇
- 二零二五年度酒店食堂承包服務(wù)合同范本3篇
- 二零二五年度礦業(yè)風(fēng)險(xiǎn)評(píng)估與風(fēng)險(xiǎn)管理合同2篇
- 割接方案的要點(diǎn)、難點(diǎn)及采取的相應(yīng)措施
- 2025年副護(hù)士長(zhǎng)競(jìng)聘演講稿(3篇)
- 2025至2031年中國(guó)臺(tái)式燃?xì)庠钚袠I(yè)投資前景及策略咨詢研究報(bào)告
- 原發(fā)性腎病綜合征護(hù)理
- 第三章第一節(jié)《多變的天氣》說(shuō)課稿2023-2024學(xué)年人教版地理七年級(jí)上冊(cè)
- 2025年中國(guó)電科集團(tuán)春季招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年度建筑施工現(xiàn)場(chǎng)安全管理合同2篇
- 建筑垃圾回收利用標(biāo)準(zhǔn)方案
- 2024年考研英語(yǔ)一閱讀理解80篇解析
- 福建省廈門市2023-2024學(xué)年高二上學(xué)期期末考試語(yǔ)文試題(解析版)
- 防火墻施工組織設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論