版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第二章
VisualFoxPro基礎(chǔ)及數(shù)據(jù)運(yùn)算1本章目錄第一節(jié)VisualFoxPro系統(tǒng)簡介第二節(jié)VisualFoxPro的數(shù)據(jù)及其運(yùn)算第三節(jié)常用函數(shù)2學(xué)習(xí)目標(biāo)1.了解VisualFoxPro6.0的運(yùn)行環(huán)境、安裝、啟動(dòng)和用戶界面。2.掌握VisualFoxPro6.0的三種操作方式及命令的語法規(guī)則。3.掌握VisualFoxPro6.0的8種數(shù)據(jù)類型。4.掌握字符型常量、數(shù)值型常量、貨幣型常量、日期型常量、日期時(shí)間型常量、邏輯型常量及其應(yīng)用。5.掌握字段變量和內(nèi)存變量的概念,掌握內(nèi)存變量的應(yīng)用。6.掌握算術(shù)表達(dá)式、字符表達(dá)式、日期和時(shí)間型表達(dá)式、關(guān)系表達(dá)式邏輯表達(dá)式的概念及使用。7.掌握數(shù)值函數(shù)、字符函數(shù)、日期和時(shí)間函數(shù)、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)和測試函數(shù)等常用函數(shù)的概念及使用。3第一節(jié)VisualFoxPro系統(tǒng)簡介
VisualFoxPro6.0系統(tǒng)是一個(gè)關(guān)系型DBMS,是微軟公司1998年推出的可視化語言集成包VisualStudio6.0系統(tǒng)中的一個(gè)產(chǎn)品。能運(yùn)行于各種平臺(tái)上的32位數(shù)據(jù)庫開發(fā)系統(tǒng)。4一、VisualFoxPro6.0的安裝與啟動(dòng)
1、最低運(yùn)行環(huán)境(1)486DX/66MHZ或更高的處理器。(2)16M以上內(nèi)存。(3)硬盤空間:典型安裝需要85M,最大安裝需要90MB。(4)VGA或更高分辨率以上的顯示器。(5)操作系統(tǒng):Windows95或98以上。5
2、VisualFoxPro6.0系統(tǒng)的安裝(1)將VisualFoxPro6.0系統(tǒng)光盤插入光驅(qū)。(2)打開光盤,找到setup.exe文件,雙擊該文件,運(yùn)行安裝向?qū)А#?)按安裝向?qū)У奶崾?,單擊“下一步”按鈕進(jìn)行安裝。(4)進(jìn)入系統(tǒng)安裝界面,根據(jù)提示按步操作,直到安裝完畢。6
3、VisualFoxPro6.0的啟動(dòng)與退出啟動(dòng)VisualFoxPro6.0常用方法:(1)單擊“開始”菜單,選擇“程序”,從級聯(lián)菜單中單擊VisualFoxPro6.0。(2)雙擊桌面建立的VisualFoxPro6.0的快捷圖標(biāo)。VisualFoxPro6.0的退出有以下四種方法:(1)單擊VFP窗口標(biāo)題欄右邊的關(guān)閉按鈕。(2)在VFP“文件”下拉菜單中選擇“退出”。(3)按快捷鍵ALT+F4.(4)在VFP的命令窗口中輸入命令QUIT。7
VisualFoxPro6.0的主窗口包括:標(biāo)題欄、菜單欄、常用工具欄、狀態(tài)欄、命令窗口和主窗口工作區(qū)幾個(gè)組成部分。二、VisualFoxPro6.0用戶界面8三、VisualFoxPro6.0的操作方式
VisualFoxPro6.0系統(tǒng)為用戶提供了幾種各具特點(diǎn)的操作方式,用戶可根據(jù)情況以及應(yīng)用的需要,選擇合適的操作方式,實(shí)現(xiàn)數(shù)據(jù)庫的操作、應(yīng)用。VisualFoxPro6.0系統(tǒng)的操作方式主要有:(1)命令操作方式(2)菜單操作方式(3)程序操作方式9四、VisualFoxPro6.0的命令語法
1、一般的命令格式
<命令動(dòng)詞>[范圍][FOR<條件>][WHILE<條件>][FIELDS<字段名表>]…VisualFoxPro6.0中常用短語介紹:⑴FIELDS子句用來規(guī)定當(dāng)前處理的字段或表達(dá)式。⑵范圍子句用來規(guī)定對表進(jìn)行操作的記錄的范圍。通常有以下四種范圍:ALL:對表中所有記錄進(jìn)行操作。NEXTN:只對包括當(dāng)前記錄在內(nèi)的連續(xù)N條記錄進(jìn)行操作。RECORDN:只對第N條記錄進(jìn)行操作。REST:從當(dāng)前記錄開始(含當(dāng)前記錄)到表尾的所有記錄。10⑶FOR子句和WHILE子句
FOR<條件>的作用是:在規(guī)定的范圍內(nèi),按條件檢查全部記錄。
WHILE<條件>的作用是:在規(guī)定的范圍內(nèi),只要條件成立,就對當(dāng)前記錄執(zhí)行該命令,并把記錄指針指向下一條記錄,一旦遇到條件不滿足的記錄,就停止查找并結(jié)束該命令的執(zhí)行。若同時(shí)使用FOR子句和WHILE子句,則WHILE有較高的優(yōu)先級。11例:讀者表內(nèi)容如下,分析以下命令的運(yùn)行結(jié)果。USE讀者LISTNEXT4LISTRESTLISTFIELDS學(xué)號,姓名,入學(xué)成績LISTFOR性別=“男”LISTWHILE性別=“男”USE122.VisualFoxPro6.0命令的書寫規(guī)則(1)命令動(dòng)詞必須寫在一條命令的最前面,而后面子句的次序可以任意排列。(2)命令行中,命令動(dòng)詞與短語、短語與短語和短語的各部分之間必須以一個(gè)或多個(gè)空格分開。(3)命令動(dòng)詞、各短語中的保留字及函數(shù)名都可簡寫為前四個(gè)字符,且大小寫無關(guān)。如DISPLAY可簡寫為DISP。(4)一個(gè)命令行的最大長度是254個(gè)字符,如果命令太長,一行寫不下,可在行末用“;”續(xù)行。并按回車換行,在下一行繼續(xù)輸入該命令。(5)一行只能寫一個(gè)命令。133.符號約定[]:方括號,表示是可選的項(xiàng)目。若選擇該項(xiàng)目,不要寫方括號本身。<>:角括號,表示括號內(nèi)的項(xiàng)目是必須要選的,但不要寫角括號本身。|:堅(jiān)線號,表示兩個(gè)項(xiàng)目中選擇其中一個(gè),但不要寫堅(jiān)線號本身?!菏÷蕴枺硎厩绊?xiàng)可繼續(xù)重復(fù)多次選擇14第二節(jié)VisualFoxPro的數(shù)據(jù)及其運(yùn)算一、VisualFoxPro的數(shù)據(jù)類型1.字符型(character)用字母C表示,字符型數(shù)據(jù)包括中文字符、英文字符、數(shù)字字符和其他ASCII字符,其長度最長不超過254個(gè)字符。2.?dāng)?shù)值型(Numeric)用字母N表示,用來表示數(shù)量并可以進(jìn)行算術(shù)運(yùn)算的數(shù)據(jù)類型。由阿拉伯?dāng)?shù)字、正負(fù)號、小數(shù)點(diǎn)組成。VisualFoxPro中,具有數(shù)值特征的數(shù)據(jù)類型還有整型、浮點(diǎn)型和雙精度型,但這三種數(shù)據(jù)類型只用于字段變量153.日期型(Date)用字母D表示,用來表示日期的數(shù)據(jù)類型。日期的默認(rèn)格式為:{mm/dd/yy}其中MM表示月,DD表示日,YY表示年。日期型數(shù)據(jù)的長度固定為8位。4.日期時(shí)間型(DateTime)用字母T表示,是用來表示日期和時(shí)間,默認(rèn)格式為:
{mm/dd/yyhh:mm:ss}其中mm,dd,yy的意義與日期型相同,hh,mm,ss分別表示時(shí)、分、秒。長度也固定為8位。5.邏輯型(Logic)用字母L表示,用來描述客觀事物真假或是非判斷的數(shù)據(jù)類型。只有兩個(gè)取值:真(.t.或.T.)和假(.f.或.F.),邏輯型數(shù)據(jù)長度固定為1位。166.貨幣型(Currency)用字母Y表示,為存儲(chǔ)貨幣值而使用的一種數(shù)據(jù)類型,它默認(rèn)保留4位小數(shù),占據(jù)8字節(jié)的存儲(chǔ)空間。7.備注型(Memo)用字母M表示,用來存放較多字符的數(shù)據(jù)類型。只用于表中字段類型的定義。字段長度固定為4個(gè)字節(jié)。實(shí)際數(shù)據(jù)存放在與表文件同名的備注文件(.ftp)中,其長度依實(shí)際需要而定。8.通用型(General)用字母G表示,是用來存儲(chǔ)OLE對象的數(shù)據(jù)類型??梢允请娮颖砀瘛⑽膿?、圖形、聲音等,跟備注型數(shù)據(jù)一樣,它只用于表中字段類型的定義,通用型數(shù)據(jù)字段長度固定為4位。17二、常量常量是在命令或程序中可直接引用、具有具體值的數(shù)據(jù)項(xiàng),其特征是在整個(gè)操作過程中它的值和表現(xiàn)形式保持不變。VisualFoxPro按常量取值的數(shù)據(jù)類型,將常量分為6種類型:數(shù)值型常量、貨幣型常量、字符型常量、邏輯型常量、日期型常量、日期時(shí)間型常量。181.字符型常量由任意ASCII字符、漢字和漢字字符組成的字符型數(shù)據(jù),字符型常量又稱為字符串。為與其他類型常量、變量和標(biāo)識(shí)符相區(qū)別,VisualFoxPro要求將字符串中所有字符,用一對雙引號“”或單引號‘’或方括號[]作為定界符對括起來。如:“Iamastudent.”,‘中華人民共和國’,[VisualFoxPro6.0系統(tǒng)]都是字符串。192.日期型常量日期型常量是表示日期值的數(shù)據(jù),其默認(rèn)格式是:
{mm/dd/[yy]yy}如{10/01/02}和{10/01/2002}均表示2002年10月1日。3.日期時(shí)間型常量VisualFoxPro系統(tǒng)中增加了一種表示日期和時(shí)間值的日期時(shí)間型常量,其默認(rèn)格式是:
{mm/dd/[yy]yy[,]hh:mm:ss[a|p]}其中a和p分別表示AM(上午)和PM(下午)。日期值和日期時(shí)間值的輸入格式與輸出格式并不完全相同,特別是輸出格式受系統(tǒng)環(huán)境設(shè)置的影響,用戶可根據(jù)應(yīng)用需要進(jìn)行相應(yīng)調(diào)整、設(shè)置。20嚴(yán)格的日期格式
VisualFoxPro系統(tǒng)增加了一種所謂嚴(yán)格的日期格式。不論哪種設(shè)置,按嚴(yán)格日期格式表示的日期型和日期時(shí)間型數(shù)據(jù),都具有相同的值和表示形式。嚴(yán)格的日期格式是:
{^yyyy-mm-dd[,][hh[:mm[:ss]][a|p]]}^符號表明該格式是嚴(yán)格的日期格式,并按照YMD的格式解釋日期型和日期時(shí)間型數(shù)據(jù),它是嚴(yán)格日期格式的標(biāo)志,不可缺少。有效的日期型和日期時(shí)間型數(shù)據(jù)分隔符為:連字符“-”、正斜杠“/”、句點(diǎn)“.”和空格。如{^2002-10-01}、{^2002-10-0110:30:30a},分別表示2002年10月1日及該日上午10時(shí)30分30秒這兩個(gè)日期數(shù)據(jù)。214.邏輯型常量邏輯型常量就是表示邏輯判斷結(jié)果“真”或“假”的邏輯值。邏輯常量只有真和假兩種,分別用(.t.或.y.)和(.f.或.n.)表示真和假。一般應(yīng)在表示邏輯常量的字母左右加注圓點(diǎn)符“.”以示區(qū)別。邏輯型常量在內(nèi)存中占用一個(gè)字節(jié)。225.?dāng)?shù)值型常量也稱常數(shù),用來表示一個(gè)數(shù)量的大小,由數(shù)字0-9、小數(shù)點(diǎn)和正負(fù)符號組成。例如,12.3,-67,3.14等。也可以使用科學(xué)計(jì)數(shù)法形式表示,例如:6.789*105可表示為6.789E5。6.貨幣型常量用來表示貨幣值,書寫格式與數(shù)值型類似,但要加上一個(gè)前置的符號$。貨幣型數(shù)據(jù)在存儲(chǔ)和計(jì)算時(shí),采用4位小數(shù),如果多于4位,那么系統(tǒng)自動(dòng)四舍五入。貨幣型常量不能用科學(xué)計(jì)數(shù)法表示。23三、變量變量是在操作過程中可以改變其取值或數(shù)據(jù)類型的數(shù)據(jù)項(xiàng)。在VisualFoxPro系統(tǒng)中變量分為字段變量、內(nèi)存變量、數(shù)組變量和系統(tǒng)變量4類。此外,作為面向?qū)ο蟮某绦蛘Z言,VisualFoxPro在進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì)中引入了對象的概念,對象實(shí)質(zhì)上也是一類變量。確定一個(gè)變量,需要確定其三個(gè)要素:變量名、數(shù)據(jù)類型和變量值。24
1.命名規(guī)則在VisualFoxPro系統(tǒng)中,將表示、存儲(chǔ)數(shù)據(jù)的常量、變量、數(shù)組、字段、記錄、對象、表、數(shù)據(jù)庫等,都稱之為數(shù)據(jù)容器。所有數(shù)據(jù)容器均需命名以相互區(qū)別,為規(guī)范各類對象的命名,VisualFoxPro系統(tǒng)推薦了若干“命名規(guī)則”供用戶參考,以提高操作命令與程序的可讀性和規(guī)范性。●使用字母,下劃線和數(shù)字命名。一般建議不采用漢字命名;●命名以字母或下劃線開頭;除自由表中字段名、索引的TAG標(biāo)識(shí)名最多只能10個(gè)字符外,其他的命名可使用1~128個(gè)字符;●避免使用VisualFoxPro的保留字;●文件名的命名應(yīng)遵循操作系統(tǒng)的約定。25
2.內(nèi)存變量的賦值內(nèi)存變量是在內(nèi)存中定義的一種單個(gè)數(shù)據(jù)元素的臨時(shí)性變量。(1)內(nèi)存變量的數(shù)據(jù)類型內(nèi)存變量的數(shù)據(jù)類型包括:數(shù)值型、字符型、邏輯型、日期型和日期時(shí)間型;(2)內(nèi)存變量的建立建立內(nèi)存變量就是給內(nèi)存變量賦值。內(nèi)存變量賦值既可定義一個(gè)新的內(nèi)存變量,也可改變已有內(nèi)存變量的值或數(shù)據(jù)類型。命令格式一:
STORE<表達(dá)式>TO<內(nèi)存變量表>命令功能:計(jì)算<表達(dá)式>的值并賦值給各個(gè)內(nèi)存變量。命令格式二:
<內(nèi)存變量>=<表達(dá)式>命令功能:計(jì)算<表達(dá)式>的值并賦值給指定內(nèi)存變量。26
3.表達(dá)式的顯示輸出可以用兩個(gè)命令在屏幕上顯示輸出內(nèi)存變量的值。命令格式:
?|??<表達(dá)式表>[AT<列號>]命令功能:計(jì)算表達(dá)式表中各表達(dá)式的值,并在屏幕上指定位置顯示輸出各式的值。?:先回車換行,再計(jì)算并輸出表達(dá)式的值;??:在屏幕上當(dāng)前位置,計(jì)算并直接輸出表達(dá)式的值;<表達(dá)式表>:多個(gè)用逗號兩兩分隔的表達(dá)式,各表達(dá)式的值輸出時(shí),以空格分隔;
AT<列號>子句指定表達(dá)式值從指定列開始顯示輸出。AT的定位只對它前面的一個(gè)表達(dá)式有效,多個(gè)表達(dá)式必須用多個(gè)AT子句分別定位輸出,而且可反序定位。27
4.內(nèi)存變量的顯示(1)變量的顯示用?/??命令可以分別顯示單個(gè)或一組變量的值。有時(shí)用戶還需了解變量其他相關(guān)信息,如數(shù)據(jù)類型、作用范圍,或了解系統(tǒng)變量的信息。VisualFoxPro系統(tǒng)提供了相應(yīng)操作命令。命令格式:
DISPLAY|LISTMEMORY[LIKE<通配符>][TOPRINTER[PROMPT]|TOFILE<文本文件名>][NOCONSOLE]命令功能:顯示指定變量的信息。28
說明:(1)LIKE選項(xiàng)子句可以使用通配符來代替變量名的一部分,以顯示與通配符相符合的變量。有兩種通配符:“?”代表任意一個(gè)字符,“*”代表任意多個(gè)字符。(2)LIST和DISPLAY的區(qū)別是:前者連續(xù)顯示,后者分屏顯示。(3)TOFILE<文件名>子句功能是將內(nèi)存變量有關(guān)信息送至一個(gè)文本文件。TOPRINTER則是送至打印機(jī)打印。例:定義并顯示內(nèi)存變量:STORE"dggaf"TOa1a2={^2004-04-25}c=.t.LISTMEMOLIKEa?295.內(nèi)存變量文件的建立VisualFoxPro提供相應(yīng)命令,可用文件形式將某些內(nèi)存變量保存起來,以便重復(fù)使用。命令格式:
SAVETO<變量文件名>[ALLLIKE<通配符>|ALLEXCEPT<通配符>]命令功能:將指定變量的信息保存到指定的變量文件(*.MEM)中。ALLLIKE<通配符>:只保存符合通配符條件的所有變量;ALLEXCEPT<通配符>:只保存不符合通配符條件的所有變量。306.內(nèi)存變量的恢復(fù)需要保存在文件中的變量信息時(shí),必須先恢復(fù)到內(nèi)存后方可使用。命令格式:
RESTOREFROM<變量文件名>[ADDITIVE]命令功能:將指定變量文件(*.MEM)中變量信息恢復(fù)到內(nèi)存中。ADDITIVE:省略此項(xiàng),清除內(nèi)存所有變量后再恢復(fù)文件中變量的信息;加選此項(xiàng),將變量文件中的變量信息追加到內(nèi)存現(xiàn)有變量信息中。7.內(nèi)存變量的清除VisualFoxPro系統(tǒng)對定義內(nèi)存變量的數(shù)量是有限制的,應(yīng)及時(shí)清理,盡量減少內(nèi)存的占用,定義其他變量。命令格式:
RELEASE<變量表>RELEASEALL[LIKE<通配符>|EXCEPT<通配符>]
318.?dāng)?shù)組變量數(shù)組變量是結(jié)構(gòu)化的變量,是一組具有相同名稱、以下標(biāo)相互區(qū)分的有序內(nèi)存變量。一個(gè)數(shù)組通常都包含多個(gè)數(shù)據(jù)元素。VisualFoxPro系統(tǒng)中只允許使用一維數(shù)組(相當(dāng)于數(shù)列)和二維數(shù)組(相當(dāng)于行列式或矩陣)。(1)數(shù)組元素●數(shù)組中各有序變量(數(shù)據(jù)元素)組成數(shù)組的成員,稱為數(shù)組元素。數(shù)組元素實(shí)質(zhì)上是一個(gè)內(nèi)存變量,也稱數(shù)組變量,它們具有相同變量名即數(shù)組名,彼此以下標(biāo)區(qū)分;32●數(shù)組元素的名稱(變量名)用數(shù)組名加下標(biāo)構(gòu)成。如AA(1),BB(2,3)分別表示一維數(shù)組AA的第1個(gè)元素,二維數(shù)組BB中第2行第3列的元素;●下標(biāo)必須用圓括號對括;一維數(shù)組的元素只有一個(gè)下標(biāo),二維數(shù)組的元素有兩個(gè)以逗號分隔的下標(biāo);●下標(biāo)必須是非負(fù)數(shù)值,可以是常量、變量、函數(shù)或表達(dá)式,下標(biāo)值會(huì)自動(dòng)取整。如AA(1.5),AA(nA1),AA(2+10/3)等;●數(shù)組元素的數(shù)據(jù)類型決定于最后賦值的數(shù)據(jù)類型;不同數(shù)組元素的數(shù)據(jù)類型可以不同;●數(shù)組元素與普通內(nèi)存變量一樣操作,可以賦值和引用。33(2)數(shù)組的定義數(shù)組必須先定義后使用,定義數(shù)組是向系統(tǒng)申請數(shù)組元素在內(nèi)存中的存儲(chǔ)空間。命令格式:DIMENSION|DECLARE<數(shù)組名1>(<數(shù)值表達(dá)式1>[,<數(shù)值表達(dá)式2>])[,<數(shù)組名2>(<數(shù)值表達(dá)式3>[,<數(shù)值表達(dá)式4>])…]命令功能:定義指定的各個(gè)數(shù)組。(3)數(shù)組的賦值與引用數(shù)組元素的賦值與引用,與普通內(nèi)存變量的規(guī)則相同。34
9.字段變量表由若干記錄構(gòu)成,每個(gè)記錄都包含若干個(gè)數(shù)量相同的字段,同一字段在不同記錄中分別對應(yīng)不同的字段值,因此,字段也是變量。與其他變量不同的是,字段變量是定義在表中的變量,隨表的存取而存取,因而是永久性變量。字段名就是變量名;變量的數(shù)據(jù)類型為VisualFoxPro中任意數(shù)據(jù)類型,字段值就是變量值。35
10.系統(tǒng)變量系統(tǒng)變量是VisualFoxPro系統(tǒng)特有的內(nèi)存變量,它由VisualFoxPro系統(tǒng)定義、維護(hù)。系統(tǒng)變量有很多,其變量名均以下劃線“_”開始,因此在定義內(nèi)存變量和數(shù)組變量名時(shí),不要以下劃線開始,以免與系統(tǒng)變量名沖突。系統(tǒng)變量設(shè)置、保存了很多系統(tǒng)的狀態(tài)、特性,了解、熟悉并且充分地運(yùn)用系統(tǒng)變量,會(huì)給數(shù)據(jù)庫系統(tǒng)的操作、管理帶來很多方便,特別是開發(fā)應(yīng)用程序時(shí)更為突出,學(xué)習(xí)時(shí)可對此有所關(guān)注。36四、VisualFoxPro的表達(dá)式在VisualFoxPro系統(tǒng)中,表達(dá)式是由常量、變量、函數(shù)及其他數(shù)據(jù)單獨(dú)或與運(yùn)算符組成的有意義的運(yùn)算式子。運(yùn)算符是對數(shù)據(jù)對象進(jìn)行加工處理的符號,根據(jù)其處理數(shù)據(jù)對象的數(shù)據(jù)類型,運(yùn)算符分為算術(shù)(數(shù)值)運(yùn)算符、字符運(yùn)算符、日期時(shí)間運(yùn)算符、邏輯運(yùn)算符和關(guān)系運(yùn)算符五類,相應(yīng)的,表達(dá)式也分為算術(shù)表達(dá)式、字符表達(dá)式、日期時(shí)間表達(dá)式、邏輯表達(dá)式和關(guān)系表達(dá)式五類。常量、變量和函數(shù)可以作為表達(dá)式的特例。今后涉及到表達(dá)式的描述,除特別指明,均可包含這些特殊的形式。37在VisualFoxPro系統(tǒng)中,表達(dá)式是由常量、變量、函數(shù)及其他數(shù)據(jù)單獨(dú)或與運(yùn)算符組成的有意義的運(yùn)算式子。運(yùn)算符是對數(shù)據(jù)對象進(jìn)行加工處理的符號,根據(jù)其處理數(shù)據(jù)對象的數(shù)據(jù)類型,運(yùn)算符分為算術(shù)(數(shù)值)運(yùn)算符、字符運(yùn)算符、日期時(shí)間運(yùn)算符、邏輯運(yùn)算符和關(guān)系運(yùn)算符五類,相應(yīng)的,表達(dá)式也分為算術(shù)表達(dá)式、字符表達(dá)式、日期時(shí)間表達(dá)式、邏輯表達(dá)式和關(guān)系表達(dá)式五類。常量、變量和函數(shù)可以作為表達(dá)式的特例。今后涉及到表達(dá)式的描述,除特別指明,均可包含這些特殊的形式。在VisualFoxPro系統(tǒng)中,各類運(yùn)算的優(yōu)先順序如下:圓括號>算術(shù)和日期運(yùn)算>字符串運(yùn)算>關(guān)系運(yùn)算>邏輯運(yùn)算38
1.算術(shù)表達(dá)式算術(shù)表達(dá)式又稱數(shù)值表達(dá)式,其運(yùn)算對象和運(yùn)算結(jié)果均為數(shù)值型數(shù)據(jù)。數(shù)值運(yùn)算符的功能及運(yùn)算優(yōu)先順序,如下表所示。表中運(yùn)算符按運(yùn)算優(yōu)先級別從高到低順序排列。運(yùn)算符功
能表
達(dá)
式
舉
例運(yùn)算結(jié)果優(yōu)先級別()圓括號(2-5)*(3+2)-15最高|||最低-取相反數(shù)-(3-8)5**、^乘冪2**5、3^232、9*、/乘、除2*10、25/520、5%取余數(shù)20%50+、-加、減36+19、29-4755、-18392.字符表達(dá)式字符表達(dá)式是由字符運(yùn)算符將字符型數(shù)據(jù)對象連接起來進(jìn)行運(yùn)算的式子。字符運(yùn)算的對象是字符型數(shù)據(jù)對象,運(yùn)算結(jié)果是字符常量或邏輯常量。表2-3為字符運(yùn)算符的功能。“+”與“-”都是字符連接運(yùn)算符,都將兩個(gè)字符串順序連接,但“+”是直接連接,“-”則將串1尾部所有空格移到串2尾部后再連接;“$”運(yùn)算實(shí)質(zhì)上是比較兩個(gè)串的包含關(guān)系,因此有些書籍中將其歸于關(guān)系運(yùn)算,其作用是比較、判斷串1是否為串2的子串,如果串1是串2的子串,運(yùn)算結(jié)果為“真”,否則為“假”。所謂子串,如果串1中所有字符均包含在串2中、且與串1中排列方式與順序完全一致,則稱串1為串2的子串。40
表2-3字符運(yùn)算符
兩個(gè)連接運(yùn)算的優(yōu)先級別相同,但高于$的比較運(yùn)算。運(yùn)算符功能表達(dá)式舉例運(yùn)算結(jié)果+串1+串2:兩串順序相連接’12‘+’56’’1256’-串1-串2:串1尾空格移到串2尾后再順序相連接’12‘-‘56’‘1256‘$串1$串2:串1是否為串2子串‘1234’$‘a(chǎn)12345’‘1234’$‘34512’.T..F.413.日期表達(dá)式由日期運(yùn)算符將一個(gè)日期型或日期時(shí)間型數(shù)據(jù)與一個(gè)數(shù)值型數(shù)據(jù)連接而成的運(yùn)算式稱為日期表達(dá)式。日期運(yùn)算符分為“+”和“-”兩種,其作用分別是在日期數(shù)據(jù)上增加或減少一個(gè)天數(shù),在日期時(shí)間數(shù)據(jù)上增加或減少一個(gè)秒數(shù)。兩個(gè)運(yùn)算的優(yōu)先級別相同。例如:?{^2004-05-10}+10?{^2004-05-10}-{^2003-05-10}主屏幕顯示:05/20/04366424.關(guān)系表達(dá)式由關(guān)系運(yùn)算符連接兩個(gè)同類數(shù)據(jù)對象進(jìn)行關(guān)系比較的運(yùn)算式稱為關(guān)系表達(dá)式。關(guān)系表達(dá)式的值為邏輯值,關(guān)系表達(dá)式成立則其值為“真”,否則為“假”。運(yùn)算符功
能表
達(dá)
式
舉
例結(jié)果<小于15<4*6.T.>大于‘A’>‘1’.T.=等于2+4=3*5.F.<>、#、!=不等于5<>-10.T.<=小于或等于'abc'<='AB'.F.>=大于或等于{10-10-02}>={10/01/02}.T.==字符串恒同‘a(chǎn)bc’==’abcabc’.F.435.邏輯表達(dá)式
由邏輯運(yùn)算將邏輯型數(shù)據(jù)對象連接而成的式子稱為邏輯表達(dá)式。邏輯表達(dá)式的運(yùn)算對象與運(yùn)算結(jié)果均為邏輯型數(shù)據(jù)。表2-5為邏輯運(yùn)算符的功能。邏輯運(yùn)算符前后一般要加圓點(diǎn)“.”標(biāo)記,以示區(qū)別。運(yùn)算符功
能優(yōu)先級別()圓括號最高||最低.NOT.或!邏輯非.AND.邏輯與.OR.邏輯或表2-5邏輯運(yùn)算符44表2-6邏輯運(yùn)算真值表ABA.AND.BA.OR.B.NOT.A.T..T..T..T..F..T..F..F..T..F..F..T..F..T..T..F..F..F..F..T.對于各種邏輯運(yùn)算,其運(yùn)算規(guī)則可由邏輯運(yùn)算真值表確定,表2-6所示就是邏輯運(yùn)算真值表。456.運(yùn)算符優(yōu)先級先執(zhí)行算術(shù)運(yùn)算,字符運(yùn)算和日期運(yùn)算,再執(zhí)行關(guān)系運(yùn)算,最后執(zhí)行邏輯運(yùn)算。當(dāng)然可以用括號來改變其優(yōu)先級。括號括起來的應(yīng)優(yōu)先運(yùn)算。例:多種表達(dá)式運(yùn)算示例?9>3AND5<3OR"a"$"ab"AND.NOT.f.主屏幕顯示: .t.?(100%3=1)AND(15-4=0)OR"張"="張三"主屏幕顯示:.f.46第三節(jié)常用函數(shù)
VisualFoxPro系統(tǒng)中,函數(shù)是一段程序代碼,用來進(jìn)行一些特定的運(yùn)算或操作,支持和完善命令的功能,幫助用戶完成各種操作與管理。VisualFoxPro系統(tǒng)有數(shù)百種不同函數(shù),按函數(shù)提供方式,可分為系統(tǒng)(標(biāo)準(zhǔn))函數(shù)和用戶自定義函函數(shù),按函數(shù)運(yùn)算、處理對象和結(jié)果的數(shù)據(jù)類型,可分為數(shù)值型函數(shù)、字符型函數(shù)、邏輯型函數(shù)、日期時(shí)間型函數(shù)、數(shù)據(jù)轉(zhuǎn)換函數(shù)等,按函數(shù)的功能和特點(diǎn),可分為數(shù)據(jù)處理函數(shù)、數(shù)據(jù)庫操作函數(shù)、文件管理函數(shù)、鍵盤和鼠標(biāo)處理函數(shù)、輸出函數(shù)、窗口界面操作函數(shù)、程序設(shè)計(jì)函數(shù)、數(shù)據(jù)庫環(huán)境函數(shù)、網(wǎng)絡(luò)操作函數(shù)、系統(tǒng)信息函數(shù)、動(dòng)態(tài)數(shù)據(jù)操作函數(shù)等。VisualFoxPro的函數(shù)由函數(shù)名與自變量兩部分組成。47一、數(shù)值型函數(shù)數(shù)值函數(shù)用于數(shù)值運(yùn)算,其自變量與函數(shù)返回值都是數(shù)值型數(shù)據(jù)1.取絕對值函數(shù)ABS()和符號函數(shù)SIGN()【格式】ABS(數(shù)值表達(dá)式)SIGN(數(shù)值表達(dá)式)【功能】計(jì)算數(shù)值表達(dá)式的值,并返回該值的絕對值。SIGN()返回指定數(shù)值表達(dá)式的符號。當(dāng)表達(dá)式運(yùn)算結(jié)果為正、負(fù)和零時(shí),函數(shù)返回值分別為1、-1、0482.求平方根函數(shù)SQRT()【格式】SQRT(數(shù)值表達(dá)式)【功能】求非負(fù)數(shù)值表達(dá)式的平方根。3.求指數(shù)函數(shù)EXP()【格式】EXP(數(shù)值表達(dá)式)【功能】求以e為底、數(shù)值表達(dá)式值為指數(shù)的冪,即返回ex的值。4.圓周率π函數(shù)PI()【格式】PI()【功能】返回常量π的近似值495.取整函數(shù)【格式】INT(數(shù)值表達(dá)式)CEILING(數(shù)值表達(dá)式)FLOOR(數(shù)值表達(dá)式)【功能】INT()返回指定數(shù)值表達(dá)式的整數(shù)部分。CEILING()返回大于或等于指定數(shù)值表達(dá)式的最小整數(shù)。FLOOR()返回大于或等于指定數(shù)值表達(dá)式的最大整數(shù)。506.四舍五入函數(shù)ROUND()【格式】ROUND(數(shù)值表達(dá)式1,數(shù)值表達(dá)式2)【功能】返回?cái)?shù)值表達(dá)式1四舍五入的值,數(shù)值表達(dá)式2表示保留的小數(shù)位數(shù)。若數(shù)值表達(dá)式2大于或等于零,它表示要保留的小數(shù)位數(shù);如果小于零,它表示的是整數(shù)部分的舍入位數(shù)。517.求余數(shù)函數(shù)MOD()【格式】MOD(數(shù)值表達(dá)式1,數(shù)值表達(dá)式2)【功能】返回?cái)?shù)值表達(dá)式1除以數(shù)值表達(dá)式2的余數(shù),符號與數(shù)值表達(dá)式2相同。如果兩個(gè)表達(dá)式符號相異,則函數(shù)為兩數(shù)相除的余數(shù)再加上除數(shù)的值。例:?Mod(6,3)顯示0?Mod(-6,4)顯示2?Mod(6,-4)顯示-2?Mod(-6,-4)顯示-2528.最大值函數(shù)MAX()和最小值函數(shù)MIN()格式】MAX(<表達(dá)式1>,<表達(dá)式2>[,<表達(dá)式3>...])MIN(<表達(dá)式1>,<表達(dá)式2>[,<表達(dá)式3>...])【功能】返回?cái)?shù)值表達(dá)式中的最大值MAX()和最小值MIN()。53二、字符函數(shù)字符函數(shù)是處理字符型數(shù)據(jù)的函數(shù),其自變量或函數(shù)值中至少有一個(gè)是字符型數(shù)據(jù)。1.求字符串長度函數(shù)LEN()【格式】LEN(字符串表達(dá)式)【功能】返回字符串表達(dá)式串的字符數(shù)(長度)。函數(shù)值為N型。542.大小寫轉(zhuǎn)換函數(shù)LOWER()和UPPER()【格式】LOWER(字符表達(dá)式)UPPER(字符表達(dá)式)【功能】LOWER()將字符表達(dá)式串中字母全部變成小寫字母,UPPER()將字符串中字母全部變成大寫字母,其它字符不變。553.求子串位置函數(shù)【格式】AT(<字符表達(dá)式1>,<字符表達(dá)式2>[,<數(shù)值表達(dá)式>])ATC(<字符表達(dá)式1>,<字符表達(dá)式2>[,<數(shù)值表達(dá)式>])【功能】返回字符表達(dá)式1在字符表達(dá)式2中的起始位置。函數(shù)值為整數(shù)。如果表達(dá)式2不包含串表達(dá)式1,函數(shù)返回值為零。ATC()與AT()功能類似,但在子串比較時(shí)不區(qū)分字母大小寫。第三個(gè)參數(shù)數(shù)值表達(dá)式用于表明要搜索字符表達(dá)式1在字符表達(dá)式2中第幾次出現(xiàn),其默認(rèn)值為1,可缺省。564.取子串函數(shù)【格式】LEFT(字符表達(dá)式,長度)RIGHT(字符表達(dá)式,長度)SUBSTR(字符表達(dá)式,起始位置,長度)
【功能】LEFT()從指定字符表達(dá)式左端取指定長度的子串作為函數(shù)值。RIGHT()從指定字符表達(dá)式左端取指定長度的子串作為函數(shù)值。SUBSTR()從指定表達(dá)式的起始位置取一個(gè)指定長度的子串作為函數(shù)值。在SUBSTR()函數(shù)中,若缺省第三個(gè)參數(shù)長度,則函數(shù)從指定位置一直取到最后一個(gè)字符。575.生成空格函數(shù)SPACE()【格式】SPACE(數(shù)值表達(dá)式)【功能】返回由指定數(shù)目的空格組成的字符串。6.刪除字符串前后空格函數(shù)【格式】1)LTRIM(字符表達(dá)式)2)RTRIM|TRIM(字符表達(dá)式)3)ALLTRIM(字符表達(dá)式)【功能】1)刪除字符表達(dá)式的前導(dǎo)空格字符。2)刪除字符表達(dá)式的尾部空格字符。3)刪除字符表達(dá)式前導(dǎo)和尾部空格后的字符串。587.計(jì)算子串出現(xiàn)次數(shù)函數(shù)OCCURS()
【格式】OCCURS(字符表達(dá)式1,字符表達(dá)式2)【功能】返回第一個(gè)字符串在第二個(gè)字符串中出現(xiàn)的次數(shù)。若第一個(gè)字符串不是第二個(gè)字符串的子串,則返回0。8.字符串替換函數(shù)STUFF()【格式】STUFF(字符表達(dá)式1,起始位置,長度,字符表達(dá)式2)【功能】用字符表達(dá)式2替換字符表達(dá)式1中由指定位置和長度指明的子串。替換和被替換的字符個(gè)數(shù)不一定相等。59日期時(shí)間函數(shù)是處理日期型或日期時(shí)間型數(shù)據(jù)的函數(shù)。其自變量為日期型表達(dá)式或日期時(shí)間型表達(dá)式。三、日期和時(shí)間函數(shù)1.系統(tǒng)日期和時(shí)間函數(shù)【格式】DATE()TIME()DATETIME()【功能】DATE()返回當(dāng)前系統(tǒng)日期,函數(shù)值為D型。TIME()返回當(dāng)前系統(tǒng)時(shí)間,時(shí)間顯示格式為hh:mm:ss。函數(shù)值為C型.DATETIME()返回當(dāng)前系統(tǒng)日期時(shí)間,函數(shù)值為T型。602.年份、月份、天份【格式】YEAR(日期表達(dá)式/日期時(shí)間表達(dá)式)MONTH(日期表達(dá)式/日期時(shí)間表達(dá)式
)DAY(日期表達(dá)式/日期時(shí)間表達(dá)式
)【功能】YEAR()從指定的表達(dá)式中返回年份。MONTH()從指定的表達(dá)式中返回月份。DAY()從指定的表達(dá)式中返回月里面的天數(shù)。613.求時(shí)、分、秒函數(shù)【格式】HOUR(日期時(shí)間型表達(dá)式)MINUTE(日期時(shí)間型表達(dá)式)SEC(日期時(shí)間型表達(dá)式)【功能】HOUR()函數(shù)返回日期時(shí)間型表達(dá)式所對應(yīng)的小時(shí)部分。MINUTE()函數(shù)返回日期時(shí)間型表達(dá)式所對應(yīng)的分鐘部分。SEC()函數(shù)返回日期時(shí)間型表達(dá)式所對應(yīng)的秒鐘部分。62四、數(shù)據(jù)類型轉(zhuǎn)換函數(shù)在數(shù)據(jù)庫應(yīng)用的過程中,經(jīng)常要將不同數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行相應(yīng)轉(zhuǎn)換,滿足實(shí)際應(yīng)用的需要。1.?dāng)?shù)值轉(zhuǎn)換字符串函數(shù)STR()【格式】STR(數(shù)值表達(dá)式[,長度][,小數(shù)位數(shù)])【功能】將數(shù)值表達(dá)式的值轉(zhuǎn)換成字符串形式。函數(shù)值為C型。632.字符轉(zhuǎn)換數(shù)值函數(shù)VAL()【格式】VAL(字符表達(dá)式)【功能】將字符表達(dá)式中數(shù)字轉(zhuǎn)換成對應(yīng)數(shù)值,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時(shí)工招募:2024學(xué)校勤雜工勞動(dòng)協(xié)議
- 2025年數(shù)據(jù)中心場承包運(yùn)營管理協(xié)議4篇
- 專項(xiàng)龍門吊租賃協(xié)議格式范本2024版B版
- 2025年度健身中心場地租賃及私人教練服務(wù)合同4篇
- 二零二四商鋪?zhàn)赓U合同(含租賃期間租賃物處置及變現(xiàn)條款)3篇
- 2025不銹鋼精密鑄造件加工與銷售合作協(xié)議2篇
- 2025年度文化衍生品研發(fā)、生產(chǎn)及銷售合作協(xié)議4篇
- 二零二五年度餐飲業(yè)人力資源外包合同6篇
- 2024藥店負(fù)責(zé)人任期藥店經(jīng)營數(shù)據(jù)統(tǒng)計(jì)與分析聘用合同3篇
- 一次性付款房地產(chǎn)轉(zhuǎn)讓合同(2024年版)
- NGS二代測序培訓(xùn)
- 《材料合成與制備技術(shù)》課程教學(xué)大綱(材料化學(xué)專業(yè))
- 小紅書食用農(nóng)產(chǎn)品承諾書示例
- 釘釘OA辦公系統(tǒng)操作流程培訓(xùn)
- 新生兒科年度護(hù)理質(zhì)控總結(jié)
- GB/T 15934-2024電器附件電線組件和互連電線組件
- 《工貿(mào)企業(yè)有限空間作業(yè)安全規(guī)定》知識(shí)培訓(xùn)
- 高層次人才座談會(huì)發(fā)言稿
- 垃圾清運(yùn)公司管理制度(人員、車輛、質(zhì)量監(jiān)督、會(huì)計(jì)管理制度)
- 《建筑工程設(shè)計(jì)文件編制深度規(guī)定》(2022年版)
- 營銷人員薪酬考核方案
評論
0/150
提交評論