二級Visual_Foxpro完全筆記_第1頁
二級Visual_Foxpro完全筆記_第2頁
二級Visual_Foxpro完全筆記_第3頁
二級Visual_Foxpro完全筆記_第4頁
二級Visual_Foxpro完全筆記_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、二級Visual Foxpro完全筆記一、二級Visual Foxpro的基本框架和主要內容1.基本框架:總分總的模式  第一章:總述  第二九章:分述  第十章:總結  第十一章:上機指導2.重要章節(jié)及內容(見教材目錄)各個章節(jié)考試時都有涉及,其中第三、四和七章為重點。3.題型:1)筆試部分:單選題 2分*35題=70分(其中前十題在二級vf公共基礎知識中)             填空題 2分*15題=30分(其中前五題在二級vf公

2、共基礎知識中)2)機試部分:基本操作題 30分             簡單應用題 40分             綜合應用題 30分             (其中不涉及公共基礎知識,采取隨機抽題的方式)二、基礎知識1.vf的作用是要用來

3、處理現(xiàn)實中的問題,主要使用程序和數(shù)據(jù)來進行。程序師處理數(shù)據(jù)的一組命令;而數(shù)據(jù)就是被程序處理的對象。2.vf軟件的啟動:兩種方式  桌面上的快捷方式  開始菜單程序MSVF3.vf的安裝:兩種方式  光盤安裝:setup.exe  網(wǎng)絡安裝4.了解vf界面  標題欄  主菜單  常用工具欄  主窗口:顯示或輸出數(shù)據(jù)處理后的結果。  狀態(tài)欄:顯示數(shù)據(jù)處理時的狀態(tài)信息。  命令窗口:用戶對計算機發(fā)布的命令。5.vf中最常用命令介紹?表示隔行輸出。?表示同行輸出。&&+內容表示是對前面所

4、寫命令的注釋說明,可提高程序的可讀性,一般以綠色顯示。Clear表示對主窗口進行清屏,它本身就是命令,因而clear后不加()。三、數(shù)據(jù)與數(shù)據(jù)運算(一)簡單介紹vf系統(tǒng)中數(shù)據(jù)的形式和類型1.vf系統(tǒng)所處理的數(shù)據(jù)形式有四種:  常量  變量  表達式  函數(shù)2.上述四種形式的數(shù)據(jù)根據(jù)其組成和結構的不同又可分為六種類型:  數(shù)值型  貨幣型  字符型  日期型  日期時間型  邏輯型上述類型決定數(shù)據(jù)的存儲方式和運算方式。(二)常量1.含義:是用以表示一個具體的、確定的、不變的值。2.常量的類型:1)

5、數(shù)值型常量:  含義:也稱N型,用來表示數(shù)量的多少。  組成:由數(shù)字09,小數(shù)點和正負號構成。  可用科學計數(shù)法的形式來書寫,如:1500=1.5*10的3次方=1.5e3,其中的e/E表示10的n次方,n為整數(shù)(正整數(shù)、負整數(shù)、0均可)。  數(shù)值型數(shù)據(jù)在內存中用8個字節(jié)表示。2)貨幣型常量:  含義:也稱Y型,用來表示貨幣值。  組成:在數(shù)值型常量之前加上一個$符號即可。  在存儲和計算時采用4位小數(shù),多于4位時自動四舍五入。  沒有科學計數(shù)法形式,在內存中占用8個字節(jié)。3)字符型常量  含義:也稱C型

6、或者字符串。  組成:用半角的單引號、雙引號或方括號作為定界符把字符串括起來,且定界符必須成對匹配。但定界符不是字符型常量的內容。  定界符內的字符可為數(shù)字、漢字、英文、空格或者無內容。  不包含任何字符的字符串為空串;完全以空格為字符的字符串為空格字符串。4)日期型常量:  含義:用來顯示日期,也稱D型。  組成:它的定界符是一對花括號,并且花括號內第一個字符必須是脫字符,花括號內括年月日三部分內容,各部分內容之間用分隔符-分隔。而斜杠則是系統(tǒng)在主窗口顯示日期型數(shù)據(jù)使用的默認分隔符。yyyy-mm-dd。  日期型常量也用8個字節(jié)表

7、示。  影響日期格式的設置命令:Set date to ymd/dmy/mdy功能是設置日期顯示時的格式。Set mark to “-”或者”/”或者”功能是用于設置顯示日期型數(shù)據(jù)時的分隔符。若未指定分隔符則表示恢復系統(tǒng)默認斜杠分隔符。Set century on/off功能是設置年份是以(on)4位或(off)2位來顯示。5)日期時間型常量:  含義:用來顯示日期和時間,也稱T型。  組成:yyyy-mm-dd hh:mm:ss am/pm。  日期時間型常量也用8個字節(jié)存儲。注:上述所有關于日期和日期時間的設定在vf界面的工具菜單選項區(qū)域中進行操作。

8、6)邏輯型常量:  含義:它只有邏輯真和邏輯假兩個值,也稱L型。  組成:邏輯真.t.  .T.  .y.  .Y.         邏輯假.f.  .F.  .n.  .N.  前后的兩個點作為定界符必不可少,但是只占1個字節(jié)。(三)變量1.定義:是指在成都之行進程中,其值可以被改變的量。2.變量的命名原則:  以漢字、字母或下劃線開頭,可以含有數(shù)字,但不能含有非法字符如小數(shù)點、空格或通配符(*/?)。 

9、 要盡量做到見文知義。3.變量的分類:1)字段變量:在表文件中記錄屬性內容的變量。表中的每一個列標題就稱為一個字段變量。列標題的名稱就是這個字段變量的名稱,其下的具體內容就是這個字段變量的值,即字段值。  注意一:表的每一行被稱為一條記錄,鼠標指向某一行時會變成指針的標志,指針所指向的行即此字段當前的值,當輸出這個字段變量時,就會在主窗口顯示當前行的值。  注意二:若字段變量名和內存變量名重名的現(xiàn)象時,優(yōu)先輸出字段變量的值;若想輸出內存變量的值,則需在變量名前加上前綴M.(或M->)。2)系統(tǒng)變量:是由vf系統(tǒng)自定義的變量,其名稱是由系統(tǒng)預先定義好的,通常以下劃線_開

10、頭。例如:_screen. fontsize=20  可更改主窗口所顯示字的字號大小;      _screen. backcolor=rgb(0,255,45)  可更改主窗口的背景顏色。_vfp. Caption=”任意字符”  可更改vf標題欄上顯示的標題名。3)內存變量:  含義:表示內存中臨時存放數(shù)據(jù)的單元格,它的類型取決于其中存放數(shù)據(jù)的類型。  內存變量的賦值:即把一個數(shù)據(jù)存放到內存變量中。兩種方法:格式一:store 表達式/數(shù)據(jù) to 變量名  可把同一個值賦給不同的變

11、量,各內存便另名之間要用逗號隔開。格式二:變量名=表達式/數(shù)據(jù)(注意:數(shù)據(jù)為常量時必須加”)可通過對內存變量重新賦值來改變其內容和類型。  內存變量的顯示:list/display memory like */?  用來顯示內存變量的信息。  內存變量的清除:格式一:clear memory/release all  表示清除全部內存變量格式二:release 變量名表  表示清除制定內存變量,可為若干個格式三:release all like */?或except */?  表示清除相匹配或不相配的內存變量。  數(shù)組:含義

12、:數(shù)組是一種特殊的內存變量,表示內存中連續(xù)的若干個存儲單元。用來存儲一系列數(shù)值,其中的每個值稱為數(shù)組的一個元素,可通過下標來顯示,下標用()或括起來。一個數(shù)組中的各個元素的值的數(shù)據(jù)類型可以不同。創(chuàng)建數(shù)組的命令:dimension/declare 數(shù)組名(元素個數(shù))。注意:若定義了一個數(shù)組aa,再給數(shù)組名aa賦值,則表明是給aa數(shù)組中的每個元素都賦予了一個相同的值。數(shù)組分類:一維數(shù)組:一行多列 dimension 數(shù)組名(數(shù)值表達式)二維數(shù)組:多行多列dimension 數(shù)組名(數(shù)值表達式1,數(shù)值表達式2)其中,數(shù)值表達式1指定其行,數(shù)值表達式2指定其列,若只有一個數(shù)值,則為一維數(shù)組。一維數(shù)組與

13、二維數(shù)組的轉換:例如:dimension aa(3)aa(1,1),aa(1,2),aa(1,3)這是將一維數(shù)組轉換為二維數(shù)組。      dimension bb(2,3)bb(1),bb(2),bb(6)這是將二維數(shù)組轉換為一維數(shù)組。(四)表達式1.定義:通過特定的運算符將常量、變量和函數(shù)連接起來的式子,通過運算后,表達式都會生成一個值。2.形式:1)單一的運算對象,如常量、變量或函數(shù)。2)由運算符將運算對象鏈接起來的式子。3.作用:1)賦值2)輸出4.常用表達式的類型:1)數(shù)值表達式    定義:由算術運算符

14、將數(shù)值型數(shù)據(jù)連接起來形成的式子。    運算符:( )    括號    *或  乘方*/和%  乘除和求余運算+和-   加和減這四類運算符的優(yōu)先級依次降低,同類之間具有相同的優(yōu)先級。    運算結果的類型:它的值仍是數(shù)值型。    注意求余運算符%的用法:它的被除數(shù)與出書都必須是整數(shù),除數(shù)不能為0。求余三原則表述如下:  若c=a%b 做這種題的時候先算出c=a%b的值,然后c必須與a同號。還

15、要注意的是:若a與b同號,則當前余數(shù)就是c               若a與b異號,則當前余數(shù)結果是b+c例如:?10%3,-10%-3,10%-3,-10%3           1     -1     -2    22)字符表達式 

16、 定義:由字符串運算符將字符型數(shù)據(jù)連接起來形成的式子。  運算符:+  表示前后兩個字符串首尾連接成一個新的字符串  -  表示連接前后兩個字符串,并將前字符串的尾部空格移到合并后的新字符串尾部。  這兩個運算符之間不分優(yōu)先級。  運算結果的類型:它的值仍是字符型。例如:a=”hello  ”      b=”everyone!”      ?a+b,a-b      hell

17、o  everyone!     hello everyone!  3)日期時間表達式  定義:用運算符將日期或日期時間型數(shù)據(jù)連接起來形成的式子。  運算符:也是+和-。  格式:格式結果及類型日期+天數(shù)日期型;指定日期若干天后的日期日期-天數(shù)日期型;指定日期若干天前的日期日期-日期數(shù)值型;兩個日期相差的天數(shù)日期時間-秒數(shù)日期時間型;指定日期時間若干秒前的日期時間日期時間+秒數(shù)日期時間型;指定日期時間若干秒后的日期時間日期時間-日期時間數(shù)值型;兩個指定日期時間相差的秒數(shù)4)關系表達式  

18、;    定義:通常也簡稱為簡單邏輯表達式,它通過關系運算符將兩個運算對象連接起來形成的式子,即表達式1  關系運算符  表達式2。      運算符:<  小于>  大于=  等于<>、#或!=  不等于<=  小于等于>=  大于等于=  字符串精確比較$  字符包含測試注意:=和$僅適用于字符型數(shù)據(jù),其他運算符適用于任何類型的數(shù)據(jù),但運算符前后的兩個運算對象的數(shù)據(jù)類型必須要保

19、持一致。數(shù)值型、貨幣型數(shù)據(jù)各自之間的比較按其數(shù)值的大小進行。日期型、日期時間型數(shù)據(jù)各自之間的比較,越晚日期或時間越大。邏輯型數(shù)據(jù)比較:.t.>.f.字串包含測試:字符表達式1 $ 字符表達式2 ,如果前者整體是后者的字串,即1包含于2,則結果為真,否則為假。字符串之間的比較原則是依次比較它們對應位置中的字符,若相同則繼續(xù)比較,若不同則根據(jù)這兩個字符的排序序列決定字符串的大小。但是,根據(jù)不同的排序方式,所出的結果也是不同的。² 排序方式設置:set collate to “排序次序名”排序次序名可以是machine、pinyin和stroke。Machine的原則是:空格<

20、數(shù)字<大寫字母(其中A最?。?lt;小寫字母(其中a最?。?;(測asc碼函數(shù):asc(字符表達式),可測比如”A”a”的asc碼為65和97)Pinyin的原則是:排在字母表后面的字母>排在前面的字母,若字母相同則大寫>小寫;Stroke的原則是:漢字的筆畫誰多誰大。² 字符串的精確比較與exact設置:“=”只有兩個字符串完全相同時,運算結果為邏輯真,否則為邏輯假。在“=”比較兩個字符串時,運算結果與set exact on/off有關:off表示只要右邊字符串整體與左邊字符串的前面部分內容相匹配,即可為真,否則為假;on則表示比較到兩個字符串全部結束,先到短的字

21、符串尾部加空格,使兩個字符串的長度相等,然后進行比較,      運算結果的類型:邏輯型。作用是比較兩個表達式的大小。5)邏輯表達式      定義:由邏輯運算符將邏輯型數(shù)據(jù)連接起來而形成的式子,格式為:關系式1  邏輯運算符  關系式2。      運算符:not/!  邏輯非           And 

22、   邏輯與           Or     邏輯或其優(yōu)先級的順序是由高到低。      運算結果的類型:仍是邏輯型數(shù)據(jù)的式子,即邏輯表達式。注意:不同類型的運算符之間的優(yōu)先級順序為:先執(zhí)行算術運算符、字符串運算符和日期時間運算符,其次執(zhí)行關系運算符,最后執(zhí)行邏輯運算符。(五)常用函數(shù)1.定義:函數(shù)是用程序來實現(xiàn)的一種數(shù)據(jù)運算或轉換,也就是預先定義好的程序段??捎腥舾蛇\算對象,但只能有

23、一個運算結果,成為函數(shù)值或返回值。2.格式:函數(shù)名() 若括號內有變量則為有參函數(shù),括號內無變量則為無參函數(shù)。但無論怎樣,括號都不可省略。3.常用函數(shù)的類型:1)數(shù)值函數(shù):自變量和函數(shù)值為數(shù)值的一類函數(shù)。8個&        求絕對值函數(shù)格式:abs(數(shù)值表達式)功能:返回指定數(shù)值表示的絕對值結果:為N型,且必然>=0&        求符號函數(shù)格式:sign(數(shù)值表達式)功能:返回指定數(shù)值表達式的符號結果:為N型,當表達式的運算結果

24、為正、負和零時,函數(shù)值分別為1、-1和0&        求平方根函數(shù)格式:aqrt(數(shù)值表達式)功能:返回指定表達式的平方根,自變量表達式的值需>=0結果:為N型,且且必然>=0&        求圓周率函數(shù)格式:pi()功能:返回圓周率,該函數(shù)沒有自變量結果:為N型,即為3.14&        求整函數(shù)格式:int(數(shù)值表達式) 只求整,不四舍五

25、入      ceiling(數(shù)值表達式)      floor(數(shù)字表達式)功能:返回指定數(shù)值表達式的整數(shù)部分      返回大于或等于指定數(shù)值表達式的最小整數(shù)      返回小于或等于指定數(shù)值表達式的最大整數(shù)結果:N型&        四舍五入函數(shù)格式:round(數(shù)值表達式1,數(shù)值表達式2)功能:返回指定表達式在指

26、定位置四舍五入的結果,數(shù)值表達式2指定四舍五入的位置。若數(shù)2>0,表示的是對數(shù)1要求的所保留的小數(shù)位數(shù);若數(shù)2=0,表示的是對數(shù)1取整數(shù),并四舍五入;若數(shù)2<0,表示的是對數(shù)1的整數(shù)位舍入的位數(shù),并四舍五入。結果:為N型&        求余函數(shù)格式:mod(數(shù)值表達式1,數(shù)值表達式2)功能:返回兩個數(shù)值相除后的余數(shù)。數(shù)1是被除數(shù),數(shù)2是除數(shù)。其他原則與求余運算符%的用法相同:被除數(shù)與除數(shù)都必須是整數(shù),除數(shù)不能為0。求余三原則表述如下:    若c=a%b 做這種題的時候先算

27、出c=a%b的值,然后c必須與a同號。還要注意的是:若a與b同號,則當前余數(shù)就是c                         若a與b異號,則當前余數(shù)結果是b+c結果:為N型注意:判定x是否能被i整除的方法有:      mod(x,i)=0     

28、x%i=0      int(x/i)= x/i&        求最大值和最小值函數(shù)格式:max/min(表達式1,表達式2表達式n) 其表達式的類型任意,但寫入括號內的必須是同一類型的表達式。功能:計算各自變量表達式的值,并返回其中的最大值或最小值結果:根據(jù)括號內表達式的類型而定2)字符函數(shù):自變量一般是字符型數(shù)據(jù)的函數(shù)。10個&        求字符串長度函數(shù)格式:len(字符表達式)

29、功能:返回指定字符表達式值的長度,即所包含的字符個數(shù)。結果:N型&        大小寫轉換函數(shù)格式:upper/lower(字符表達式)功能:將指定表達式中的小寫字母轉換成大寫字母或者將指定表達式中的大寫字母轉換成小寫字母,其他字符不變結果:C型&        空格字符串生成函數(shù)格式:space(數(shù)值表達式)功能:返回由指定數(shù)目的空格組成的字符串結果:C型&      

30、  刪除前后空格函數(shù)格式:trim(字符表達式)      ltrim(字符表達式)      alltrim(字符表達式)功能:返回指定字符表達式值去掉尾部空格后形成的字符串      返回指定字符表達式值去掉前導空格后形成的字符串      返回指定字符表達式值去掉前導和尾部空格后形成的字符串結果:C型&      

31、  取子串函數(shù)格式:left(字符表達式,長度)      right(字符表達式,長度)      substr(字符表達式,起始位置,長度)若缺省長度,表示從指定位置一直取到最后一個字符功能:從指定表達式值的左端取一個指定長度的字串作為函數(shù)值      從指定表達式值的右端取一個指定長度的字串作為函數(shù)值      從指定表達式值的指定起始位置取一個指定長度的字串作為函數(shù)值結果:C型&

32、amp;        計算子串出現(xiàn)次數(shù)函數(shù)格式:occurs(字符表達式1,字符表達式2)功能:返回第一個字符串在第二個字符串中出現(xiàn)的次數(shù),若字符串1不是字符串2的字串,函數(shù)值為0結果:N型&        求子串位置函數(shù)格式:at(字符表達式1,字符表達式2,數(shù)值表達式)  區(qū)分大小寫      atc(字符表達式1,字符表達式2,數(shù)值表達式)不區(qū)分大小寫功能:若字符表達式1是字符表達

33、式2的字串,則返回字符表達式1值的首字母在字符表達式2值中的出現(xiàn)位置;若不是字串返回0;第三個變量數(shù)值表達式用于表明要在字符表達式2值中搜索字符表達式1值的第幾次出現(xiàn)的位置,數(shù)值表達式的默認值是1。結果:N型&        子串替換函數(shù)格式:stuff(字符表達式1,起始位置,長度,字符表達式2)功能:用字符表達式2的值替換字符表達式1中由起始位置和長度指明的一個子串,替換和被替換的字符個數(shù)不一定相等。如果長度值是0,字符表達式2則插入由起始位置指定的字符前,如果長度值是空串,那么字符表達式1中由起始位置和長度指明

34、的字串被刪去。結果:C型&        字符替換函數(shù)格式:chrtran(字符表達式1,字符表達式2,字符表達式3)功能:當字符表達式1中的一個或多個字符與字符表達式2中的某個字符相匹配時,就用字符表達式3中的相同位置上的對應字符替換這些字符。如果字符表達式3包含的字符個數(shù)少于字符表達式2包含的字符個數(shù),因為沒有對應字符那么字符表達式1中相匹配的各個字符將被刪除;如果字符表達式3包含的字符個數(shù)多于字符表達式2包含的字符個數(shù),多余字符被忽略。結果:C型&    

35、0;   字符串匹配函數(shù)格式:like(字符表達式1,字符表達式2)功能:比較兩個字符串對應位置上的字符,若所有對應字符都相匹配,函數(shù)值返回邏輯真,否則返回邏輯假;字符表達式1中可以包含通配符*和?,*可與任何數(shù)目的字符相匹配,?可以與任何單個字符相匹配。結果:L型3)日期和時間函數(shù):自變量一般是日期型或日期時間型數(shù)據(jù)的函數(shù)。&        系統(tǒng)日期、系統(tǒng)時間和系統(tǒng)日期時間函數(shù)格式:date()      time()   &

36、#160;  datetime()功能:返回當前系統(tǒng)日期      返回當前系統(tǒng)時間      返回當前系統(tǒng)日期時間結果:D型C型T型&        求年份、月份和天數(shù)函數(shù)格式:year(日期表達式/日期時間表達式)      month(日期表達式/日期時間表達式)      day(日期表達式/

37、日期時間表達式)功能:從指定的日期表達式或日期時間表達式中返回年份從指定的日期表達式或日期時間表達式中返回月份從指定的日期表達式或日期時間表達式中返回天數(shù)結果:N型&        求時、分、秒函數(shù)格式:hour(日期時間表達式)      minute(日期時間表達式)sec(日期時間表達式)功能:從指定的日期時間表達式中返回小時部分(24小時制)從指定的日期時間表達式中返回分鐘部分從指定的日期時間表達式中返回秒數(shù)部分結果:N型4)數(shù)據(jù)類型轉換函數(shù):其功能就是將某一

38、種類型的數(shù)據(jù)轉換成另一種類型的數(shù)據(jù)。5個&        數(shù)值轉換成字符串格式:str(數(shù)值表達式,長度,小數(shù)位數(shù))功能:將數(shù)值表達式的值轉換成字符串,需要時自動四舍五入設數(shù)值表達式原長度為m,指定長度為n若n>m,返回結果自加前導空格若整數(shù)位<=n<=m,優(yōu)先取整數(shù)部分,再根據(jù)指定長度中剩下的位數(shù)確定小數(shù)位,注意整數(shù)位中不包括小數(shù)點若n<整數(shù)位,返回結果為一串星號*,即不能正常轉換。注意:長度的默認值是10,小數(shù)位數(shù)的默認值是0結果:C型&   

39、0;    字符串轉換成數(shù)值格式:val(字符表達式)功能:將由數(shù)字符號(包括正負號、小數(shù)點)組成的字符型數(shù)據(jù)轉換成相應的數(shù)值型數(shù)據(jù)。若字符串內出現(xiàn)非數(shù)字字符,那么只轉換前面部分;若字符串的首字符不是數(shù)字符號,則返回數(shù)值零,但忽略前導空格。    結果:N型&        字符串轉換成日期或日期時間格式:ctod(字符表達式)ctot(字符表達式)功能:將字符表達式的值轉換成日期型數(shù)據(jù)將字符表達式的值轉換成日期時間型數(shù)據(jù)結果:D型或T型& 

40、;       日期或日期時間轉換成字符串格式:dtoc(日期表達式/日期時間表達式)/dtoc(日期表達式/日期時間表達式 ,1)     ttoc(日期時間表達式)/ttoc(日期時間表達式 ,1)     注意:,1表示去掉年月日之間的分隔符功能:將日期型數(shù)據(jù)或日期時間型數(shù)據(jù)的日期部分轉換成字符串      將日期時間型數(shù)據(jù)轉換成字符串結果:C型,結果分別為8個和14個字符& 

41、60;      宏替換函數(shù)格式:&字符型變量.功能:替換出字符型變量的內容,若該函數(shù)與其后的字符無明確分界,則用.作為函數(shù)結束標識結果:由字符型變量的內容決定5)測試函數(shù):主要用來測試當前操作對象的狀態(tài)。11個&        值域測試函數(shù)格式:between(表達式1,表達式2,表達式3)功能:判斷表達式1的值是否在表達式2和表達式3的值之間,若表達式1的值大于等于表達式2的值并且小于等于表達式3的值,那么函數(shù)值為邏輯真,否則為邏輯假。若表達式2和表達式3

42、的值中有一個是null值,那么函數(shù)值也為null值結果:L型或null值&        null值測試函數(shù)格式:isnull(表達式)功能:判斷表達式的運算結果是否為null值,是則返回邏輯真,否則邏輯假結果:L型&        “空值”測試函數(shù)格式:empty(表達式)功能:判斷指定表達式的運算結果是否為“空值”,是則返回邏輯真,否則邏輯假結果:L型注意:不同類型數(shù)據(jù)的“空”值規(guī)定:數(shù)據(jù)類型空值數(shù)據(jù)類型空值數(shù)值型0雙精度型0字符型空串

43、、空格、制表符、回車、換行日期型空(ctod()貨幣型0日期時間型空(ctot()浮點型0邏輯型.f.整型0備注型字段空(無內容)&        數(shù)據(jù)類型測試函數(shù)格式:vartype(表達式)功能:測試指定表達式的類型,返回一個大寫字母表示某個類型的數(shù)據(jù)結果:C型注意:各大寫字母的含義如下:C字符型或備注型   N數(shù)值型、整型、浮點型或雙精度型Y貨幣型           L邏輯型  O

44、對象型           G通用型  D日期型           T日期時間型  Xnull值           U未定義注意:關于表文件也有一系列的測試函數(shù),vf為每個打開的表設置了一個內部記錄指針,指向正在被操作的記錄,該記錄稱為當前記錄,記錄指針的作用是標識表的當前記

45、錄。表文件的邏輯結果如下圖所示:文件開始標識(表文件首/BOF)首記錄(top)第2個記錄第n個記錄尾記錄(bottom)      文件結束標志(表文件尾/EOF)&        表文件首測試函數(shù)格式:bof(工作區(qū)號/表別名)功能:測試指定表文件中的記錄指針是否指向文件首,是則返回邏輯真,否則返回邏輯假結果:L型注意:若缺省自變量則測試當前表文件若表文件中不包含任何記錄則      函數(shù)返回邏輯真&am

46、p;        表文件尾測試函數(shù)格式:eof(工作區(qū)號/表別名)功能:測試指定表文件中的記錄指針是否指向文件尾,是則返回邏輯真,否則返回邏輯假結果:L型注意:若缺省自變量則測試當前表文件若表文件中不包含任何記錄則函數(shù)返回邏輯真&        記錄號測試函數(shù)格式:recno(工作區(qū)號/表別名)功能:測試指定表文件中當前記錄指針所指記錄的記錄號結果:N型注意:若缺省自變量則測試當前表文件若指定工作區(qū)沒有打開的表文件,函數(shù)值為0& 

47、;       記錄個數(shù)測試函數(shù)格式:reccount(工作區(qū)號/表別名)功能:返回指定表文件中的記錄個數(shù)結果:N型注意:若缺省自變量則測試當前表文件若指定工作區(qū)沒有打開的表文件,函數(shù)值為0&        條件測試函數(shù)格式:iif(邏輯表達式,表達式1,表達式2)功能:測試邏輯表達式的值,若為邏輯真,函數(shù)返回表達式1的值,若為邏輯假,函數(shù)返回表達式2的值結果:根據(jù)表達式1和表達式2的類型而定注意:表達式1和表達式2的類型不要求相同& &#

48、160;      記錄刪除測試函數(shù)格式:deleted(工作區(qū)號/表別名)功能:測試指定的表文件中的當前記錄是否有邏輯刪除標記,有則返回邏輯真,沒有則返回邏輯假結果:L型四、VF數(shù)據(jù)庫及其操作(一)數(shù)據(jù)庫及其相關操作1.概念:1)含義:數(shù)據(jù)庫是一個邏輯上的概念和手段,它通過一組系統(tǒng)文件將相互關聯(lián)的數(shù)據(jù)庫表及其相關的數(shù)據(jù)庫對象統(tǒng)一組織和管理。2.建立數(shù)據(jù)庫文件:3種方法1)打開項目管理器數(shù)據(jù)選項卡數(shù)據(jù)庫新建新建數(shù)據(jù)庫輸入數(shù)據(jù)庫文件名保存2)文件新建文件類型:數(shù)據(jù)庫輸入數(shù)據(jù)庫文件名保存3)create database 數(shù)據(jù)庫文件名(此命令輸入后

49、數(shù)據(jù)庫文件已建立,但其數(shù)據(jù)庫設計器并未顯示,只需再輸入modify database 數(shù)據(jù)庫文件名即可顯示)3.打開數(shù)據(jù)庫文件:3種方法1)打開項目管理器數(shù)據(jù)選項卡選中相應的數(shù)據(jù)庫打開/關閉2)文件打開文件類型:數(shù)據(jù)庫選中相應的數(shù)據(jù)庫確定3)open database 數(shù)據(jù)庫文件名4.修改數(shù)據(jù)庫文件:3種方法即調用數(shù)據(jù)庫設計器1)打開項目管理器數(shù)據(jù)選項卡展開數(shù)據(jù)庫至相應的數(shù)據(jù)庫修改2)文件打開文件類型:數(shù)據(jù)庫選中相應的數(shù)據(jù)庫確定3)modify database 數(shù)據(jù)庫文件名(文件名存在是修改,不存在即為新建)5.關閉數(shù)據(jù)庫文件:2種方法1)close database 關閉當前數(shù)據(jù)庫(之后不

50、加當前庫文件名)2)close all 關閉所有打開的數(shù)據(jù)庫6.刪除數(shù)據(jù)庫文件:2種方法1)打開項目管理器數(shù)據(jù)選項卡展開數(shù)據(jù)庫至相應的數(shù)據(jù)庫移去移去2)delete database 數(shù)據(jù)庫文件名注意:&        做題前切記設置好自己的存盤位置,未存至指定位置,不得分。&        項目、項目文件、項目管理器使用項目管理器時,先要建立項目文件(.pjx)項目文件的建立方法:2種鼠標法:文件新建文件類型:項目輸入項目文件名保存項目管

51、理器    命令法:create/modify project 項目文件名項目是指文件、數(shù)據(jù)、文檔和vf對象的集合項目管理器是vf中處理數(shù)據(jù)和對象的主要組織工具,為系統(tǒng)開發(fā)者提供了極為便利的工作平臺;功能:組織和管理數(shù)據(jù)以及編譯。項目管理器各選項卡的具體內容:     全部選項卡:數(shù)據(jù) 文檔 類 代碼 其他     數(shù)據(jù)選項卡:數(shù)據(jù)庫 自由表 查詢     文檔選項卡:表單 報表 標簽     類選項卡:無

52、     代碼選項卡:程序 API庫應用程序     其選項卡他:菜單 文本文件 其他文件(二)數(shù)據(jù)庫表及其相關操作1.概念:數(shù)據(jù)庫表是數(shù)據(jù)的載體,擴展名為.dbf。2.建立數(shù)據(jù)庫表:4種方法1)打開項目管理器數(shù)據(jù)選項卡展開相應數(shù)據(jù)庫至表新建新建表輸入數(shù)據(jù)庫表文件名保存2)打開數(shù)據(jù)庫設計器擊右鍵/數(shù)據(jù)庫菜單新建表輸入數(shù)據(jù)庫表文件名保存3)文件新建文件類型:表輸入數(shù)據(jù)庫表文件名保存4)create 表名.dbf注意:建立數(shù)據(jù)庫表時窗口必須打開相對應的數(shù)據(jù)庫。3.打開數(shù)據(jù)庫表:2種方法1)文件打開文件類型:表選中相應表

53、確定2)use 表名(有表名是打開相應表,無表名是關閉表)4.修改數(shù)據(jù)庫表:4中方法1)打開項目管理器數(shù)據(jù)選項卡展開數(shù)據(jù)庫至相應的表修改2)數(shù)據(jù)庫設計器選中相應表擊右鍵/數(shù)據(jù)庫菜單修改3)選中相應表顯示菜單表設計器修改即可4)modify structure5.刪除數(shù)據(jù)庫表:3種方法1)打開項目管理器數(shù)據(jù)選項卡展開數(shù)據(jù)庫至相應的表移去刪除2)數(shù)據(jù)庫設計器選中相應表擊右鍵/數(shù)據(jù)庫菜單刪除/移去刪除3)drop table 數(shù)據(jù)庫表名6.表的瀏覽:4種方法1)打開項目管理器數(shù)據(jù)選項卡展開數(shù)據(jù)庫至相應的表瀏覽2)數(shù)據(jù)庫設計器選中相應表擊右鍵/數(shù)據(jù)庫菜單瀏覽3)選中相應的表顯示菜單瀏覽4)browse

54、 表名(之前需用use 命令選定當前表)7.向表追加記錄(都是追加在原有記錄之后)²      append blank 在所有記錄后追加一條空白記錄,等價于表菜單-追加新記錄²      append 在所有記錄后追加若干條新記錄8.向表插入記錄²      insert 在當前記錄之后插入若干條記錄²      insert before 在當前記錄之前

55、插入若干條記錄²      insert blank 在當前記錄之后插入一條記錄²      insert before blank 在當前記錄之前插入一條記錄9.刪除表記錄邏輯刪除:只是在記錄旁作刪除標記,必要時還可去掉刪除標記恢復表記錄²      delete 刪除表中當前記錄²      delete for 條件表達式 刪除表中滿足條件的所有記錄物

56、理刪除:真正從表中刪除記錄²      pack 將當前表中具有邏輯刪除標記的記錄物理刪除²      zap 將當前表中所有記錄物理刪除,無論是否由邏輯刪除標記10.恢復表記錄²      recall 恢復表中當前記錄²      recall all 恢復表中所有被刪記錄²      reca

57、ll for 條件表達式  恢復表中滿足條件的所有被刪記錄11.更新表記錄²            replace all 字段名 with 表達式  把表中全部記錄的字段名更新為表達式的值²            replace 字段名 with 表達式  只把表中當前記錄的字段名更新為表達式的值² 

58、60;          replace 字段名 with 表達式 for 條件表達式  只把表中滿足條件的記錄的字段名更新為表達式的值12.顯示表記錄²      list  默認顯示當前表中所有記錄²      dispay 默認顯示當前表中當前記錄²        

59、0;   list/display 字段名1字段名n for 條件表達式  顯示表中滿足調價的記錄²            list next n(n為正整數(shù)或負整數(shù))顯示從當前記錄往后/往前算起的n條記錄13.查詢定位記錄²      go n(此處n為記錄號)將指針定位于第n條記錄,即記錄號為n的記錄²      go to

60、p  將指針定位于首記錄²      go bottom  將指針定位于尾記錄²      skip n(n為正整數(shù)或負整數(shù),默認為1) 指針從當前記錄向下/向上跳n²            條件定位:locate for 定位表達式  將指針定位于當前表中滿足條件的第一條記錄上為了判斷指針所指向的記錄是否滿足條件,可用foun

61、d()函授測試,返回邏輯真值,表示滿足條件,并且還可通過continue命令繼續(xù)查找表中其他滿足條件的記錄。(三)自由表及其與數(shù)據(jù)庫表之間的轉換1.自由表:即不屬于任何數(shù)據(jù)庫的表。它的建立方法與數(shù)據(jù)庫表的方法相同,但是窗口必須要沒有打開的數(shù)據(jù)庫。2.自由表與數(shù)據(jù)庫表之間的轉換1)將自由表添加到數(shù)據(jù)庫中     打開項目管理器數(shù)據(jù)選項卡展開數(shù)據(jù)庫至表添加選中自由表確定   打開數(shù)據(jù)庫設計器擊右鍵/數(shù)據(jù)庫菜單添加表選中自由表確定   add table 自由表名2)從數(shù)據(jù)庫中移為自由表   

62、;   打開項目管理器數(shù)據(jù)選項卡展開數(shù)據(jù)庫至表移去移去      打開數(shù)據(jù)庫設計器擊右鍵(刪除)/數(shù)據(jù)庫菜單(移去)移去      remove table 自由表名(四)索引及其相關操作1.概念:索引是由指針構成的文件,這些指針邏輯上按照索引關鍵字值進行排序,創(chuàng)建一個指向(.dbf)文件記錄的由指針構成的文件,新創(chuàng)建的索引文件和.dbf文件分別存儲,并不改變原表中記錄的物理順序。2.作用:可加速對表的查詢操作。3.分類:1)主索引:建立主索引的字段值不允許重復,一個表只能有

63、一個主關鍵字,所以一個表只能創(chuàng)建一個主索引,自由表不能建立主索引。2)候選索引:也要求建立候選索引的字段值不允許重復,一個表可建多個候選索引,自由表也可建立候選索引。3)唯一索引:為分類排序,建立唯一索引的字段值可以重復,它以指定字段的首次出現(xiàn)值為基礎,選定一組記錄并對記錄進行分類且排序,一個數(shù)據(jù)庫表或自由表中可建多個唯一索引。4)普通索引:建立普通索引的字段值可以重復,并且索引項中也允許出現(xiàn)重復值,系統(tǒng)默認為普通索引。一個數(shù)據(jù)庫表或自由表可建多個普通索引。4.索引的建立:2種方法1)用鼠標在表設計器進行,方法如下:打開表設計器字段選項卡選中相應字段名選擇升/降序索引選項卡選擇索引類別確定2)

64、通過命令建立,格式如下:index on 字段名 to 單獨索引文件名/tag 索引項名  asce(默認升序,可省略不寫)/desc(降序) unique(唯一索引)/candidate(候選索引)注意:to 單獨索引文件名建立的是單獨索引文件,它的擴展名是(.idx),一般只在建立臨時索引時才可使用,其中只有一個排序,并且只能建立唯一索引或普遍索引。tag索引項名短語是建立結構符合索引,即多個索引可建立在一個索引文件中,其文件名與相關的表同名,并且有.cdx為擴展名,其中包含多個排序。5.索引的使用1)打開索引文件:set index to 結構復合索引文件名.cdx 

65、                set index to 單獨索引文件名.idx2)在使用一個特定的索引項進行查詢顯示時,必須指定當前索引項:set order to 索引項名/序列號3)使用索引快速定位:seek 字段值 order 索引項名/序列號作用:根據(jù)某個索引項將指針快速定位于相關字段值的第一條記錄4)刪除索引:delete tag 索引項名  刪除指定索引delete tag all 刪除當前表中所有索引(五)數(shù)據(jù)完整性1.

66、概念:是保證數(shù)據(jù)正確的特性,一般包括實體完整性、域完整性和參照完整性等。2.實體完整性1)概念:是保證表中記錄唯一的特性,即在一個表中不允許有重復的記錄。2)實現(xiàn)方法:在vf中利用主關鍵字(主索引)或候選關鍵字(候選索引)來保證表中記錄的唯一性。3.域完整性1)概念:即字段有效性,是字段值的取值范圍。只有數(shù)據(jù)庫表中才可建立域完整性。2)域約束規(guī)則:也稱為字段有效性規(guī)則,即通過對字段類型、字段寬度或定義的取值范圍來對輸入數(shù)據(jù)進行正確性檢驗。3)建立方法:打開表設計器選中相應的字段編輯其約束性規(guī)則確定   編輯其約束性規(guī)則時的要求:   規(guī)則:邏輯表達式確定

67、字段值取值范圍   信息:字符串表達式若違背上述規(guī)則時窗口的提示信息alter table 表名 alter 字段名 set/drop check(規(guī)則)邏輯式 error(信息)字符表達式   默認值:所寫數(shù)據(jù)類型由字段類型決定alter table 表名 alter 字段名 set/drop default(默認值)默認值的值4.參照完整性1)含義:當插入、刪除或修改一個表中的數(shù)據(jù)時,通過參照引用相互關聯(lián)的另一個表中的數(shù)據(jù),來檢驗對表的數(shù)據(jù)操作是否正確。2)三原則:插入原則、刪除原則和修改原則3)建立和編輯參照完整性原則的方法:3步²

68、60;         建立表之間的聯(lián)系(兩表必須在同一數(shù)據(jù)庫中)打開數(shù)據(jù)庫設計器父表建立主索引,字表建立普通索引建立相應表之間的聯(lián)系(鼠標從主索引拖拽至普通索引即可,表之間會生成一條細實線,右擊可刪除聯(lián)系)²          清理數(shù)據(jù)庫(即指物理刪除數(shù)據(jù)庫中各個表中所有帶有刪除標記的記錄,相當于pack)打開數(shù)據(jù)庫設計器數(shù)據(jù)庫菜單清理數(shù)據(jù)庫(若清除未成功,則close  all,然后再以獨占方式打開數(shù)據(jù)

69、庫重新清理即可)²          設置參照完整性原則打開數(shù)據(jù)庫設計器擊右鍵/編輯參照完整性規(guī)則  更新規(guī)則規(guī)定了當更新父表中連接字段(主關鍵字)值時,如何處理相關的子表中的記錄:級聯(lián)則用新的連接字段值自動修改子表中的相關所有記錄;限制若子表中有相關記錄,則禁止修改父表中的連接字段值;忽略則不作參照完整性檢查,可以隨意更新父表中的連接字段值。刪除規(guī)則規(guī)定了當刪除父表中記錄時,如何處理子表相關的記錄:  級聯(lián)則自動刪除子表中相關所有記錄;  限制若子表中有相關的記錄

70、,則禁止刪除父表中的記錄;  忽略則不作參照完整性檢查,即刪除父表的記錄時與子表無關。插入規(guī)則規(guī)定了當插入子表中的記錄時,是否進行參照完整性檢查:  限制若父表中沒有匹配的連接字段值則禁止插入子表記錄;  忽略則不作參照完整性檢查,即可以隨意插入子表記錄。(六)多個表的同時使用與建立表之間的臨時關聯(lián)1.多個表的同時使用1)vf中共有32767個工作區(qū),每一個工作區(qū)只能打開一張表;若需在同一時刻打開多個表,則只需在不同的工作區(qū)中打開不同的表。2)指定工作區(qū)的命令格式:  格式一:select 工作區(qū)號(1-32767)/系統(tǒng)別名(a-j,w11-w3276

71、7)/0(即選定當前最小工作區(qū))    注意:此格式最后一次所選工作區(qū)為當前工作區(qū)格式二:use 表名 in 工作區(qū)號/系統(tǒng)別名/0  注意:此格式第一次所選工作區(qū)為當前工作區(qū)3)測試當前工作區(qū)號的函數(shù):selected()2.建立表之間的臨時關聯(lián)1)含義:永久聯(lián)系是指基于索引建立的表之間的關聯(lián),顯示為表索引之間的細實線,每次使用時不需重新建立,但它不能控制工作區(qū)中記錄指針的聯(lián)動。臨時關聯(lián):能夠控制表之間記錄指針關系的臨時聯(lián)系(父動子動)。2)建立方法:²       

72、60;  分工作區(qū)打開相應表²          分別為不同工作區(qū)的表中的外部關鍵字建立索引(普通索引)²          建立臨時關聯(lián)命令格式為:set relation to 索引關鍵字(外部關鍵字)into工作區(qū)號/系統(tǒng)別名/表名注意:當前工作區(qū)的表為父表。而into 短語后的工作區(qū)中的表為子表。3)解除臨時聯(lián)系:set relation to  取消當前記錄到所有表的

73、臨時關聯(lián);set relation off into工作區(qū)號/系統(tǒng)別名/表名  取消某個具體的臨時聯(lián)系。五、關系數(shù)據(jù)庫標準語言SQL(一)SQL概述1.SQL的基本概況1)含義:SQL是structured query languge的縮寫,它是關系數(shù)據(jù)庫的標準數(shù)據(jù)語言,所有的關系數(shù)據(jù)庫管理系統(tǒng)都支持。2)功能:數(shù)據(jù)查詢、數(shù)據(jù)操作和數(shù)據(jù)定義2.特點1)一體化:包括數(shù)據(jù)定義、查詢和操作等方面功能,可以完成數(shù)據(jù)庫活動中的全部工作;2)高度非過程化:只需告訴計算機用戶“做什么”,SQL便可自動完成全部工作;3)非常簡潔:只有為數(shù)不多的幾條命令組成;4)它可以直接以命令方式使用,也可以嵌入到

74、程序設計語言中以程序方式使用。3.主要短語及其含義1)select-說明要查詢的數(shù)據(jù)2)from-說明查詢的數(shù)據(jù)來自哪些表,可對單表或多表進行查詢3)where-說明查詢條件,即選擇元組的條件4)group by-用于對查詢進行分組,可用它對數(shù)據(jù)進行分組匯總5)having-必須跟group by短語一起使用,用來限定分組必須滿足的條件6)order by-用來對查詢的結果進行排序(二)SQL的查詢功能1.簡單查詢1)適用范圍:即單表查詢,查詢的字段信息和查詢條件都來自于同一張表2)語法格式:select 字段名1,字段名n from 表名 where 條件式3)查詢細節(jié):ü       di

溫馨提示

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

評論

0/150

提交評論