2023年專升本VFP串講講義_第1頁
2023年專升本VFP串講講義_第2頁
2023年專升本VFP串講講義_第3頁
2023年專升本VFP串講講義_第4頁
2023年專升本VFP串講講義_第5頁
已閱讀5頁,還剩48頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論