版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
VisualFoxPro專升本教學(xué)專用講義
******微軟對VF中的命令語法約定*****
(1)VF中命令動詞可以縮寫前四個字母或四個字母以上
例如命令replace,可以寫成replreplareplac
⑵命令格式說明:?表達必選項目□表達可選項|表達二選一
list[范圍][for/while〈條件>][fields〈字段名表》]
(3)VF命令不區(qū)分大小寫:如modifystucture與MODIFYSTUCTURE與mOdlfYStuctURE是同樣的。
(4)假如命令帶有參數(shù),命令和參數(shù)、參數(shù)和參數(shù)之間需要用空格隔開,建議理解時,根據(jù)命令組成部
分的含義來擬定是否需要分隔符.
CREATETABLE學(xué)生(學(xué)號c(8),姓名C(8),性別C(2))
(5)一般來講,即命令以動詞開頭,短語順序無關(guān)!下面三條命令等價:
listallfor性別="男"fields姓名,性別,年齡
listfor性別="男"fields姓名,性別,年齡all
listfields姓名,性別,年齡allfor性別="男"
(6)一行寫一個VF命令,一個命令寫成多行時,要加上續(xù)行符號一分號,后回車,在下一行繼續(xù)書
寫即可,如:
listfields姓名,性別,年齡;
allfor性別一男”
(7)重要提醒:VFP命令中所有的英文字符或標(biāo)點符號應(yīng)當(dāng)都是半角符號!!
VFP數(shù)據(jù)庫—概念要點
1.數(shù)據(jù)庫是存儲在計算機存儲設(shè)備上,結(jié)構(gòu)化的相關(guān)數(shù)據(jù)的集合。不僅涉及數(shù)據(jù)自身,并且涉及
相關(guān)事物之間的聯(lián)系。
2.數(shù)據(jù)庫管理系統(tǒng)(DBMS)。數(shù)據(jù)庫系統(tǒng)的核心軟件,操作系統(tǒng)支持下的系統(tǒng)軟件。
3.數(shù)據(jù)庫系統(tǒng):引進數(shù)據(jù)庫技術(shù)后的計算機系統(tǒng)。特點:數(shù)據(jù)共享,減少冗余;特定數(shù)據(jù)模型;較
高的數(shù)據(jù)獨立性。
4.數(shù)據(jù)模型3種:層次、網(wǎng)狀、關(guān)系;關(guān)系模型:二維表結(jié)構(gòu)來表達實體以及實體之間聯(lián)系,關(guān)
系數(shù)學(xué)理論為基礎(chǔ)。
5.類是對一類相似對象的性質(zhì)描述,這些對象具有相同的性質(zhì):相同種類的屬性以及方法。類好
比是一類對象的模板,有了類定義后,基于類就可以生成這類對象中任何一個對象。
***類的3特性:類具有封裝性、繼承性、多態(tài)性***
6.對象:客觀世界里的任何實體都可以被看作是對象。對象可以是具體的物,也可以指某些概念。
7.關(guān)系定義:一個關(guān)系就是一張二維表,每個關(guān)系有一個關(guān)系名。在VFP里,稱為〃表〃,文獻擴展名
為.dbfo
3.元組:二維表水平方向的行稱為一個元組。元組相應(yīng)存儲文獻中的一個具體記錄。
4.屬性:二維表中垂直方向的列稱為屬性,又稱為字段,每一列有一個屬性名。
5.域:屬性的取值范圍,即不同元組對同一個屬性的取值所限定的范圍稱為域。
6.關(guān)鍵字:關(guān)鍵字是屬性或?qū)傩约?,其值可以惟一的?biāo)記一個元組。
7.外部關(guān)鍵字:假如表中的一個字段不是本表的主關(guān)鍵字或候選關(guān)鍵字,而是此外一個表的主關(guān)鍵
字或候選關(guān)鍵字,這個字段(屬性)就稱為外部關(guān)鍵字。
8.關(guān)系的特點
(1)關(guān)系必須規(guī)范化。規(guī)整二維表,列不能再提成更多的列。
(2)在同一個關(guān)系中不能出現(xiàn)相同的屬性名。
(3)關(guān)系中不允許有完全相同的元組。
(4)在一個關(guān)系中元組的順序無關(guān)緊要。
(5)在一個關(guān)系中列的順序無關(guān)緊要。任意互換兩列的位置不影響數(shù)據(jù)的實際含義。
?實體聯(lián)系:一對一、一對多、多對多
?設(shè)有部門和職工兩個實體,每個職工只能屬于一個部門,一個部門可以有多名職工,則部門與
職工實體之間的聯(lián)系類型是()。A)m:nB)l:mC)m:kD)1:1
3種關(guān)系運算:選擇(行)、投影(列)、連接(兩表、共公屬性);關(guān)系運算的結(jié)果仍然是一個關(guān)系。
數(shù)據(jù)完整性:數(shù)據(jù)的對的性和一致性;分3種:實體、參照、域完整性,前2個是關(guān)系數(shù)據(jù)庫必須
滿足的!
1.實體完整性:實體惟一性一表中記錄惟一性,即表中不許有反復(fù)的記錄。用主關(guān)鍵字(主索引)
或候選關(guān)鍵字(候選索引)來保證表中的記錄惟一,即保證實體惟一性。
2.域完整性:數(shù)據(jù)類型的定義及字段有效性規(guī)則屬于域完整性范疇。
3.參照完整性:當(dāng)插入、刪除或修改一個表中的數(shù)據(jù)時,通過參照引用關(guān)聯(lián)的另一個表中的數(shù)據(jù),
來檢核對表的數(shù)據(jù)操作是否對的。建立參照完整性,必須一方面建立表之間的永久聯(lián)系。
參照完整性:一表的數(shù)據(jù)操作是否允許要參照此外一個表中的數(shù)據(jù);
參照完整性規(guī)則涉及更新規(guī)則、刪除規(guī)則、插入規(guī)則。
?更新規(guī)則規(guī)定了當(dāng)更新父表中的連接字段(主關(guān)鍵字)值時,如何解決相關(guān)的子表中的記錄:
>假如選擇"級聯(lián)”,則用新的連接字段值自動修改子表中的相關(guān)所有記錄;
>假如選擇"限制",若子表中有相關(guān)的記錄,則嚴(yán)禁修改父表中的連接字段值;
>假如選擇"忽略",則不作參照完整性檢查,可以隨意更新父表中的連接字段值。
?刪除規(guī)則規(guī)定了當(dāng)刪除父表中的記錄時,如何解決子表中相關(guān)的記錄:
>假如選擇“級聯(lián)",則自動刪除子表中的相關(guān)所有記錄;
>假如選擇''限制",若子表中有相關(guān)的記錄,則嚴(yán)禁刪除父表中的記錄;
>假如選擇〃忽略”,則不作參照完整性檢查,即刪除父表的記錄時與子表無關(guān)。
?插入規(guī)則規(guī)定了當(dāng)插入子表中的記錄時,是否進行參照完整性檢查:
>假如選擇''限制",若父表中沒有相匹配的連接字段值則嚴(yán)禁插入子記錄;
>假如選擇''忽略",則不作參照完整性檢查,即可以隨意插入子記錄。
?參照完整性的規(guī)則不涉及()。A)更新規(guī)則B)刪除規(guī)則C)插入規(guī)則D)檢索規(guī)則
?將單價字段的字段有效性規(guī)則設(shè)為〃單價>0”,通過該設(shè)立,能保證數(shù)據(jù)的()。
表的分類:自由表(dbf):獨立于數(shù)據(jù)庫之外的表,只存儲相對獨立的信息,字段名(10字符)
數(shù)據(jù)庫表(dbf):可以使用長表名和長字段名(128字符)、字段可以有標(biāo)題、注釋、
設(shè)立“默認(rèn)值”、能設(shè)立字段級和記錄級“規(guī)則”、對于插入、刪除、修改等操作可以設(shè)立觸發(fā)器
關(guān)系:永久關(guān)系、臨時關(guān)系(臨時創(chuàng)建;其中一個表時關(guān)系即被自動關(guān)閉;通過主表記錄指針的移
動來控制子表記錄指針的移動(指針聯(lián)動);用Setrelation命令來創(chuàng)建,當(dāng)用關(guān)鍵字段建立關(guān)系
時,子表必索引;當(dāng)用記錄號recno()來建立關(guān)系時,子表不必索引)
VFP的數(shù)據(jù)類型和重要文獻類型
1.數(shù)據(jù)類型:數(shù)據(jù)類型決定了數(shù)據(jù)的存儲方式和運算方式。
,DBC數(shù)據(jù)庫文獻/.DBF表文獻/.FPT數(shù)據(jù)表備注文獻/.PJX項目文獻/.PRG程序文獻/.CDX復(fù)合
索引文獻/.IDX單一索引文獻/.SCX表單文獻/.FRX報表文獻/.LBX標(biāo)簽文獻/.MNX菜單文獻
/.MPR菜單程序文獻/.APP應(yīng)用程序文獻/.EXE可執(zhí)行應(yīng)用程序文獻
VFP工作方式(2種):交互方式(菜單、工具欄按鈕、命令窗口)、程序運營方式
有三種操作方法來顯示與隱藏命令窗口:
①單擊命令窗口右上角的關(guān)閉按鈕可關(guān)閉它,通過''窗口"菜單下的''命令窗口"選項可以重新打
開。
②單擊"常用”工具欄上的“命令窗口”按鈕。按下則顯示,彈起則隱藏命令窗口。
③按Ctrl+F4組合鍵隱藏命令窗口;按Ct③+F2組合鍵顯示命令窗口。
常量:常數(shù)一值不變化的量。(***注意定界符號,定界符僅說明數(shù)據(jù)類型,一般不輸出***)
(1)數(shù)值型常量:由數(shù)字0?9、小數(shù)點和正負(fù)號構(gòu)成。100.98.45-51.234E21.23e-2
(2)貨幣型常量:表達貨幣值,前置符($)。存儲和計算時,采用4位小數(shù),自動四舍五入。$90
(3)字符型常量:字符串一字符系列。定界符:半角單引號、雙引號或方括號。‘沈陽‘、”
沈陽”、[沈陽]
(4)日期型常量:定界符是一對花括號。嚴(yán)格日期:「YYYY/MM/DD}「2023/03/19}傳統(tǒng)日
期格式:{MM/DD/YY}如:{07/08/09}
(5)日期時間型常量:「YYYY/MM/DDHH:MM:SSA|P}。{"2023-08-3011:15:30A}
(6)邏輯型常量:用.定界,邏輯真:.t..T..y..Y.邏輯假:.f..F..n..N.
常量輸出示例(定界符僅說明數(shù)據(jù)類型,一般不輸出)
?1.23e3&&1230?”沈陽”&&沈陽
?1.23e-2&&0.0123?[abc]+'def7&&abcdef
?.456&&0.456?$90-$10&&80.0000
?sqrt(9)&&3.00?$123.45678&&123.4568
Setcenturyoff&&不顯示世紀(jì),默認(rèn)?12/03/04&&1
?{"2023/03/19}&&03/19/08?.t.&&.T.
?{"2023-08-3011:15:30A)?3>5&&.F.
&&08/30/0511:15:30AM?.f.&&.F.
Setcenturyon&&顯示世紀(jì)Setmarkto&&設(shè)立日期分隔符
?「2023/03/19}&&03/19/2023?「2023/03/19}U03-19-2023
?{"2023-08-3011:15:30p)Setdatetobritish
&&08/30/202311:15:30AM?「2023/03/19}&619-03-2023
變量:字段變量和內(nèi)存變量兩大類。變:值與類型的可改變。
內(nèi)存變量的顯示LISTMEMORY|DISPLAYMEMORY
(2)數(shù)組:由一系列元素組成,每個數(shù)組元素可通過數(shù)組名及相應(yīng)的下標(biāo)來訪問。每個數(shù)組
元素相稱于一個簡樸變量同樣使用,可以給各元素分別賦值。
創(chuàng)建數(shù)組的命令格式為:
DIMENSION〈數(shù)組名〉(〈下標(biāo)上限1>[,<下標(biāo)上限2>])[,.......]
DECLARE〈數(shù)組名〉(〈下標(biāo)上限1>[,<下標(biāo)上限2>])[,.......]
以上兩種格式的功能完全相同。數(shù)組創(chuàng)建后,系統(tǒng)自動給每個數(shù)組元素賦以邏輯假.F.。
1、定義數(shù)組(declare或者dimension命令)
dimensionA(10)&&定義一個一維數(shù)組A,該數(shù)組有10個元素,數(shù)組下標(biāo)從1開始。
displaymemory&&己定義一個變量,數(shù)組不管有多少個元素,顯示內(nèi)存變量時只算一個變量,
但每一個數(shù)組元素都可以象一個普通內(nèi)存變量同樣來使用。
dimensionb[3,2]&&定義一個二維數(shù)組B,該數(shù)組有6個元素。
displaymemory&&用戶定義的數(shù)組但沒有賦值,系統(tǒng)自動初始化其值為邏輯假.F
注:二維數(shù)組在內(nèi)存中以行豐序方式存放,可以用一維數(shù)組(下標(biāo)為其排列序號)的方式來訪問,
即:
第1個元素:bfl,l]第2個元素:b[l,2]
第3個元素:b[2,l]第4個元素:b[2,2]
第5個元素:b[3,l]第6個元素:b[3,2]
b[1,1]可以看作是b[l]、b[1,2]=b⑵,b[2,l]=,b[2,2]=b[3],b[3,l]=,b[3,2]=b[6]
*****練習(xí):dimensionb[3,4],貝Ib[2,2]=b[]b[3,3]=b[]
2、數(shù)組初始化
A[l]=l&&給數(shù)組元素A[l]賦值為1
B[l,2]=3&&給數(shù)組元素B[l,2]賦值為3
注:每一個數(shù)組元素都可以象一個普通內(nèi)存變量同樣來進行賦值。
A=100&&給數(shù)組A的所有元素賦值為100
displaymemory&&看到A數(shù)組的所有元素值為100
A[l]="OK”&&給數(shù)組元素A[l]賦值為OK字符串
?A&&OK輸出數(shù)組元素A[l]的值。
注:數(shù)組名在賦值表達式中,代表所有的數(shù)組元素;在輸出語句中,數(shù)組名代表該數(shù)組的第一個元
素。
3、調(diào)試程序MX.PRG:從鍵盤輸入10個數(shù)保存到數(shù)組N中,并輸出10個數(shù)中的最大值。
DimeN[10]
Fork=1to10
Input“一個數(shù):"toN[k]
Endfor&&數(shù)組初始化
Max=N[l]&&假設(shè)數(shù)組第一個元素最大。
Fork=2to10
Ifmax<N[k]&&依次與后面的元素比較
Max=N[k]&&將碰到的較大元素值保存在max變量中
Endif
Endfor&&數(shù)組比較完畢,max變量中保存該數(shù)組的最大值
?max&&輸出該數(shù)組的最大值
注:求最大值算法的思想是先假設(shè)第一個元素是最大,并保存到max變量中,然后將max變量依
次與后面的元素值比較,若碰到的更大的元素值,則將其保存在max變量中,直到所有元素都比
較完畢,max變量中保存的就是最大值。
4、改寫上面的最大值程序,使其功能變?yōu)榍髷?shù)組中元素的最小值。
Min=N[l]&&假設(shè)數(shù)組第一個元素最大。
Ifmin<N[k]&&依次與后面的元素比較
min=N[k]&&將碰到的較大元素值保存在max變量中
Endif
?min
5、求ZGDA.DBF表中年齡的最大值,并輸出年齡最大的那一條記錄。
UseZGDA
MAX=年齡&&假設(shè)第一條記錄的年齡最大,并存放到max中
RN=1
DowhilenoteofO
skip
IfMAX〉年齡
MAX=年齡&&將碰到的較大年齡值保存在max變量中
RN=recnoQ&&保存當(dāng)前記錄號
Endif
Enddo
?“年齡的最大值是“,MAX
goRN&&指針定位年齡最大的記錄
display
?表中數(shù)據(jù)與數(shù)組數(shù)據(jù)之間的互換
I.將表中的當(dāng)前記錄復(fù)制到數(shù)組
格式:SCATTER[FIELDS<字段名表>]TO〈數(shù)組名》[BLANK]
功能:將表的當(dāng)前記錄從指定字段表中的第一個字段內(nèi)容開始,依次復(fù)制到數(shù)組名中的從第一
個數(shù)組元素開始的內(nèi)存變量中。
II.將數(shù)組數(shù)據(jù)復(fù)制到表的當(dāng)前記錄
格式:GATHERFROM〈數(shù)組名》[FIELDS〈字段名表》]
功能:將數(shù)組中的數(shù)據(jù)作為一個記錄復(fù)制到表的當(dāng)前記錄中。從第一個數(shù)組元素開始,依次向
字段名表指定的字段填寫數(shù)據(jù)。
?表達式:由常量、變量、函數(shù)和運算符組成的式子。
1、數(shù)值表達式:運算結(jié)果仍然是數(shù)值型數(shù)據(jù)。算術(shù)運算優(yōu)先級:()-負(fù)號**或"*、/、%
求余運算+、-
?-3**2結(jié)果為:
?(3+4)/2"2+int(12.5)結(jié)果為:
注意:
?書寫表達式,乘號不能省略。3X要寫成3*x
?數(shù)值表達式是由算術(shù)運算符和數(shù)值型常數(shù)、變量、函數(shù)組成,運算結(jié)果為數(shù)值型數(shù)據(jù)。算
術(shù)運算符為:+-*/%"()。
?算術(shù)運算符的優(yōu)先順序由高到低依次為:括號、負(fù)號、乘方、乘除、模運算(取余)、力口減,
同級運算從左到右依次進行。
2、字符表達式:+串直接連接一將前字符串尾部的空格移到后串尾部再連。
?"abc**"+"*cd*"&&abc***cd**代表空格
?”abc**"*cd*"&&abc*cd****代表為空格
注意:
?字符表達式是由字符運算符和字符型常數(shù)(即用定界符括起來的字符串)、變量、函數(shù)組成,
運算結(jié)果是字符型數(shù)據(jù)或邏輯值。
?二種字符串運算符,優(yōu)先級別相同。
?完全連接是指兩個字符串合并,即涉及空格在內(nèi)的字符串中所有字符相加。不完全連接運
算是將串1尾部的空格移到串2的尾部后,再連接。
3、日期時間表達式:+一運算符;日期+數(shù)=日期、日期-數(shù)=日期、日期-日期=數(shù)日期+日期
?「2023-3-29}-「2023-3-21}結(jié)果為:
?{"2023-3-29}-{*2023-3-21}&&兩日期表達式相加,屬非法表達式;
?「2023-3-25}+3&&r2023-3-28}
?{"2023-3-25)-3結(jié)果為:L用嚴(yán)格日期格式表達)
?datetime()+30&&其值為當(dāng)前時間的30秒后的日期時間
?datetime()-30&&其值為當(dāng)前時間的30秒以前的日期時間
?{'2023-5-510:10:20a}-datetime()&&2個日期時間相差的秒的數(shù)值
注意:一個日期與一個數(shù)值相加,結(jié)果為日期,表達從當(dāng)前日期往后數(shù)N天;一個日期與一個數(shù)值
相減,結(jié)果為日期,表達從當(dāng)前日期向前數(shù)N天;兩個日期相減,結(jié)果為數(shù)值,表達兩日期之間相
差的天數(shù)。
4、關(guān)系表達式
⑴關(guān)系表達式描述的同類數(shù)據(jù)的大小比較關(guān)系,其結(jié)果是一個邏輯值,關(guān)系成立結(jié)果取真
(.T.),反返回假(.F.)。
(2)關(guān)系運算符兩邊的數(shù)據(jù)類型要一致,只有同類型的數(shù)據(jù)才干進行比較。
(3)數(shù)據(jù)比較規(guī)律
①數(shù)值和貨幣類型:數(shù)越大,其值越大。如:1000800$90>$10
②日期數(shù)據(jù):未來》歷史in:{"2023-5-19}>{"2023-5-18)
③邏輯常量:邏輯真大于邏輯假,即:
④字符串比較:依次相應(yīng)比較兩個串的字符,直到比較出結(jié)果即停止比較。例如:〃abc〃>〃ab〃,
"abc">"aBc"。
⑤字符的比較規(guī)律
ASCII字符:比較字符的ASCII碼值的大小??偨Y(jié)規(guī)律為:空格<0-9<A-Z〈a-z。
漢字字符:是按照漢字的機內(nèi)碼值的大小來進行比較的,即比較漢字的拼音字符串的大小。
例如:漢字“男”的拼音為“nan”,漢字“女”拼音為“nv”,所以“男”小于“女
注意:上述字符的比較規(guī)律的前提是必須設(shè)立數(shù)據(jù)的比較序列為機內(nèi)碼方式。設(shè)立的命令為:
setcollateto“machine”或者依次單擊“工具”菜單中的“選項”菜單項,單擊“數(shù)據(jù)”選
項卡,設(shè)立“排序序列”為“machine”選項即可。
?“ok"$”abokd"&&.t.前一個串“ok”包含在后一個串中,返回邏輯真
setcollateto"machine"&&設(shè)立比較序列為機內(nèi)碼
?8>100結(jié)果為:
?“8”〉"100”&&.t.
?{"2023-5-19}>{"2023-5-19}結(jié)果為:
?$80<$60&&,f.
?“abc”="ab”&&.t.系統(tǒng)默認(rèn)“”為非精確比較,右邊是左邊的左子串,則成立。
Setexacton&&設(shè)立“=”為精確比較,off為非精確比較
“abc”="ab”結(jié)果為:_______&&精確比較規(guī)定兩邊的字符串必須完全相等才成立。
5、邏輯表達式:運算結(jié)果是邏輯值。優(yōu)先級由高到低:.Not..and..or.
?not(10+3)>5and“ab”$“ab”+"cde”or3>=46&.f.
?3>2ANDNOT5>6&&
6、貨幣表達式:運算符+-
?$90+$10-$50&&50.0000
相關(guān)知識:(1)當(dāng)表達式中出現(xiàn)了多種運算符時,各種運算符的優(yōu)先順序由高到低依次為:算術(shù)
或字符或日期運算f關(guān)系運算一邏輯運算(2)相同優(yōu)先級的運算按從左到右的順序計算。
字符解決函數(shù)
(1)求字符串長度函數(shù):LEN(〈字符表達式》)功能:函數(shù)返回字符串所占字節(jié)數(shù)。
(2)大小寫函數(shù):LOWER(〈字符表達式>)UPPER(〈字符表達式〉)功能:LOWER。將字符串中
的字母一律變成小寫字母,UPPER。將字符串中的字母一律變成大寫字母,其他字符不變。
(3)生成空格函數(shù):SPACE(〈數(shù)值表達式〉)功能:產(chǎn)生指定數(shù)目的空格字符串。最大空格數(shù)是
2540
(4)刪除前后空格函數(shù):TRIM(〈字符表達式>)LTRIM(〈字符表達式>)ALLTRIM(〈字符表達式》)
功能:TRIM。返回指定字符表達式值去掉尾部空格后形成的字符串。LTRIMO返回指定字符表
達式值去掉前導(dǎo)空格后形成的字符串。ALLTRIMO返回指定字符表達式值去掉前導(dǎo)和尾部空格后形
成的字符串。
(5)取子串函數(shù):LEFT(〈字符表達式>,〈數(shù)值表達式>)RIGHT(〈字符表達式>,〈數(shù)值表達式〉)
SUBSTR((字符型表達式》,〈起始位置>[,長度])
功能:LEFT。從指定表達式的左端取一個指定長度的子串作為函數(shù)值。RIGHTO從指定表達式
的右端取一個指定長度的子串作為函數(shù)值。SUBSTR()從指定表達式的指定位置取指定長度的子串作
為函數(shù)值。
(6)計算子串出現(xiàn)次數(shù)函數(shù):OCCURS(〈字符表達式1>,〈字符表達式2>)功能:返回第一個字符
串在第二個字符串中出現(xiàn)的次數(shù),函數(shù)值為數(shù)值型。若第一個字符串不是第二個字符串的子串,函
數(shù)值為0。
(7)求子串位置函數(shù):AT(〈字符表達式1>,<字符表達式2>[,<數(shù)值表達式>])
功能:AT()函數(shù)值為數(shù)值型。假如〈字符表達式1>是〈字符表達式2>的子串,則返回〈字符表達
式1>值的首字符在〈字符表達式2>值中的位置;若不是子串,則返回0。ATC。與AT。功能類似,但
在子串比較時不區(qū)分字母大小寫。
(8)子串替換函數(shù)
格式:STUFF(〈字符表達式1〉,〈起始位置〉,〈長度〉,〈字符表達式2>)
功能:從指定位置開始,用〈字符表達式2>去替換〈字符表達式1〉中指定個數(shù)的字符。替換和被
替換的字符個數(shù)不一定相等。
?下列函數(shù)中函數(shù)值為字符型的是()。A)DATE()B)TIME()C)YEAR()D)DATETIME()
?LEFT("",LEN("數(shù)據(jù)庫"))的計算結(jié)果是。
數(shù)值計算函數(shù):絕對值函數(shù)ABS(〈數(shù)值表達〉)符號函數(shù):SIGN(〈數(shù)值表達式〉)功能:ABSO
返回指定的數(shù)值表達式的絕對值。SIGN。返回指定數(shù)值表達式的符號。
(2)求平方根函數(shù):SQRT(〈數(shù)值表達式》)
(4)求整數(shù)函數(shù):INT(《數(shù)值表達式>)CEILING(〈數(shù)值表達式>)FLOOR(〈數(shù)值表達式》)
功能:INTO返回指定數(shù)值表達式的整數(shù)部分。CEILING。返回大于或等于指定數(shù)值表達式的最
小整數(shù)。FLOOR。返回小于或等于指定數(shù)值表達式的最大整數(shù)。
(5)四舍五入函數(shù):ROUND(〈數(shù)值表達式1>,<數(shù)值表達式2〉)
(6)求余函數(shù):MOD(〈數(shù)值表達式1>,<數(shù)值表達式2>)功能:返回兩個數(shù)值相除后的余數(shù)。
(7)求最大值、最小值函數(shù):MAX(《數(shù)值表達式1>,〈數(shù)值表達式2〉)MIN(〈數(shù)值表達式1〉,
〈數(shù)值表達式2>)
功能:MAX。返回兩個表達式中較大的值,MIN()返回兩個表達式中較小的值。
日期時間函數(shù):DATEOTIMEODATETIME()功能:DATE。返回當(dāng)前系統(tǒng)日期,函數(shù)值為日期
型。TIME。以24小時制、hh:mm:ss格式返回當(dāng)前系統(tǒng)時間,函數(shù)值為字符型。DATETIME。返回當(dāng)前
系統(tǒng)日期時間,函數(shù)值為日期時間型。
(2)求年份、月份和天數(shù)函數(shù):YEAR(〈日期型表達式>|〈日期時間表達式>)MONTH(〈日期
型表達式>1〈日期時間表達式〉)DAY(〈日期型表達式>|〈日期時間表達式〉)
功能:YEAR。從指定的日期表達式或日期時間表達式中返回年份。MONTH。從指定的日期表達
式或日期時間表達式中返回月份。DAY()從指定的日期表達式或日期時間表達式中返回月里面的天
數(shù)。
(3)時、分和秒函數(shù):HOUR(〈日期時間表達式>)MINUTE(〈日期時間表達式>)SEC(<H
期時間表達式》)
功能:HOUR。返回小時部分(24小時制)。MINUTE()返回分鐘部分。SEC()返回秒數(shù)。
?在VisualFoxPro中,下面4個關(guān)于日期或日期時間的表達式中,錯誤的是()。
A){"2023.09.0111:10:10AM}-{"2023.09.0111:10:10AM}B){-01/01/2023}+20C)
{*2023.02.01}+{"2023.02.01]D){'2023/02/01}-{-2023/02/01)
數(shù)據(jù)類型轉(zhuǎn)換函數(shù):
?STR((數(shù)值表達式>[,(長度〉][,〈小數(shù)位〉])功能:將數(shù)值轉(zhuǎn)換為字符,自動四舍五入。
?VAL(〈字符型表達式〉)功能:將數(shù)字字符串轉(zhuǎn)換成數(shù)值。若字符串最左邊不是數(shù)字,則取
數(shù)值0。
?CT0D(〈字符表達式〉)功能:CT0D()將〈字符表達式〉值轉(zhuǎn)換成日期型數(shù)據(jù)。
?DT0C(〈日期表達式〉)功能:DT0C0將日期型數(shù)據(jù)或日期時間型數(shù)據(jù)的日期部分轉(zhuǎn)換成字符串。
?&〈字符型變量〉功能:替換出字符變量的內(nèi)容。如:Fname="zgda”use&Fname-usezgda
測試函數(shù)
(1)值域測試函數(shù):BETWEEN(〈表達式T〉,(表達式L〉,〈表達式H>)功能:判斷一個表達式是否
介于此外兩個表達式的值之間。
(2)空值(NULL值)測試函數(shù)
格式:ISNULL(〈表達式〉)
功能:判斷一個表達式的運算結(jié)果是否為NULL值,若是NULL值返回邏輯真(.T.),否則返回邏
輯假(.F.)。
(4)數(shù)據(jù)類型測試函數(shù)
格式:VARTYPE(〈表達式>[,〈邏輯表達式>])
功能:測試(表達式》的類型,返回一個大寫字母,函數(shù)值為字符型。
(5)表文獻頭尾測試函數(shù):EOF([<工作區(qū)號〉卜表別名>])BOF([<工作區(qū)號》表別名〉])功
能:測試指定表文獻中的記錄指針是否指向文獻尾(頭),若是返回邏輯真(.「),否則返回邏輯假
(.F.)o
(7)RECNO([〈工作區(qū)號>|<表別名>])功能:返回當(dāng)前表文獻或指定表文獻中當(dāng)前記錄(記
錄指針?biāo)赣涗洠┑挠涗浱枴?/p>
(8)RECCOUNT([<工作區(qū)號>|(表別名>])
功能:返回當(dāng)前表文獻或指定表文獻中的記錄個數(shù)。
(9)IIF(〈邏輯表達式》,〈表達式1〉,〈表達式2〉)功能:假如〈邏輯表達式>表達的條件為真
(.T.),返回〈表達式1〉的值,否則返回〈表達式2>的值。
(10)記錄刪除測試函數(shù):格式:DELETED([<表的別名>|《工作區(qū)號>])
功能:測試指定的表,或在指定工作區(qū)中所打開的表,其記錄指針?biāo)傅漠?dāng)前記錄是否有刪除
標(biāo)記"*
?函數(shù)BETWEEN(40,34,50)的運算結(jié)果是」工。
?在VisualFoxPro中,學(xué)生表STUDENT中包具有通用型字段,表中通用型字段中的數(shù)據(jù)均存儲到
另一個文獻中,該文獻名為()。
A)STUDENT.DOCB)STUDENT.MEMC)STUDENT.DBTD)STUDENT.FPT
91csic**9)C*9(C*91c5|C*5(!*5|C3|j*5(C*5jC5|C*}fj*5|C5|C*5jC*5(C5jC*5|C*5jC3|C?jC5|C*5(C^C
*****函數(shù)的學(xué)習(xí)要點*****
?函數(shù)名是什么?
?該函數(shù)有幾個參數(shù)、參數(shù)的數(shù)據(jù)類型是什么?
?該函數(shù)的功能是什么?
?返回值的數(shù)據(jù)類型是什么?
****對于任何的一個函數(shù),只要注意以上4點,使用起來就不成問題!****
[實驗內(nèi)容](在命令窗口中輸入下面的表達式,并在橫線部分填寫語句的運營結(jié)果)
1、sign()函數(shù):當(dāng)指定數(shù)值表達式的值為正、負(fù)或0時,分別返回1、T或0
?sign(0)結(jié)果為:?sign(-8)&&T
2、平方根函數(shù)sqrt():返回指定數(shù)值表達式的平方根
?sqrt(9)&&3(參數(shù)不能為負(fù)數(shù))
3、圓周率函數(shù)pi():返回圓周率常數(shù)
?pi()&&3-14
setdecimalsto4&&指定數(shù)值型數(shù)據(jù)顯示的小數(shù)位數(shù)為4位,系統(tǒng)默認(rèn)為2位
?pi()結(jié)果為:
4、取整函數(shù)int()、floor(),ceilingO
?int(12.56)&&12?int(-12.56)結(jié)果為:
?int(.56)&&0注:int()函數(shù)返回值為參數(shù)的整數(shù)部分。
?floor(-4.5)結(jié)果為:?floor(3.5)&&3
注:floor。函數(shù)返回值為小于或者等于參數(shù)值的最大的整數(shù)。
?ceiling(-4.5)結(jié)果為:
?ceiling(3.5)&&4
注:ceilingO函數(shù)返回值為大于或者等于參數(shù)值的最小的整數(shù)。
5、四舍五入函數(shù)Round。
?Round(7556.5678,2)&&7556,57?Round(7556.5678,0)&S7557
?Round(7556.81,-2)&&7600?Round(7556.5678,-1)結(jié)果為:.
注:第二個參數(shù)為負(fù)數(shù)時,表達對相應(yīng)的整數(shù)位進行四舍五入
4、最值函數(shù)max。、min()
?max(10,20,30,25)&&30?max(10,20)結(jié)果為:.
?max("a","ab")&&ab?max($10,$20)結(jié)果為:.
?max({-2023-4-16},{-2023-4-16))&&{_2023-4-16}
注:參數(shù)至少有二個,參數(shù)可以是字符型、數(shù)值型、貨幣型、日期型。
6、求字符串長度函數(shù)len()
?len("abcde")&&5?len("*")&&1*代表空格字符
?len("中國”)結(jié)果為:.&&一個漢字占2個寬度
?len「)&&0空字符串長度為0
7、大小寫轉(zhuǎn)換函數(shù)
?lower("AbCdl20K")結(jié)果為:.
?upper("AbCdl20K")結(jié)果為:.
注:只轉(zhuǎn)換字符串中的大小寫,其他字符不變。
8、空格字符生成函數(shù)
?"a"+space(3)+"b"&&a***b*代表空格字符
?len(space(3)+space(2))皿結(jié)果為:.+為字符連接運算符
?len(space(3)-space(2))&&5-為字符連接運算符
9、刪除空格字符函數(shù)
?trim("abcd***〃)+〃ef〃&&abcdef*代表空格字符
?
trim(〃abc*d*****〃)+〃ef〃結(jié)果為:——
?1trim("*ab*")+〃ef〃&&ab*ef*代表空格字符
?al1trim(〃*ab*〃)+“ef〃&&abef*代表空格字符
10、取子串函數(shù)
?left("abcdef”,2)&&ab
?left("abcdef”,100)結(jié)果為:.
?right("abcdef”,3)&&def
?substr(,zabcdef,z,2,3)&&bcd?substr("abcdef”,3)結(jié)果為:
?substr(〃中華人民共和國〃,5,4)&&人民
11、occurs。函數(shù)
?occurs(〃ab〃,〃cabkabk〃)結(jié)果為:.
?occurs(〃ab〃,〃ckk〃)&&0
12、at()函數(shù)返回第一個串在第二個串中出現(xiàn)的起始位置,返回值為數(shù)值型
?at("ab〃,"ccabkabk”,1)+10&&13?at(〃ab〃,“ccabkabk”,2)&&6
13、子串替換函數(shù)
?stuff("abcdef”,2,4,〃ok〃)
?stuff("abcdef”,2,0,〃ok")結(jié)果為:.&&相稱于插入ok
?stuff("abcdef”,2,4,〃〃)&&af相稱于刪除bode
14、日期函數(shù)
?date()&&返回系統(tǒng)日期
setcenturyon&&用4位數(shù)字顯示年份
?date()
setdatetoansi&&設(shè)立日期的顯示格式為ansi
?date()
?time()&&以字符串形式返回系統(tǒng)當(dāng)前時間
?datetime()&&返回系統(tǒng)日期和時間
?year({*2023-04-16})結(jié)果為:_______________
?month({2023-04-16))&&4
?day({-2023-04-16))結(jié)果為:_______________
?hour(datetime())&&分別顯示當(dāng)前系統(tǒng)時間的小時數(shù)
?minute(datetime())&&分別顯示當(dāng)前系統(tǒng)時間的分鐘數(shù)
?sec(datetime())&&分別顯示當(dāng)前系統(tǒng)時間的秒數(shù)
15、轉(zhuǎn)換函數(shù)
?str(123.5678,8,2)57*代表空格
?str(123.5678,6,3)結(jié)果為:.
?valC123.453+100&&223.45
?valC12a3.45〃)&&12
?val(〃a1212a3.45〃)結(jié)果為:
setdatetousa&&設(shè)立日期的顯示格式為美國日期格式
?ctod(〃04-16-05〃)&&{"2023-4-16)
?ctod(“04-16-05")+1&&{-2023-4-17)
?dtoc(dateO)&&將系統(tǒng)日期轉(zhuǎn)換為字符格式
16、宏替換函數(shù):替換出字符型變量的內(nèi)容(即去掉定界符后,改寫表達式即可得出對的結(jié)果)
x="123”
?&X+100皿結(jié)果為:____________相稱于?123+100
?x+"100”皿結(jié)果為:___________
17、iif()函數(shù)
x=100
?iif(x>100,x-50,x+50)結(jié)果為:
?iif(x<0,-l,iif(x=0,0,1))&&1
18、數(shù)據(jù)類型測試函數(shù)type。、vartypeO,返回一個代表類型的字母
?type("123")&&N?type(“04/06/09")&&N
?type("time()〃)&&C?vartype(123)&&N
?vartype(“123”)&&C?vartype($123)&&Y
?vartype(Datetime())&&T
?vartype({2023-04-19))結(jié)果為:___________
?vartype(3>5)結(jié)果為:___________
注:type。的參數(shù)類型是字符型,功能是返回其內(nèi)容的類型;vartypeO直接返回參數(shù)的數(shù)據(jù)類型
思考題:如何用IIF()函數(shù)實現(xiàn)SIGNO的功能?
(提醒:IIF(X>0,1,IIF(,0,-1)))
19、測試函數(shù)bof()、eof()、recnoO
usezgda
?bof()結(jié)果為:
?recnoO&&1剛剛打開的表,指針指向首記錄
skip-1&&指針向上移動一條記錄
?bof()結(jié)果為:
?recnoO&&1表可訪問的最小記錄號為1
gobottom&&指針指向尾記錄
?eof()結(jié)果為:
?recnoO&&8假設(shè)表中只有8條記錄,指針指向首記錄
skip&&指針向下移動一條記錄
?eof()&&.t.
?recnoO結(jié)果為:&&表可訪問的最大記錄號為記錄總數(shù)+1
?reccount()&&8假設(shè)表中只有8條記錄
20、信息窗口函數(shù)MessageBox()函數(shù)返回值為數(shù)值型
格式:MESSAGEBOX(信息文本,[,對話框類型數(shù)值[,標(biāo)題欄文本]])
例子:MESSAGEBOX(“你好,VFP!”,64,“提醒信息”)
增長記錄:
?APPEND命令是在表的尾部增長記錄,它有兩種格式:APPEND或APPENDBLANKo
?INSERT[BEFORE][BLANK]沒有BEFORE,在當(dāng)前記錄之后插入一條新記錄,否則在當(dāng)前記錄之
前插入一條新記錄。
刪除記錄
(1)DELETE[FORlExpressionl}假如不用FOR短語指定邏輯條件,則只邏輯刪除當(dāng)前一條
記錄
(2)RECALL[FORlExpressionl]假如不用FOR短語指定邏輯條件,則只恢復(fù)當(dāng)前一條記錄
(3)物理刪除有刪除標(biāo)記的記錄。物理刪除有刪除標(biāo)記記錄的命令是PACK。
(4)物理刪除表中的所有記錄:ZAP。刪除所有記錄,并沒有刪除表,執(zhí)行完該命令后表結(jié)構(gòu)
仍然存在。
修改記錄:
?EDIT、CHANGE、browse命令交互式修改;
?用REPLACE命令直接修改:REPLACEFieldNamelWITHeExpressionl[FORlExpressionl]
數(shù)據(jù)表排序:SORTON〈字段名1>[/A][/D][/C][,〈字段名2>……]TO〈數(shù)據(jù)表名》
說明:▲按關(guān)鍵字(備注型除外)排序并生成新的數(shù)據(jù)表。默認(rèn)按字段升序排序。/A:升序/D:
降序/C:不區(qū)分字母的大小寫,默認(rèn)區(qū)分。多個字段在書寫時,中間隔以逗號。生成新的數(shù)據(jù)表
文獻
數(shù)據(jù)表索引
INDEXON〈關(guān)鍵字表達式〉TO〈索引文獻名〉一建立單索引文獻,有to短語即為單索引,單索引
總是按〈關(guān)鍵字表達式》升序
INDEXON<關(guān)鍵字表達式〉TAG<標(biāo)記名>[OF[<復(fù)合索引文獻名>]][ascending][descending]
Additive(建索引時是否關(guān)閉已打開的索引文獻)一建立復(fù)合索引文獻、有OF短語,則非結(jié)構(gòu)復(fù)
合索引文獻,反之為結(jié)構(gòu)復(fù)合索引文獻。
建立數(shù)據(jù)庫(顯示listdatabase/打開opendatabase/關(guān)閉closedatabase)
?在VisualFoxPro中,創(chuàng)建一個名為SDB.DBC的數(shù)據(jù)庫文獻,使用的命令是()。
A)CREATEB)CREATESDBC)CREATETABLESDBD)CREATEDATABASESDB
?在VisualFoxPro中,關(guān)于自由表敘述對的的是()。
A)自由表和數(shù)據(jù)庫表是完全相同的B)自由表不能建立字段級規(guī)則和約束
C)自由表不能建立候選索引D)自由表不可以加入到數(shù)據(jù)庫中
刪除數(shù)據(jù)庫:DELETEDATABASEDatabaseName
向數(shù)據(jù)庫添加表:Addtable表名從數(shù)據(jù)庫刪除表:Removetable表名
設(shè)定字段級規(guī)則
(1)字段名:可以是漢字或合法的西文標(biāo)記符。自由表:10字符數(shù)據(jù)庫表:128字符
(2)字段類型和寬度:決定存儲在字段中的值的數(shù)據(jù)類型,數(shù)據(jù)類型通過寬度限制可以決定存儲數(shù)
據(jù)的數(shù)量或精度。
(3)空值:字段有"NULL”選項,它表達是否允許字段為空值??罩当磉_沒有擬定的值,即為了表達
值還沒有擬定下來的狀態(tài),VFP引入了空值??罩蹬c空字符串、數(shù)值0、邏輯假等具有不同的含義,
空值就是缺省或還沒有擬定值,不能把它理解為任何意義的數(shù)據(jù)。表中輸入空值:CTRL+O,空值
用.null.表達。
表的索引:VisualFoxPro索引是由指針構(gòu)成的文獻,這些指針邏輯上按照索引關(guān)鍵字值進行排序。
1.主索引:不許反復(fù)值~主關(guān)鍵字、數(shù)據(jù)庫表能建、1個
2.候選索引:不許反復(fù)值、數(shù)據(jù)庫表和自由表均可、多個
3.普通索引:允許字段反復(fù)值、一個表中可以建立多個普通索引。
4.惟一索引:允許字段反復(fù)值,只索引反復(fù)值中的”惟一〃一個
?在VisualFoxPro中,建立索引的作用之一是()。
A)節(jié)省存儲空間B)便于管理C)提高查詢速度D)提高查詢和更新的速度
?在VisualFoxPro中,相稱于主關(guān)鍵字的索引是()。主索引
?下面有關(guān)索引的描述對的的是()。
A)建立索引以后,本來的數(shù)據(jù)庫表文獻中記錄的物理順序?qū)⒈桓淖傿)索引與數(shù)據(jù)庫表的數(shù)據(jù)存儲
在一個文獻中
C)創(chuàng)建索引是創(chuàng)建一個指向數(shù)據(jù)庫表文獻記錄的指針構(gòu)成的文獻D)使用索引并不能加快對表的
查詢操作
?同一個表的多個索引可以創(chuàng)建在-個索引文獻中,索引文獻名與相關(guān)的表同名,索引文獻的擴
展名是CDX,這種索引稱為復(fù)合索引。
工作區(qū):VFP管理內(nèi)存的一種方式,將內(nèi)存劃提成多個區(qū)域,每個區(qū)域稱為一個工作區(qū)。
工作區(qū)標(biāo)記:
1.工作區(qū)號:1開始一32767結(jié)束
2.系統(tǒng)指定工作區(qū)別名:1―10分別為AfJ;11-32767分別為W11-W32767
3.用戶自定義別名(use〈表名>alias〈別名〉)或者打開的表名
注:用戶指定別名時,要用指定的別名。用戶沒有指定別名時:用工作區(qū)中打開的表名來標(biāo)記該工
作區(qū)。
選擇工作區(qū):SELECT工作區(qū)號|別名
其中工作區(qū)號是一個大于等于0的數(shù)字,用于指定工作區(qū)號,最小的工作區(qū)號是1,最大的工
作區(qū)號是32767,即同一時刻最多允許打開32767個表。假如指定為0,則選擇編號最小的可用工
作區(qū),即尚未使用的工作區(qū)。假如在某個工作區(qū)中已經(jīng)打開了表,若要回到該工作區(qū)操作該表,可
以使用別名。
建立表間臨時關(guān)聯(lián):可以控制表記錄指針關(guān)系的臨時聯(lián)系。
SETRELATIONTOeExpressionlINTO工作區(qū)號|別名
其中使用e£Y“ess,o3指定建立臨時聯(lián)系的索引關(guān)鍵字,一般應(yīng)當(dāng)是父表的主索引、子表的普
通索引。用工作區(qū)號或表的別名說明臨時聯(lián)系是由當(dāng)前工作區(qū)的表到哪個表的。
兩個數(shù)據(jù)表間的橫向連接(兩表都不需要索引):
JOINWITH〈工作區(qū)別名>TO〈新數(shù)據(jù)表文獻名》FOR〈條件》[FIELDS〈字段表》]
說明:▲兩個數(shù)據(jù)表橫向連接成一新數(shù)據(jù)表,F(xiàn)OR(條件》是必選項。Forsno=b.sno
▲記錄指針一方面指向積極表的第1條記錄,然后根據(jù)條件,與《別名》區(qū)中表文獻每一個記錄
進行比較,如條件為真,則與積極表文獻的當(dāng)前記錄連接成新的記錄。有幾個條件為真,連接成幾
個記錄。
▲積極表m個記錄,被動表n個記錄,生成的連接表記錄數(shù)>=0,最大m*n個。
例:積極被動生成新表
990101990101990101+990101
990102990101990101+990101
990103990103990103+990103
A表B表生成新表
姓名性別姓名消費姓名性別消費
張三男張三300張三男300
李四女張三500張三男500
王五女王五350王五女350
SQL是結(jié)構(gòu)化查詢語言StructuredQueryLanguage的縮寫。可以說查詢是SQL語言的重要組成部分,
但不是所有,SQL還包含數(shù)據(jù)定義、數(shù)據(jù)操縱和數(shù)據(jù)控制功能等部分。
SQL語言具有如下特點:功能一體化、高度非過程化、簡潔、可以直接以命令方式交互使用,
也可以嵌入到程序設(shè)計語言中以程序方式使用。
1.表的定義CREATETABLE-SQL:
CREATETABLEiDBF[NAMELongTableName][FREE]
{FieldNamelFieldTypeV(nFieldWidthl,nPrecision])][NULL|NOTNULL]
[CHECKlExpressionl[ERRORcMessageTextl\]
[DEFAULTeExpressionl]
[PRIMARYKEY|UNIQUE]
[,FieldName2...])
涉及滿足實體完整性的主關(guān)鍵字(主索引)PRIMARYKEY、定義域完整性的CHECK約束及犯錯信息
ERROR,定義默認(rèn)值的DEFAULT等。
(6)在SQL的CREATETABLE語句中,為屬性說明取值范圍(約束)的是CHECK短語。
SQL語句上機操作經(jīng)典練習(xí)
*****建表(建表后,可用modifystructure修改表結(jié)構(gòu)命令來看表的結(jié)構(gòu))*****
?前提條件:createdatabaseSQLLX&&建立數(shù)據(jù)庫SQLLX,該數(shù)據(jù)庫是打開的
?createtablezgdal.dbf(編號c(6)notnull,姓名c(6),年齡n(2,0),工資f(6,2),獲獎
次數(shù)I,出生日期d,工作時間t,婚否1,簡歷m,照片g)
?createtablezgda2.dbf(編號c(6)notnull,姓名c(6),年齡n(2,0),工資f(6,2))
?createtablezgda3.dbf(編號c(6)notnullprimarykey,姓名c(6),年齡n(2,0))
?createtablezgda3.dbf(編號c(6),姓名c(6),年齡n(2,0)check年齡>0error”年齡要
大于0"default30)
?createtablezgda4free(編號c(6),姓名c(6),年齡n(2,0))&&zgda4是自由表
注意:(表zgdal——zgda3是數(shù)據(jù)庫表,并自動加到當(dāng)前數(shù)據(jù)庫SQLLX中)
(1)cnf類型需要指定寬度nfb類型要指定精度
(2)UNIQUE候選索引primarykey主索引
?SELECT命令
SELECT[ALL|DISTINCT][TOP〈表達式》][<別名>.]<Select表達式>[AS<列名>]
[,[<別名>.]<Select表達式>[AS<列名>]???]FROM[〈數(shù)據(jù)庫名>!]<表名)
[[INNER|LEFT[OUTER]|RIGHT[OUTER]|FULL[OUTER]JOIN〈表名>[[AS]Local_Alias][0N<
聯(lián)接條件>]]
[INTO〈查詢結(jié)果》|TOFILE〈文獻名〉[ADDITIVE]|TOPRINTER[PROMPT]|TOSCREEN]
[WHERE<聯(lián)接條件1>[AND〈聯(lián)接條件2>…][AND|OR〈篩選條件>???]]
[GROUPBY〈組表達式》][,〈組表達式》???]][HAVING]〈篩選條件〉][UNION[ALL]〈SELECT命
令》]
[ORDERBY〈關(guān)鍵字表達式〉[ASC|DESC][,<關(guān)鍵字表達式>[ASCIDESC]-]]
1.SELECT子句:用來指定查詢結(jié)果中的數(shù)據(jù)列。*表達所有的字段、ALL選項:字段的所有值(涉及
反復(fù)值)缺省值;
DISTINCT:不涉及字段反復(fù)值。TOP〈表達式》選項:指定符合條件的記錄數(shù)量或比例(〈表達式〉)
2.FROM子句:用于指定查詢的表與聯(lián)接類型。
JOIN關(guān)鍵字用于聯(lián)接其左右兩個〈表名》所指定的表。
InnerJoin(內(nèi)部聯(lián)接):只有滿足聯(lián)接條件的記錄包含在結(jié)果中
LeftOuterJoin(左聯(lián)接):左表某記錄與右表所有記錄比較字段值,若有滿足聯(lián)接條件的,則產(chǎn)
生一個真實記錄;若都有滿足,則產(chǎn)生一個含.NULL值的記錄。直到右表所有記錄都比較完
RightOuterJoin(右聯(lián)接):右表某記錄與左表所有記錄比較字段值,若有滿足聯(lián)接條件的,則
產(chǎn)生一個真實記錄;若都不滿足,則產(chǎn)生一個含.NULL值的記錄。直到右表所有記錄都比較完
FullJion(完全聯(lián)接):先按右聯(lián)接比較字段值,再按左聯(lián)接比較字段值。不列入反復(fù)記錄
Into短語:IntoTABLE|DBF〈表名》查詢結(jié)果輸出到表;IntoARRAY〈數(shù)組》查詢結(jié)果輸出
到數(shù)組;IntoCURSOR〈臨時表》查詢結(jié)果輸出到臨時表
To短語:TOFILE文本文獻[ADDITIVE]表達輸出到指定的文本文獻,并取代原文獻內(nèi)容。
ADDITIVE選項:表達只追加新數(shù)據(jù),不清除原文獻的內(nèi)容。
TOPRINTER選項:表達輸出到打印機。TOSCREEN選項:表達輸出到屏幕。
3.Where子句:用來指定查詢的條件。假如查詢中包含不止一個表,就應(yīng)當(dāng)為第一個表后的每一
個表指定連接條件?!绰?lián)接條件》指定一個公共字段表達式,該字段連接FROM子句中的表。
4.GROUPBY子句:對記錄按〈組表達式〉值分組,常用于分組記錄。
HAVING子句:當(dāng)具有GROUPBY子句時,HA
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024外墻涂料綠色環(huán)保認(rèn)證與供貨合同樣本三3篇
- 公司開工勞動合同范例
- 公司合作旅游合同范例
- 標(biāo)識牌制作合同范例
- 客車聯(lián)營合同范例
- 單施工工程合同范例
- 水果分選銷售合同范例
- 關(guān)于借款保證標(biāo)準(zhǔn)合同范例
- 裝修半包合同范例
- 企業(yè)租賃工位合同范例
- 鉗夾實驗匯總
- 酒精安全周知卡
- 江蘇省電力公司“三集五大”體系機構(gòu)設(shè)置和人員配置方案
- 低血糖的預(yù)防及處理(課堂PPT)
- 國家開放大學(xué)2021年計算機應(yīng)用基礎(chǔ)終結(jié)性考試試題附答案
- 國家開放大學(xué)《財務(wù)管理》章節(jié)隨學(xué)隨練參考答案
- abap--一個功能非常全面的增強出口查找工具(僅供學(xué)習(xí))
- 服裝工藝(各工序)單價表
- 隧道變形及其控制技術(shù)1
- 生命密碼流年
- 紫色系簡潔風(fēng)送貨單表格模板
評論
0/150
提交評論