VF數(shù)據(jù)表的基本操作論述_第1頁(yè)
VF數(shù)據(jù)表的基本操作論述_第2頁(yè)
VF數(shù)據(jù)表的基本操作論述_第3頁(yè)
VF數(shù)據(jù)表的基本操作論述_第4頁(yè)
VF數(shù)據(jù)表的基本操作論述_第5頁(yè)
已閱讀5頁(yè),還剩72頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第4章VFP數(shù)據(jù)表的基本操作主要內(nèi)容4.1VFP數(shù)據(jù)表概述4.2VFP數(shù)據(jù)表結(jié)構(gòu)的建立與維護(hù)4.3VFP數(shù)據(jù)表記錄的錄入4.4VFP數(shù)據(jù)表數(shù)據(jù)的訪問(wèn)4.5VFP數(shù)據(jù)表數(shù)據(jù)的維護(hù)4.6VFP數(shù)據(jù)表數(shù)據(jù)的排序、索引4.7VFP數(shù)據(jù)表數(shù)據(jù)的查詢4.8VFP數(shù)據(jù)表數(shù)據(jù)的統(tǒng)計(jì)4.9多工作區(qū)操作復(fù)習(xí)思考題第4章VFP數(shù)據(jù)表的基本操作4.1.1VFP數(shù)據(jù)表的相關(guān)知識(shí)1.自由表與數(shù)據(jù)庫(kù)表VFP中數(shù)據(jù)表區(qū)分為自由表和數(shù)據(jù)庫(kù)表兩類(lèi)。自由表是不屬于任何數(shù)據(jù)庫(kù)的表,數(shù)據(jù)庫(kù)表是包含在一個(gè)數(shù)據(jù)庫(kù)中的表。2.表文件名與備注文件名VFP數(shù)據(jù)表是一個(gè)磁盤(pán)文件,數(shù)據(jù)表文件名可以由字母、數(shù)字或下劃線組成,系統(tǒng)自動(dòng)給出的擴(kuò)展名為.dbf。當(dāng)表中有備注型或通用型字段時(shí),系統(tǒng)自動(dòng)生成與所屬數(shù)據(jù)表的表名相同、擴(kuò)展名為.fpt的備注文件名。4.1VFP數(shù)據(jù)表概述4.1.1VFP數(shù)據(jù)表的相關(guān)知識(shí)3.VFP數(shù)據(jù)表的字段屬性VFP數(shù)據(jù)表是由記錄組成的,記錄又由字段組成,每個(gè)字段都有其自身的屬性。字段的屬性主要包括字段名、數(shù)據(jù)類(lèi)型、字段寬度、小數(shù)位數(shù)、空值支持等。其中數(shù)據(jù)類(lèi)型、字段寬度、小數(shù)位數(shù)、空值是實(shí)現(xiàn)關(guān)系的域完整性的重要保證。(1)字段名:表中的每個(gè)字段都是有名稱(chēng)的。字段名必須以字母開(kāi)頭,可由字母、數(shù)字、下劃線組合而成,字母大、小寫(xiě)無(wú)區(qū)別,但其中不許有空格或其它字符。自由表的字段名最多由10個(gè)字符組成,數(shù)據(jù)庫(kù)表的字段名支持長(zhǎng)名,最多可達(dá)128個(gè)字符。4.1VFP數(shù)據(jù)表概述4.1.1VFP數(shù)據(jù)表的相關(guān)知識(shí)(2)數(shù)據(jù)類(lèi)型:用于描述該字段的數(shù)據(jù)特征。在數(shù)據(jù)表中使用的數(shù)據(jù)類(lèi)型有字符型、貨幣型、數(shù)字型、浮點(diǎn)型、日期型、日期時(shí)間型、雙精度型、整型、邏輯型、備注型、通用型、字符型(二進(jìn)制)、備注型(二進(jìn)制)這13類(lèi)。(3)字段寬度:指該字段所能容納的數(shù)據(jù)的最大字節(jié)數(shù)。與字段的數(shù)據(jù)類(lèi)型也有關(guān)系。(4)小數(shù)位數(shù):主要用于指定當(dāng)字段類(lèi)型為數(shù)值型、符點(diǎn)型、雙精度型數(shù)據(jù)時(shí)所需保留的小數(shù)位數(shù)。此時(shí)的字段寬度為整數(shù)位數(shù)加小數(shù)位數(shù)再加1。(5)NULL值(空值):無(wú)明確的值。NULL表示任何不出現(xiàn)的值,NULL值不等同于零或空格。一個(gè)NULL值不能認(rèn)為比某個(gè)值(包括另一個(gè)NULL值)大或小或相等或不同。4.1VFP數(shù)據(jù)表概述4.1.2VFP數(shù)據(jù)表中數(shù)據(jù)類(lèi)型1.VFP數(shù)據(jù)表常用數(shù)據(jù)類(lèi)型

4.1VFP數(shù)據(jù)表概述4.1.2VFP數(shù)據(jù)表中數(shù)據(jù)類(lèi)型4.1VFP數(shù)據(jù)表概述4.2.1設(shè)計(jì)表結(jié)構(gòu)1.設(shè)計(jì)數(shù)據(jù)表結(jié)構(gòu)

4.2VFP數(shù)據(jù)表結(jié)構(gòu)的建立與維護(hù)4.2.1設(shè)計(jì)表結(jié)構(gòu)2.設(shè)計(jì)數(shù)據(jù)表應(yīng)注意的問(wèn)題(1)字段的數(shù)據(jù)類(lèi)型要與存儲(chǔ)在其中的信息類(lèi)型相匹配;(2)字段的寬度應(yīng)該足夠容納將要存儲(chǔ)的信息內(nèi)容;(3)數(shù)值型、浮點(diǎn)型、雙精度型字段必須設(shè)置正確的小數(shù)位數(shù);(4)如果需要將字段設(shè)置為能接收空值,必須選中NULL欄。4.2VFP數(shù)據(jù)表結(jié)構(gòu)的建立與維護(hù)4.2.2建立表結(jié)構(gòu)1.準(zhǔn)備工作--設(shè)置默認(rèn)路徑為方便操作與管理,建議建立一文件夾“D:\MYVFP”然后將其設(shè)為默認(rèn)目錄。設(shè)置默認(rèn)目錄方法可采用命令方式或菜單方式。(1)使用命令方式命令格式:SETDEFAULTTO[路徑]功能:將指定的目錄設(shè)置為默認(rèn)目錄,該命令僅對(duì)當(dāng)前環(huán)境有效,關(guān)閉VFP系統(tǒng)后該設(shè)置失效。使用示例:SETDEFAULTTOD:\MYVFP&&將D:\MYVFP設(shè)為默認(rèn)目錄4.2VFP數(shù)據(jù)表結(jié)構(gòu)的建立與維護(hù)4.2.2建立立表表結(jié)結(jié)構(gòu)構(gòu)(2)使用用菜菜單單方方式式“工工具具””“選選項(xiàng)項(xiàng)(O)……””“文件件位位置置””“默默認(rèn)認(rèn)目目錄錄””“修修改改(M)……””在““更更改改文文件件位位置置””對(duì)對(duì)話話框框中中選選中中““使使用用(U)默認(rèn)認(rèn)目目錄錄””,,這這時(shí)時(shí)““定定位位(L)默認(rèn)認(rèn)目目錄錄””文文本本框框由由灰灰色色(不可可用用)變?yōu)闉檎3n侇伾?可用用)單擊擊…按鈕鈕在““選選擇擇目目錄錄””對(duì)對(duì)話話框框中中首首先先從從““驅(qū)驅(qū)動(dòng)動(dòng)器器(V)””下拉拉式式列列表表框框中中選選D:在““當(dāng)當(dāng)前前工工作作目目錄錄::””列列表表框框中中選選擇擇““MYVFP””文件件夾夾“選選定定””返回回““更更改改文文件件位位置置””對(duì)對(duì)話話框框“確確定定””返回回““選選項(xiàng)項(xiàng)””對(duì)對(duì)話話框框“設(shè)設(shè)為為默默認(rèn)認(rèn)值值””“確確定定””按按鈕鈕,,從從而而將將D:\MYVFP設(shè)為為了了默默認(rèn)認(rèn)目目錄錄。。通過(guò)過(guò)這這種種方方法法設(shè)設(shè)置置的的默默認(rèn)認(rèn)目目錄錄長(zhǎng)長(zhǎng)期期有有效效。。4.2VFP數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)的的建建立立與與維維護(hù)護(hù)4.2.2建立立表表結(jié)結(jié)構(gòu)構(gòu)2.利用用表表設(shè)設(shè)計(jì)計(jì)器器建建立立數(shù)數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)(1)菜單單方方式式進(jìn)進(jìn)入入表表設(shè)設(shè)計(jì)計(jì)器器(2)命令令方方式式進(jìn)進(jìn)入入表表設(shè)設(shè)計(jì)計(jì)器器命令令格格式式:CREATE[文件件名名|?]功能能:生生成成一一個(gè)個(gè)新新的的數(shù)數(shù)據(jù)據(jù)表表。。如如果果在在創(chuàng)創(chuàng)建建表表時(shí)時(shí)打打開(kāi)開(kāi)了了一一個(gè)個(gè)數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù),,則則表表自自動(dòng)動(dòng)添添加加到到該該數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)中中。。使用用示示例例::①CREATED:\MYVFP\STUDENT②CREATE③CREATE?(3)使用用項(xiàng)項(xiàng)目目管管理理器器3.利用用表表向向?qū)?dǎo)創(chuàng)創(chuàng)建建數(shù)數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)4.2VFP數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)的的建建立立與與維維護(hù)護(hù)4.2.2建立立表表結(jié)結(jié)構(gòu)構(gòu)4.利用用復(fù)復(fù)制制方方法法間間接接建建立立表表結(jié)結(jié)構(gòu)構(gòu)表結(jié)結(jié)構(gòu)構(gòu)的的建建立立也也可可以以利利用用已已有有的的數(shù)數(shù)據(jù)據(jù)表表間間接接建建立立,,主主要要是是采采用用復(fù)復(fù)制制的的方方法法。。(1)利用用當(dāng)當(dāng)前前表表復(fù)復(fù)制制數(shù)數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)命令令格格式式:COPYSTRUCTURETO新表表文文件件名名[FIELDS<字段段名名列列表表>][[WITH]CDX[DATABASE數(shù)據(jù)據(jù)庫(kù)庫(kù)名名[NAME長(zhǎng)表表名名]]]功能能:用用當(dāng)當(dāng)前前表表結(jié)結(jié)構(gòu)構(gòu)創(chuàng)創(chuàng)建建一一個(gè)個(gè)新新的的數(shù)數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)。。4.2VFP數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)的的建建立立與與維維護(hù)護(hù)4.2.2建立立表表結(jié)結(jié)構(gòu)構(gòu)例4.3設(shè)當(dāng)當(dāng)前前打打開(kāi)開(kāi)表表為為teacher.dbf,且且存存在在結(jié)結(jié)構(gòu)構(gòu)復(fù)復(fù)合合索索引引文文件件,,有有如如下下命命令令::COPYSTRUCTURETOJS1&&將TEACHER表結(jié)結(jié)構(gòu)構(gòu)復(fù)復(fù)制制為為JS1表結(jié)結(jié)構(gòu)構(gòu)COPYSTRUTOJS2FIEL教師師編編號(hào)號(hào),,姓姓名名,,性性別別&&JS2表結(jié)結(jié)構(gòu)構(gòu)中中只只有有指指定定字字段段COPYSTRUTOJS3CDX&&建立立JS3表結(jié)結(jié)構(gòu)構(gòu)同同時(shí)時(shí)建建立立JS3.CDX文件件COPYSTRUTOJS4WITHCDX&&建立立JS4表結(jié)結(jié)構(gòu)構(gòu)同同時(shí)時(shí)建建立立JS4.CDX文件件COPYSTRUTOJS5DATA學(xué)籍籍管管理理&&建立立JS5表結(jié)結(jié)構(gòu)構(gòu)且且加加入入數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)““學(xué)學(xué)籍籍管管理理””4.2VFP數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)的的建建立立與與維維護(hù)護(hù)4.2.2建立立表表結(jié)結(jié)構(gòu)構(gòu)(2)利用用表表的的結(jié)結(jié)構(gòu)構(gòu)信信息息文文件件創(chuàng)創(chuàng)建建另另一一個(gè)個(gè)新新表表結(jié)結(jié)構(gòu)構(gòu)可以以利利用用表表結(jié)結(jié)構(gòu)構(gòu)信信息息文文件件生生成成另另一一個(gè)個(gè)表表結(jié)結(jié)構(gòu)構(gòu)。。操操作作方方法法分分為為兩兩步步::先先創(chuàng)創(chuàng)建建一一個(gè)個(gè)有有當(dāng)當(dāng)前前表表結(jié)結(jié)構(gòu)構(gòu)信信息息的的新新表表,,然然后后再再由由含含有有結(jié)結(jié)構(gòu)構(gòu)信信息息的的新新表表創(chuàng)創(chuàng)建建另另一一個(gè)個(gè)數(shù)數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)。。①創(chuàng)創(chuàng)建建一一個(gè)個(gè)當(dāng)當(dāng)前前表表結(jié)結(jié)構(gòu)構(gòu)信信息息的的新新表表命令令格格式式:COPYSTRUCTUREEXTENDEDTO新表表名名[DATABASE數(shù)據(jù)據(jù)庫(kù)庫(kù)名名[NAME長(zhǎng)表表名名]][FIELDS字段段名名列列表表]功能能:創(chuàng)創(chuàng)建建一一個(gè)個(gè)新新表表,,其其中中的的字字段段包包含含當(dāng)當(dāng)前前表表的的結(jié)結(jié)構(gòu)構(gòu)信信息息。。4.2VFP數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)的的建建立立與與維維護(hù)護(hù)4.2.2建立立表表結(jié)結(jié)構(gòu)構(gòu)例4.4設(shè)當(dāng)當(dāng)前前打打開(kāi)開(kāi)表表為為teacher.dbf,試試保保存存teacher表的的結(jié)結(jié)構(gòu)構(gòu)信信息息。。COPYSTRUEXTETOJSJG1&&保存存原原表表所所有有字字段段信信息息COPYSTRUEXTETOJSJG2FIEL教師師編編號(hào)號(hào),姓名名,性別別,職稱(chēng)稱(chēng)&&保存存指指定定的的3個(gè)字字段段信信息息COPYSTRUEXTETOJSJG3DATA學(xué)籍籍管管理理&&產(chǎn)生生的的JSJG3表屬屬于于““學(xué)學(xué)籍籍管管理理””數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)②利利用用結(jié)結(jié)構(gòu)構(gòu)信信息息表表創(chuàng)創(chuàng)建建另另一一個(gè)個(gè)新新表表命令令格格式式:CREATE新表表名名[DATABASE數(shù)據(jù)據(jù)庫(kù)庫(kù)名名[NAME長(zhǎng)表表名名]]FROM含有有結(jié)結(jié)構(gòu)構(gòu)信信息息的的表表名名功能能:使使用用保保存存有有結(jié)結(jié)構(gòu)構(gòu)信信息息的的表表去去創(chuàng)創(chuàng)建建一一個(gè)個(gè)新新的的數(shù)數(shù)據(jù)據(jù)表表。。例4.5利用用教教師師結(jié)結(jié)構(gòu)構(gòu)信信息息表表““JSJG2.DBF””創(chuàng)建建一一個(gè)個(gè)新新表表,,命命令令如如下下::CREATETEACHER1FROMJSJG2&&利用用JSJG2新建建表表TEACHER15.利用用SQL命令令直直接接創(chuàng)創(chuàng)建建數(shù)數(shù)據(jù)據(jù)表表結(jié)結(jié)構(gòu)構(gòu)可使用用CREATETABLE-SQL語(yǔ)句直直接建建立表表結(jié)構(gòu)構(gòu)4.2VFP數(shù)據(jù)表表結(jié)構(gòu)構(gòu)的建建立與與維護(hù)護(hù)4.2.3數(shù)據(jù)表表的打打開(kāi)與與關(guān)閉閉1.工作區(qū)區(qū)與當(dāng)當(dāng)前工工作區(qū)區(qū)工作區(qū)區(qū)指用用來(lái)標(biāo)標(biāo)識(shí)一一張打打開(kāi)的的表的的區(qū)域域。VFP6系統(tǒng)允允許用用戶使使用32767個(gè)工作作區(qū),,并允允許在在各個(gè)個(gè)工作作區(qū)中中打開(kāi)開(kāi)不同同的數(shù)數(shù)據(jù)庫(kù)庫(kù)表或或自由由表。。每個(gè)個(gè)工作作區(qū)都都有一一個(gè)工工作區(qū)區(qū)號(hào),,分別別用1~32767表示。。每個(gè)個(gè)表打打開(kāi)后后至少少有兩兩個(gè)默默認(rèn)的的別名名,一一個(gè)是是表名名自身身,一一個(gè)是是工作作區(qū)別別名。。為使使用方方便,,編號(hào)號(hào)為1~10的前10個(gè)工作作區(qū)的的默認(rèn)認(rèn)別名名分別別用A~J這10個(gè)字母母表示示。當(dāng)前工工作區(qū)區(qū)就是正正在操操作的的工作作區(qū),,當(dāng)前前工作作區(qū)上上打開(kāi)開(kāi)的表表稱(chēng)為為當(dāng)前工工作表表。4.2VFP數(shù)據(jù)表表結(jié)構(gòu)構(gòu)的建建立與與維護(hù)護(hù)4.2.3數(shù)據(jù)表表的打打開(kāi)與與關(guān)閉閉2.當(dāng)前工工作區(qū)區(qū)選擇擇指定當(dāng)當(dāng)前工工作區(qū)區(qū)可以以使用用SELECT命令或或數(shù)據(jù)據(jù)工作作期窗窗口操操作。。(1)SELECT命令命令格格式:SELECT<工作區(qū)區(qū)號(hào)>|<別名>功能:將指指定工工作區(qū)區(qū)號(hào)作作為當(dāng)當(dāng)前工工作區(qū)區(qū)。使用說(shuō)說(shuō)明:工作作區(qū)號(hào)號(hào)可使使用1~32767。別名名指在在該工工作區(qū)區(qū)打開(kāi)開(kāi)的表表的名名稱(chēng)或或別名名,前前面的的1~10#工作作區(qū)還還可以以用字字母A~J表示其其別名名。若若工作作區(qū)號(hào)號(hào)為0則表示示選擇擇當(dāng)前前未使使用的的最小小工作作區(qū)號(hào)號(hào)為當(dāng)當(dāng)前工工作區(qū)區(qū)。4.2VFP數(shù)據(jù)表表結(jié)構(gòu)構(gòu)的建建立與與維護(hù)護(hù)4.2.3數(shù)據(jù)表表的打打開(kāi)與與關(guān)閉閉使用示示例::SELE1&&選擇1#工作區(qū)區(qū)為當(dāng)當(dāng)前工工作區(qū)區(qū)USESTUDENTALIASXS&&在該區(qū)區(qū)打開(kāi)開(kāi)STUDENT表且為為該表表取別別名XSSELE15&&選擇15#工作區(qū)區(qū)為當(dāng)當(dāng)前工工作區(qū)區(qū)USETEACHERALIASJS&&在該區(qū)區(qū)打開(kāi)開(kāi)TEACHER表且為為該表表取別別名JS4.2VFP數(shù)據(jù)表表結(jié)構(gòu)構(gòu)的建建立與與維護(hù)護(hù)4.2.3數(shù)據(jù)表表的打打開(kāi)與與關(guān)閉閉(2)“數(shù)據(jù)工工作期期”窗窗口3.數(shù)據(jù)表表的打打開(kāi)選擇工工作區(qū)區(qū)后就就可以以打開(kāi)開(kāi)數(shù)據(jù)據(jù)表了了。(1)菜單方方式(2)命令方方式命令格格式:USE[表名][IN工作區(qū)區(qū)號(hào)|別名][AGAIN][INDEX索引文文件列列表][ALIAS別名][EXCLUSIVE][SHARED][NOUPDATE]功能:打開(kāi)開(kāi)一個(gè)個(gè)表及及其相相關(guān)索索引文文件。。例4.6使用USE命令以以獨(dú)占占方式式在2#工作區(qū)區(qū)打開(kāi)開(kāi)表STUDENT.DBF,并指指定別別名為為XS。USED:\MYVFP\STUDENTIN2ALIASXSEXCLUSIVE&&D:\MYVFP表示文文件位位置,,可不不指定定。思考::當(dāng)前前工作作區(qū)是是2#工作區(qū)區(qū)否??4.2VFP數(shù)據(jù)表表結(jié)構(gòu)構(gòu)的建建立與與維護(hù)護(hù)4.2.3數(shù)據(jù)表表的打打開(kāi)與與關(guān)閉閉4.數(shù)據(jù)表表的關(guān)關(guān)閉(1)菜單方方式(2)命令方方式USE[IN工作區(qū)區(qū)號(hào)]:關(guān)閉當(dāng)當(dāng)前或或指定定工作作區(qū)上上的表表。CLOSEALL:關(guān)閉所所有工工作區(qū)區(qū)中打打開(kāi)的的數(shù)據(jù)據(jù)庫(kù)、、表和和索引引,并并選擇擇工作作區(qū)1為當(dāng)前前工作作區(qū)。。CLOSETABLES:關(guān)閉所所有當(dāng)當(dāng)前選選中數(shù)數(shù)據(jù)庫(kù)庫(kù)中的的所有有表。。若沒(méi)沒(méi)有已已打開(kāi)開(kāi)的數(shù)數(shù)據(jù)庫(kù)庫(kù),則則關(guān)閉閉所有有工作作區(qū)內(nèi)內(nèi)的自自由表表。4.2VFP數(shù)據(jù)表表結(jié)構(gòu)構(gòu)的建建立與與維護(hù)護(hù)4.2.3數(shù)據(jù)表表的打打開(kāi)與與關(guān)閉閉CLOSETABLESALL:關(guān)閉所所有數(shù)數(shù)據(jù)庫(kù)庫(kù)中的的所有有表以以及自自由表表,但但所有有數(shù)據(jù)據(jù)庫(kù)保保持打打開(kāi)。。CLOSEDATABASES:關(guān)閉當(dāng)當(dāng)前數(shù)數(shù)據(jù)庫(kù)庫(kù)和表表。若若沒(méi)有有當(dāng)前前數(shù)據(jù)據(jù)庫(kù),,則關(guān)關(guān)閉所所有工工作區(qū)區(qū)內(nèi)所所有打打開(kāi)的的自由由表、、索引引和格格式文文件,,并選選擇工工作區(qū)區(qū)1為當(dāng)前前工作作區(qū)。。CLOSEDATABASESALL:所有打打開(kāi)的的數(shù)據(jù)據(jù)庫(kù)和和其中中的表表、所所有打打開(kāi)的的自由由表、、所有有工作作區(qū)內(nèi)內(nèi)所有有索引引和格格式文文件,,并選選擇工工作區(qū)區(qū)1為當(dāng)前前工作作區(qū)。。CLEARALL:關(guān)閉所所有表表,包包括所所有相相關(guān)的的索引引、格格式和和備注注文件件,并并且選選擇工工作區(qū)區(qū)1為當(dāng)前前工作作區(qū)。。從內(nèi)內(nèi)存中中釋放放所有有的內(nèi)內(nèi)存變變量和和數(shù)組組以及及所有有用戶戶自定定義菜菜單欄欄、菜菜單和和窗口口的定定義。。QUIT:退出VFP系統(tǒng),,則關(guān)關(guān)閉所所有的的表。。4.2VFP數(shù)據(jù)表表結(jié)構(gòu)構(gòu)的建建立與與維護(hù)護(hù)4.2.4修改表表結(jié)構(gòu)構(gòu)1.使用表表設(shè)計(jì)計(jì)器命令格格式:MODIFYSTRUCTURE功能:進(jìn)入入表設(shè)設(shè)計(jì)器器修改改表結(jié)結(jié)構(gòu)2.使用ALTERTABLE-SQL命令可使用用ALTERTABLE-SQL語(yǔ)句直直接修修改表表結(jié)構(gòu)構(gòu)4.2VFP數(shù)據(jù)表表結(jié)構(gòu)構(gòu)的建建立與與維護(hù)護(hù)4.2.5瀏覽表表結(jié)構(gòu)構(gòu)命令格格式:LIST|DISPLAYSTRUCTURE[IN工作區(qū)區(qū)號(hào)|別名][NOCONSOLE][TOPRINTER[PROMPT]TOFILE文件名名]功能:對(duì)指指定工工作區(qū)區(qū)上打打開(kāi)的的表結(jié)結(jié)構(gòu)列列表或或分屏屏的方方式進(jìn)進(jìn)行顯顯示輸輸出。。4.2VFP數(shù)據(jù)表表結(jié)構(gòu)構(gòu)的建建立與與維護(hù)護(hù)4.2.5瀏覽表表結(jié)構(gòu)構(gòu)例4.7分別將將學(xué)生生表的的結(jié)構(gòu)構(gòu)輸出出到文文件和和屏幕幕上。。SELE2&&選擇2#工作作區(qū)為為當(dāng)前前工作作區(qū)USESTUDENTEXCL&&在2#上以以獨(dú)占占方式式打開(kāi)開(kāi)STUDENT表LISTSTRUCTURETOXS&&在屏幕幕上不不分頁(yè)頁(yè)顯示示表結(jié)結(jié)構(gòu)且且將顯顯示結(jié)結(jié)果保保存到到XS.TXTDISPLAYSTRUCTURE&&在屏幕幕上分分頁(yè)顯顯示表表的結(jié)結(jié)構(gòu)TYPEXS.TXT&&在屏幕幕上顯顯示文文件XS.TXT的內(nèi)容容4.2VFP數(shù)據(jù)表表結(jié)構(gòu)構(gòu)的建建立與與維護(hù)護(hù)4.3.1VFP數(shù)據(jù)表表記錄錄錄入入方式式1.立即向向數(shù)據(jù)據(jù)表中中輸入入記錄錄新建表表結(jié)構(gòu)構(gòu)后保保存時(shí)時(shí)彈出出“現(xiàn)現(xiàn)在就就輸入入記錄錄嗎??”,,單擊擊“是是”2.用菜單單方式式追加加記錄錄“顯示示”“瀏瀏覽””““顯示示”““追加加方式式”3.用命令令方式式追加加記錄錄在VFP6系統(tǒng)中中可用用APPEND等命令令實(shí)施施數(shù)據(jù)據(jù)表記記錄的的添加加,具具體命命令使使用方方法見(jiàn)見(jiàn)4.3.2。4.3VFP數(shù)據(jù)表表記錄錄的錄錄入4.3.2VFP數(shù)據(jù)表表記錄錄的錄錄入命命令1.APPEND命令命令格格式:APPEND[BLANK][IN工作區(qū)區(qū)號(hào)||別名名][NOMENU]功能:在表表的末末尾添添加一一個(gè)或或多個(gè)個(gè)新記記錄。。2.APPENDFROM命令命令格格式:APPENDFROM[文件名名|?][FIELDS字段名名列表表][FOR條件表表達(dá)式式][DELIMITED[WITH分隔符符][WITHBLANK|WITHTAB|WITHCHARACTER分隔符符]SDF]]功能:將其其它表表(或其它它文件件如電電子表表格中中表)中記錄錄數(shù)據(jù)據(jù)追加加到當(dāng)當(dāng)前表表記錄錄末尾尾。若若不指指定源源文件件的類(lèi)類(lèi)型,,則源源文件件為表表文件件。4.3VFP數(shù)據(jù)表表記錄錄的錄錄入4.3.2VFP數(shù)據(jù)表表記錄錄的錄錄入命命令3.APPENDFROMARRAY命令命令格格式:APPENDFROMARRAY數(shù)組名名[FOR條件表表達(dá)式式][FIELDS字段名名列表表|FIELDSLIKE字段特特征框框架|FIELDSEXCEPT字段特特征框框架]功能:將數(shù)數(shù)組中中的每每一行行作為為一條條記錄錄,在在當(dāng)前前表的的記錄錄末尾尾追加加,并并從相相應(yīng)的的數(shù)組組行中中取出出數(shù)據(jù)據(jù)添加加到記記錄中中。4.APPENDGENERAL命令命令格格式:APPENDGENERAL通用型型字段段名FROM文件名名功能:從文文件中中導(dǎo)入入OLE對(duì)象并并將其其放入入當(dāng)前前記錄錄的通通用字字段中中。4.3VFP數(shù)據(jù)表表記錄錄的錄錄入4.3.2VFP數(shù)據(jù)表表記錄錄的錄錄入命命令5.APPENDMEMO命令命令格格式:APPENDMEMO備注型型字段段名FROM文件名名[OVERWRITE]功能:將文文本文文件的的內(nèi)容容復(fù)制制到當(dāng)當(dāng)前記記錄的的備注注字段段中。。6.INSERT-SQL命令該命令令的命命令格格式、、功能能及其其應(yīng)用用見(jiàn)第第6章。4.3VFP數(shù)據(jù)表表記錄錄的錄錄入4.3.3表記錄錄中各各種數(shù)數(shù)據(jù)的的錄入入1.字符型型數(shù)據(jù)據(jù)錄入入2.數(shù)值型型、浮浮點(diǎn)型型、貨貨幣型型、整整型、、雙精精度型型數(shù)據(jù)據(jù)錄入入3.日期期型型、、日日期期時(shí)時(shí)間間型型數(shù)數(shù)據(jù)據(jù)錄錄入入4.邏輯輯性性數(shù)數(shù)據(jù)據(jù)錄錄入入邏輯輯型型字字段段只只能能接接受受T、Y、F、N這4個(gè)字字母母之之一一(不論論大大小小寫(xiě)寫(xiě)皆皆可可)5.備注注型型數(shù)數(shù)據(jù)據(jù)錄錄入入6.通用用型型數(shù)數(shù)據(jù)據(jù)錄錄入入7.記錄錄數(shù)數(shù)據(jù)據(jù)的的傳傳遞遞4.3VFP數(shù)據(jù)據(jù)表表記記錄錄的的錄錄入入4.4.1數(shù)據(jù)據(jù)表表記記錄錄定定位位1.記錄錄指指針針與與當(dāng)當(dāng)前前記記錄錄一張張數(shù)數(shù)據(jù)據(jù)表表往往往往有有多多條條記記錄錄,,VFP系統(tǒng)統(tǒng)按按照照輸輸入入時(shí)時(shí)的的順順序序?qū)?duì)數(shù)數(shù)據(jù)據(jù)表表中中的的記記錄錄進(jìn)進(jìn)行行順順序序編編號(hào)號(hào),,這這個(gè)個(gè)編編號(hào)號(hào)稱(chēng)稱(chēng)為為記記錄錄號(hào)號(hào)。。系系統(tǒng)統(tǒng)為為每每個(gè)個(gè)打打開(kāi)開(kāi)的的數(shù)數(shù)據(jù)據(jù)表表設(shè)設(shè)置置一一個(gè)個(gè)記記錄錄指指針針,,記記錄錄指指針針指指向向的的記記錄錄被被稱(chēng)稱(chēng)為為當(dāng)當(dāng)前前記記錄錄,,使使用用RECNO()函數(shù)數(shù)可可以以獲獲得得指指定定工工作作區(qū)區(qū)當(dāng)當(dāng)前前記記錄錄的的記記錄錄號(hào)號(hào)。。2.文件件頭頭與與文文件件尾尾VFP數(shù)據(jù)據(jù)表表文文件件有有兩兩個(gè)個(gè)特特殊殊的的位位置置::文文件件頭頭(表起起始始標(biāo)標(biāo)記記)和文文件件尾尾(表結(jié)結(jié)束束標(biāo)標(biāo)記記)。文文件件頭頭位位于于表表中中第第一一條條記記錄錄之之前前,,當(dāng)當(dāng)記記錄錄指指針針指指向向文文件件頭頭時(shí)時(shí),,函函數(shù)數(shù)BOF()的值值為為.T.,但但此此時(shí)時(shí)的的記記錄錄號(hào)號(hào)為為第第一一條條記記錄錄的的記記錄錄號(hào)號(hào)。。文文件件尾尾在在最最后后一一條條記記錄錄之之后后,,當(dāng)當(dāng)記記錄錄指指針針指指向向文文件件尾尾時(shí)時(shí),,函函數(shù)數(shù)EOF()的值值為為.T.,此此時(shí)時(shí)的的記記錄錄號(hào)號(hào)為為數(shù)數(shù)據(jù)據(jù)表表記記錄錄總總數(shù)數(shù)加加1,即即RECCOUNT()+1。4.4VFP數(shù)據(jù)據(jù)表表數(shù)數(shù)據(jù)據(jù)的的訪訪問(wèn)問(wèn)4.4.1數(shù)據(jù)據(jù)表表記記錄錄定定位位3.數(shù)據(jù)據(jù)表表記記錄錄指指針針定定位位(1)使用用菜菜單單方方式式定定位位記記錄錄指指針針“顯顯示示””““瀏瀏覽覽””““表表””““轉(zhuǎn)轉(zhuǎn)到到記記錄錄…””(2)使用用命命令令方方式式定定位位記記錄錄指指針針命令令格格式式::GO|GOTO[RECORD]記錄錄號(hào)號(hào)[IN工作作區(qū)區(qū)號(hào)號(hào)|別名名]GO|GOTOTOP|BOTTOM[IN工作作區(qū)區(qū)號(hào)號(hào)|別名名]功能能::移移動(dòng)動(dòng)記記錄錄指指針針到到指指定定的的記記錄錄。。命令令格格式式2:SKIP±±N[IN工作作區(qū)區(qū)號(hào)號(hào)|別名名]4.4VFP數(shù)據(jù)據(jù)表表數(shù)數(shù)據(jù)據(jù)的的訪訪問(wèn)問(wèn)4.4.2數(shù)據(jù)據(jù)表表數(shù)數(shù)據(jù)據(jù)顯顯示示1.使用用菜菜單單方方式式“顯顯示示””““瀏瀏覽覽””2.使用用?、??命令令命令令格格式式:?|??[<表達(dá)達(dá)式式列列表表>]功能能:??——在當(dāng)當(dāng)前前光光標(biāo)標(biāo)處處開(kāi)開(kāi)始始輸輸出出表表達(dá)達(dá)式式的的值值?——在下下行行輸輸出出表表達(dá)達(dá)式式的的值值4.4VFP數(shù)據(jù)據(jù)表表數(shù)數(shù)據(jù)據(jù)的的訪訪問(wèn)問(wèn)4.4.2數(shù)據(jù)據(jù)表表數(shù)數(shù)據(jù)據(jù)顯顯示示例4.8使用用?、??命令令顯顯示示數(shù)數(shù)據(jù)據(jù)表表STUDENT和TEACHER的有有關(guān)關(guān)內(nèi)內(nèi)容容。。Select1USESTUDENTALIASXSEXCLGO6SELECT2USETEACHERALIASJSEXCL3SELE1?學(xué)號(hào)號(hào),姓名名,家庭庭地地址址??性別別,婚否否姓名名="張三三““?姓名名+M.姓名名?LEFT(學(xué)號(hào)號(hào),4)+ALLT(RIGHT(姓名名,2))?LEFT(學(xué)號(hào)號(hào),4)+RIGHT(ALLT(姓名名),2)?姓名名+JS.姓名名??性別別+B.性別別?學(xué)號(hào)號(hào),B.姓名名,家庭庭地地址址,B.職稱(chēng)稱(chēng)4.4VFP數(shù)據(jù)據(jù)表表數(shù)數(shù)據(jù)據(jù)的的訪訪問(wèn)問(wèn)4.4.2數(shù)據(jù)據(jù)表表數(shù)數(shù)據(jù)據(jù)顯顯示示3.使用LIST、DISPLAY命令命令格式式:LIST|DISPLAY[[FIELDS]字段列表表][范圍][FOR條件表達(dá)達(dá)式][WHILE條件表達(dá)達(dá)式][OFF][NOCONSOLE][TOPRINTER[PROMPT]|TOFILE文件名]功能:在VFP6系統(tǒng)主窗窗口中顯顯示與當(dāng)當(dāng)前表有有關(guān)的信信息。4.4VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的訪訪問(wèn)4.4.2數(shù)據(jù)表數(shù)數(shù)據(jù)顯示示4.使用BROWSE命令命令格式式:BROWSE[LAST][FIELDS字段列表表][FONT字體[,字號(hào)]][STYLE字形][FOR條件表達(dá)達(dá)式[REST]][FREEZE字段名][LOCKN][NOAPPEND][NODELETE][NOEDIT|NOMODIFY][NOLINK][NOMENU][NOREFRESH][NORMAL][NOWAIT][TITLE標(biāo)題]功能:打開(kāi)瀏瀏覽窗口口,顯示示當(dāng)前或或選定表表的記錄錄。4.4VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的訪訪問(wèn)4.4.3數(shù)據(jù)表數(shù)數(shù)據(jù)過(guò)濾濾1.用菜單操操作方式式實(shí)現(xiàn)數(shù)數(shù)據(jù)表數(shù)數(shù)據(jù)過(guò)濾濾2.用命令方方式控制制數(shù)據(jù)表表數(shù)據(jù)訪訪問(wèn)(1)設(shè)置記錄錄過(guò)濾的的命令命令格式式:SETFILTERTO條件表達(dá)達(dá)式功能:指定訪訪問(wèn)當(dāng)前前表中記記錄時(shí)必必須滿足足的條件件。(2)設(shè)置字段段過(guò)濾的的命令命令1格式:SETFIELDSTO[字段列表表]|ALL命令2格式:SETFIELDSON|OFF功能:指定可可以訪問(wèn)問(wèn)表中的的哪些字字段。4.4VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的訪訪問(wèn)4.5.1數(shù)據(jù)表記記錄插入入命令格式式:INSERT[BEFORE][BLANK]功能:在表的的當(dāng)前記記錄前(后)添加一條條或多條條新記錄錄。4.5VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的維維護(hù)4.5.2數(shù)據(jù)表記記錄修改改1.使用菜單單方式2.使用BROWSE命令3.使用EDIT、CHANGE命令命令格式式:EDIT|CHANGE[FIELDS字段列表表][范圍][FOR條件][WHILE條件][FONT字體[,字號(hào)]][STYLE字形][FREEZE字段名][LAST][PARTITIONN][NOAPPEND][NODELETE][NOEDIT|NOMODIFY][NOLINK][NOMENU][NORMAL][NOWAIT][TITLE標(biāo)題]功能:以編輯輯方式顯顯示、修修改數(shù)據(jù)據(jù)表記錄錄4.5VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的維維護(hù)4.5.2數(shù)據(jù)表記記錄修改改4.使用REPLACE命令命令格式式:REPLACE[范圍][FOR條件][WHILE條件]字段名1WITH表達(dá)式1[ADDITIVE][,字段名>WITH表達(dá)式2[ADDITIVE]][IN工作區(qū)號(hào)號(hào)|別名]功能:更新指指定工作作表的指指定記錄錄內(nèi)容。。5.使用REPLACEFROMARRAY命令命令格式式:REPLACEFROMARRAY數(shù)組名[FIELDS字段列表表][范圍][FOR條件][WHILE條件]功能:使用內(nèi)內(nèi)存變量量數(shù)組中中的值更更新字段段內(nèi)容。。4.5VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的維維護(hù)4.5.3數(shù)據(jù)表數(shù)數(shù)據(jù)的刪刪除1.數(shù)據(jù)表記記錄的邏邏輯刪除除與恢復(fù)復(fù)(1)菜單方式式(2)命令方式式①DELETE命令命令格式式:DELETE[范圍][FOR條件][WHILE條件]功能:為當(dāng)前前數(shù)據(jù)表表中指定定范圍內(nèi)內(nèi)滿足條條件的記記錄添加加刪除標(biāo)標(biāo)志。②RECALL命令命令格式式:RECALL[范圍][FOR條件][WHILE條件]功能:將當(dāng)前前數(shù)據(jù)表表中指定定范圍內(nèi)內(nèi)滿足條條件的記記錄的刪刪除標(biāo)志志取消。。4.5VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的維維護(hù)4.5.3數(shù)據(jù)表數(shù)數(shù)據(jù)的刪刪除2.數(shù)據(jù)表記記錄的物物理刪除除(1)菜單方式式(2)命令方式式①PACK命令,功功能是把把當(dāng)前數(shù)數(shù)據(jù)庫(kù)中中做過(guò)刪刪除標(biāo)記記的記錄錄從文件件中真正正刪除掉掉。②ZAP命令,功功能是刪刪除當(dāng)前前數(shù)據(jù)表表中全部部記錄。。在執(zhí)行行ZAP時(shí),屏幕幕會(huì)出現(xiàn)現(xiàn)信息框框詢問(wèn)是是否清除除已打開(kāi)開(kāi)數(shù)據(jù)表表文件中中的記錄錄。③使用DELETE––SQL命令3.帶邏輯刪刪除標(biāo)志志數(shù)據(jù)表表設(shè)置命令格式式:SETDELETEDON|OFF功能:指定VFP6是否處理理標(biāo)有刪刪除標(biāo)記記的記錄錄,以及及其它命命令是否否可以操操作它們們。4.5VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的維維護(hù)4.5.4數(shù)據(jù)表數(shù)數(shù)據(jù)傳遞遞1.記錄與數(shù)數(shù)組(1)將當(dāng)前記記錄復(fù)制制到數(shù)組組或內(nèi)存存變量命令格式式:SCATTER[FIELDS字段列表表|FIELDSLIKE字段特征征框架|FIELDSEXCEPT字段特征征框架][MEMO]TO數(shù)組名|TO數(shù)組名BLANK|MEMVAR功能:將當(dāng)前前記錄的的字段值值按字段段列表順順序依次次送入數(shù)數(shù)組元素素中,或或依次送送入一組組內(nèi)存變變量。(2)將數(shù)組或或內(nèi)存變變量的數(shù)數(shù)據(jù)復(fù)制制到當(dāng)前前記錄命令格式式:GATHERFROM<數(shù)組名>|MEMVAR[FIELDS字段列表表|FIELDSLIKE字段特征征框架|FIELDSEXCEPT字段特征征框架][MEMO]功能:將數(shù)組組或內(nèi)存存變量的的數(shù)據(jù)依依次復(fù)制制到當(dāng)前前記錄,,以替換換相應(yīng)字字段值。。4.5VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的維維護(hù)4.5.4數(shù)據(jù)表數(shù)數(shù)據(jù)傳遞遞(3)將數(shù)據(jù)表表記錄復(fù)復(fù)制到數(shù)數(shù)組命令格式式:COPYTOARRAY數(shù)組名[FIELDS字段列表表|FIELDSLIKE字段特征征框架|FIELDSEXCEPT字段特征征框架][范圍][FOR條件][WHILE條件]功能:將當(dāng)前前選定表表中指定定范圍內(nèi)內(nèi)滿足條條件記錄錄的制定定字段數(shù)數(shù)據(jù)復(fù)制制到數(shù)組組。(4)將數(shù)組復(fù)復(fù)制到數(shù)數(shù)據(jù)表可以用前前面講述述的APPENDFROMARRAY將數(shù)組中中的數(shù)據(jù)據(jù)復(fù)制到到新表中中的記錄錄。也可可以用GATHER將數(shù)組或或一組內(nèi)內(nèi)存變量量中的數(shù)數(shù)據(jù)復(fù)制制到表中中的記錄錄。還可可以使用用REPLACEFROMARRAY命令。4.5VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的維維護(hù)4.5VFP數(shù)據(jù)表表數(shù)據(jù)據(jù)的維維護(hù)2.數(shù)據(jù)表表的復(fù)復(fù)制(1)任意文文件間間的復(fù)復(fù)制命令格格式:COPYFILE源文件件TO目標(biāo)文文件功能:從源源文件件復(fù)制制得到到目標(biāo)標(biāo)文件件(2)從當(dāng)前前表復(fù)復(fù)制出出表或或其它它類(lèi)型型文件件命令格格式:COPYTO文件名名[FIELDS字段列列表|FIELDSLIKE/EXCEPT字段匹匹配特特征框框架][范圍][FOR/WHILE條件][[WITH]CDX][[SDF|DELIMITED[WITH字符字字段界界限符符|WITHCHARACTER分隔符符]]]功能:用當(dāng)當(dāng)前表表的結(jié)結(jié)構(gòu)和和內(nèi)容容去創(chuàng)創(chuàng)建一一個(gè)既既有結(jié)結(jié)構(gòu)又又有內(nèi)內(nèi)容的的新文文件。。4.5VFP數(shù)據(jù)表表數(shù)據(jù)據(jù)的維維護(hù)4.5VFP數(shù)據(jù)表表數(shù)據(jù)據(jù)的維維護(hù)3.數(shù)據(jù)的的導(dǎo)入入與導(dǎo)導(dǎo)出(1)數(shù)據(jù)導(dǎo)導(dǎo)入數(shù)據(jù)的的導(dǎo)入入是指指把其其他外外部數(shù)數(shù)據(jù)數(shù)數(shù)據(jù)導(dǎo)導(dǎo)入VFP6數(shù)據(jù)表表,供供VFP應(yīng)用程程序系系統(tǒng)使使用。。其中中數(shù)據(jù)據(jù)可以以是文文本、、電子子表格格或表表文件件格式式,利利用系系統(tǒng)提提供的的“導(dǎo)導(dǎo)入””對(duì)話話框來(lái)來(lái)實(shí)現(xiàn)現(xiàn)。(2)數(shù)據(jù)導(dǎo)導(dǎo)出數(shù)據(jù)的的導(dǎo)出出是指指把數(shù)數(shù)據(jù)從從VFP6數(shù)據(jù)表表傳送送到另另外一一個(gè)應(yīng)應(yīng)用程程序所所使用用的文文件中中,供供其它它應(yīng)用用程序序系統(tǒng)統(tǒng)使用用。其其中數(shù)數(shù)據(jù)可可以是是文本本、電電子表表格或或表文文件格格式,,利用用系統(tǒng)統(tǒng)提供供的““導(dǎo)出出”對(duì)對(duì)話框框來(lái)實(shí)實(shí)現(xiàn)。。4.5VFP數(shù)據(jù)表表數(shù)據(jù)據(jù)的維維護(hù)4.6.1VFP數(shù)據(jù)表表數(shù)據(jù)據(jù)的排排序1.排序的的概念念排序就就是將將數(shù)據(jù)據(jù)表中中的記記錄按按照某某個(gè)字字段(或某幾幾個(gè)字字段)值的大大小順順序重重新排排列,,作為為排序序依據(jù)據(jù)的字字段稱(chēng)稱(chēng)為關(guān)關(guān)鍵字字。2.數(shù)據(jù)表表排序序命令格格式:SORTTO文件名名ON字段1[/A|/D][/C][,字段2[/A|/D][/C]...][ASCENDING|DESCENDING][范圍][FOR條件][WHILE條件][FIELDS字段列列表|FIELDSLIKE字段特特征框框架|FIELDSEXCEPT字段特特征框框架]功能:對(duì)當(dāng)當(dāng)前數(shù)數(shù)據(jù)表表中的的記錄錄,按按指定定的字字段及及順序序排序序,排排序后后產(chǎn)生生新表表文件件。4.6VFP數(shù)據(jù)表表數(shù)據(jù)據(jù)的排排序、、索引引4.6.2VFP數(shù)據(jù)表表數(shù)據(jù)據(jù)的索索引1.索引的的概念念“索引引”是是一組組邏輯輯排序序的指指針,,索引引用于于按關(guān)關(guān)鍵字字對(duì)記記錄進(jìn)進(jìn)行排排序,,但并并不改改變表表中記記錄的的物理理順序序,只只是與與表記記錄建建立一一種邏邏輯關(guān)關(guān)系。。索引的的主要要作用用是::按指指定的的關(guān)鍵鍵字排排序后后,可可以快快速顯顯示、、查詢?cè)?、選選擇記記錄,,可以以建立立表間間的關(guān)關(guān)聯(lián)關(guān)關(guān)系。。4.6VFP數(shù)據(jù)表表數(shù)據(jù)據(jù)的排排序、、索引引4.6.2VFP數(shù)據(jù)表表數(shù)據(jù)據(jù)的索索引2.索引及及索引引文件件(1)索引關(guān)鍵字字:索引關(guān)關(guān)鍵字指在在數(shù)據(jù)表中中建立索引引用的字段段或字段表表達(dá)式,它它可以是表表中的單個(gè)個(gè)字段,也也可以是表表中幾個(gè)字字段組成的的表達(dá)式。。(2)索引類(lèi)型在VFP系統(tǒng)中,數(shù)數(shù)據(jù)表的索索引類(lèi)型有有以下4種:①主索引(PRIMARYINDEX)②候選索引(CANDIDATEINDEX)③唯一索引(UNIQUEINDEX)④普通索引(REGULARINDEX)4.6VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的排序、、索引4.6.2VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的索引(3)索引文件的的類(lèi)型①獨(dú)立索引引文件:又又稱(chēng)單索引引文件,文文件擴(kuò)展名名為.IDX。②結(jié)構(gòu)復(fù)合合索引文件件:文件擴(kuò)擴(kuò)展名為.CDX。③非結(jié)構(gòu)復(fù)復(fù)合索引文文件:與結(jié)結(jié)構(gòu)復(fù)合索索引文件相相同,非結(jié)結(jié)構(gòu)復(fù)合索索引文件也也包含多個(gè)個(gè)索引項(xiàng),,擴(kuò)展名也也是.CDX,但文件名名與數(shù)據(jù)表表文件名不不相同,它它不會(huì)隨數(shù)數(shù)據(jù)表文件件的打開(kāi)而而打開(kāi),需需要時(shí)使用用單獨(dú)的打打開(kāi)命令。。(4)索引與索引引文件的關(guān)關(guān)系在VFP6系統(tǒng)中,結(jié)結(jié)構(gòu)復(fù)合索索引文件是是數(shù)據(jù)庫(kù)中中使用得最最普遍,也也是最重要要的索引文文件。由于于主索引與與候選索引引必須與表表一起打開(kāi)開(kāi)和關(guān)閉,,所以它只只能存儲(chǔ)在在結(jié)構(gòu)復(fù)合合索引文件件.CDX中,不能放放在非結(jié)構(gòu)構(gòu)復(fù)合索引引文件與獨(dú)獨(dú)立索引文文件中。4.6VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的排序、、索引4.6.2VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的索引3.索引文件建建立(1)菜單方式“顯示”“表設(shè)計(jì)計(jì)器”“索引””(2)命令方式命令格式:INDEXON索引表達(dá)式式TO單索引文件件名|TAG索引項(xiàng)標(biāo)記記名[OF復(fù)合索引文文件名][FOR條件][COMPACT][ASCENDING|DESCENDING][UNIQUE][ADDITIVE]功能:創(chuàng)建一個(gè)個(gè)索引文件件,利用該該文件可以以按某種邏邏輯順序顯顯示和訪問(wèn)問(wèn)表記錄。。4.6VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的排序、、索引4.6.2VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的索引4.索引文件使使用(1)打開(kāi)索引文文件①同時(shí)打開(kāi)開(kāi)數(shù)據(jù)表文文件和索引引文件命令格式:USE表文件名[INDEX索引文件名名表|?][ORDER[數(shù)值表達(dá)式式]|單索引文件件名|[TAG]標(biāo)識(shí)名[OF復(fù)合索引文文件名]]功能:打開(kāi)表文文件的同時(shí)時(shí)打開(kāi)一個(gè)個(gè)或多個(gè)索索引文件。。②打開(kāi)數(shù)據(jù)據(jù)表文件后后再打開(kāi)索索引文件命令格式:SETINDEXTO索引文件名名表[ADDITIVE]功能:打開(kāi)當(dāng)前前表的一個(gè)個(gè)或多個(gè)索索引文件并并確定主控控索引文件件。4.6VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的排序、、索引4.6.2VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的索引(2)確定主控索索引①菜單方式式“顯示”“瀏覽””“表表”““屬性”②命令方式式命令格式:SETORDERTO[N|單索引文件件名|[TAG]索引標(biāo)識(shí)名名[OF復(fù)合索引文文件名]]功能:在打開(kāi)的的索引文件件中指定主主控索引文文件,或在在打開(kāi)的復(fù)復(fù)合索引文文件中設(shè)置置主控索引引。4.6VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的排序、、索引4.6.2VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的索引(3)更新索引命令格式:REINDEX[COMPACT]功能:重新建立立打開(kāi)的索索引文件。。(4)刪除索引①菜單方式式“顯示”“表設(shè)計(jì)計(jì)器”“索引””②命令方式式命令格式:DELETETAGALL|<索引標(biāo)識(shí)1>[,<索引標(biāo)識(shí)2>…]功能:刪除復(fù)合合索引文件件中指定索索引標(biāo)識(shí)。。4.6VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的排序、、索引4.7.1順序查詢1.LOCATE命令命令格式:LOCATE[范圍][FOR條件]|[WHILE條件]功能:在指定范范圍內(nèi)查找找滿足條件件的第一條條記錄,并并將記錄指指針定位該該記錄。2.CONTINUE命令命令格式:CONTINUE功能:與LOCATE命令連用,,繼續(xù)查找找LOCATE命令指定條條件的記錄錄4.7VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的查詢4.7.2索引查詢命令格式:SEEK表達(dá)式[ORDERN|單索引文件件名|[TAG]索引標(biāo)識(shí)[ASCENDING|DESCENDING]][IN工作區(qū)號(hào)|別名]功能:在打開(kāi)的的索引文件件中查找主主索引關(guān)鍵鍵字值與表表達(dá)式值相相匹配的第第一條記錄錄,并將記記錄指針定定位在該記記錄。4.7VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的查詢4.8.1計(jì)數(shù)命令COUNT命令格式:COUNT[范圍][FOR條件|WHIIE條件][TO內(nèi)存變量]功能:統(tǒng)計(jì)當(dāng)前前表文件中中指定范圍圍內(nèi)滿足條條件的記錄錄個(gè)數(shù)。4.8VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的統(tǒng)計(jì)4.8.2求和命令SUM命令格式:SUM[范圍][N型字段列表表或N型字段表達(dá)達(dá)式列表][FOR條件|WHILE條件][TO內(nèi)存變量表表|ARRAY數(shù)組名]功能:對(duì)當(dāng)前表表文件中指指定范圍內(nèi)內(nèi)滿足條件件的N型字段按列列求和。4.8VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的統(tǒng)計(jì)4.8.3求平均命令令A(yù)VERAGE命令格式:AVERAGE[范圍][N型字段名表表或N型字段表達(dá)達(dá)式表][FOR/WHILE條件][TO內(nèi)存變量表表|ARRAY數(shù)組名]功能:對(duì)當(dāng)前數(shù)數(shù)據(jù)表中滿滿足條件的的N型字段求平平均值。4.8VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的統(tǒng)計(jì)4.8.4計(jì)算命令CALCULATE命令格式:CALCULATE[范圍][表達(dá)式列表表][FOR/WHILE條件][TO內(nèi)存變量表表|ARRAY數(shù)組名]功能:在打開(kāi)的的表中,分分別計(jì)算表表達(dá)式表的的值。4.8VFP數(shù)據(jù)表數(shù)據(jù)據(jù)的統(tǒng)計(jì)4.8.5匯總命令TOTAL命令格式:TOTALON關(guān)鍵字段名名T0文件名[范圍][FOR/WHILE條件][FIELDSN型字段名表表]功能:在當(dāng)前表表中,對(duì)指指定范圍內(nèi)內(nèi)滿足條件件的記錄按按關(guān)鍵字段段名分類(lèi)匯匯總求和,,并生成一一個(gè)新表文文件,新表表文件又稱(chēng)稱(chēng)為匯總文文件4.8VFP數(shù)據(jù)表數(shù)數(shù)據(jù)的統(tǒng)統(tǒng)計(jì)4.9.1工作區(qū)、、別名及及數(shù)據(jù)訪訪問(wèn)1.對(duì)非主工工作區(qū)字字段的訪訪問(wèn)別名調(diào)用用格式::工作區(qū)區(qū)號(hào)字段名、、別名字段名、、別名.字段名2.數(shù)據(jù)工作作期“窗口””“數(shù)據(jù)工工作期””4.9多工作區(qū)區(qū)操作4.9.2表的關(guān)聯(lián)聯(lián)1.表關(guān)聯(lián)的的含義各個(gè)工作作區(qū)表文文件的記記錄指針針是彼此此獨(dú)立,,互不影影響。所所謂關(guān)聯(lián)聯(lián)就是在在兩個(gè)表表文件的的記錄指指針之間間建立一一種臨時(shí)時(shí)關(guān)系,,當(dāng)一個(gè)個(gè)表的記記錄指針針移動(dòng)時(shí)時(shí),與之之關(guān)聯(lián)的的另一個(gè)個(gè)表的記記錄指針針也做相相應(yīng)的移移動(dòng)。關(guān)關(guān)聯(lián)不是是生成一一個(gè)表文文件,只只是形成成了一種種聯(lián)系。。相互關(guān)關(guān)聯(lián)的兩兩張表中中,主動(dòng)動(dòng)建立關(guān)關(guān)聯(lián)的表表稱(chēng)為父父表,被被關(guān)聯(lián)的的表稱(chēng)為為子表。。關(guān)聯(lián)條件件:條件件是首先先為子表表按關(guān)聯(lián)聯(lián)關(guān)鍵字字建立索索引(對(duì)記錄號(hào)號(hào)進(jìn)行關(guān)關(guān)聯(lián)時(shí),,可以不不索引),然后進(jìn)進(jìn)行關(guān)聯(lián)聯(lián)。關(guān)聯(lián)聯(lián)后,當(dāng)當(dāng)父表指指針移動(dòng)動(dòng)時(shí),子子表指針針也會(huì)自自動(dòng)移動(dòng)動(dòng)到滿足足關(guān)聯(lián)條條件的記記錄上。。4.9多工作區(qū)區(qū)操作4.9.2表的關(guān)聯(lián)聯(lián)2.表關(guān)聯(lián)的的建立(1)菜單方式式“窗口””“數(shù)據(jù)工工作期””(2)命令方式式命令格式式:SETRELATIONTO[關(guān)聯(lián)表達(dá)達(dá)式1]INTO別名1[,[關(guān)聯(lián)表達(dá)達(dá)式2]INTO別名2…][ADDITIVE]功能:以當(dāng)前前表為父父表與一一個(gè)或多多個(gè)子表表建立關(guān)關(guān)聯(lián)。4.9多工作區(qū)區(qū)操作4.9.2表的關(guān)聯(lián)聯(lián)3.說(shuō)明一對(duì)對(duì)多關(guān)系系的命令令若兩表關(guān)關(guān)聯(lián)是一一對(duì)多關(guān)關(guān)系,需需要加以以說(shuō)明。。要說(shuō)明明兩表的的一對(duì)多多關(guān)系,,可以利利用數(shù)據(jù)據(jù)工作期期窗口的的“一對(duì)對(duì)多”按按鈕,還還可使用用SETSKIPTO命令。命令格式式:SETSKIPTO[表別名1,[表別名2…]]功能:用在SETRELATION命令之后后,說(shuō)明明已經(jīng)建建立的關(guān)關(guān)聯(lián)為一一對(duì)多關(guān)關(guān)系。使用說(shuō)明明:表別名名表示一一對(duì)多關(guān)關(guān)系中位位于多方方的子表表。不帶帶任何選選擇項(xiàng)的的“SETSKIPTO”將取消一一對(duì)多關(guān)關(guān)系,但但不取消消已經(jīng)建建立的多多對(duì)一關(guān)關(guān)系。4.9多工作區(qū)區(qū)操作4.9.2表的關(guān)聯(lián)聯(lián)例4.39中,以student.dbf為主表與與studing.dbf建立關(guān)聯(lián)聯(lián),這里里使用的的是一對(duì)對(duì)多關(guān)系系。CLOSEALLSELECT1USESTUDINGEXCLUSIVEINDEXON學(xué)號(hào)TAG學(xué)號(hào)SELECT2USESTUDENTEXCLUSIVESETRELATIONTO學(xué)號(hào)INTOASETSKIPTOA4.9多工作區(qū)區(qū)操作4.9.2表的關(guān)聯(lián)聯(lián)4.表間的數(shù)數(shù)據(jù)更新新當(dāng)兩個(gè)相相關(guān)的數(shù)數(shù)據(jù)表分分別在不不同的工工作區(qū)打打開(kāi)后,,即可用用另一個(gè)個(gè)數(shù)據(jù)表表中的數(shù)數(shù)據(jù)來(lái)批批量更新新當(dāng)前數(shù)數(shù)據(jù)表中中的有關(guān)關(guān)數(shù)據(jù)。。命令格式式:UPDATEON<關(guān)鍵字段段名>FROM<工作區(qū)號(hào)號(hào)/別名>REPLACE<字段名1>WITH<表達(dá)式1>……RANDOM功能:當(dāng)<工作區(qū)號(hào)號(hào)/別名>表中記錄錄的關(guān)鍵鍵字段值值與當(dāng)前前表中記記錄的關(guān)關(guān)鍵字段段值匹配配時(shí),用用所指定定的表達(dá)達(dá)式的值值來(lái)替換換當(dāng)前表表中匹配配記錄指指定字段段的值。。4.9多工作區(qū)區(qū)操作4.9.3表之間的的連接表文件之之間的連連接就是是將兩個(gè)個(gè)表的相相關(guān)字段段組合起起來(lái),構(gòu)構(gòu)成一個(gè)個(gè)新的表表文件。。這種連連接稱(chēng)為為物理連連接。命令格式式:JOINWITH工作區(qū)號(hào)號(hào)|別名TO新表名FOR連接條件件[FIELDS字段名]功能:將當(dāng)前前表文件件與指定定別名的的表文件件之間建建立連接接生成一一個(gè)新的的表文件件。4.9多工作區(qū)區(qū)操作4.9.3表之間的的連接例4.40按學(xué)號(hào)將將student.dbf和studing.dbf兩表連接接起來(lái)生生成新表表xsxx.dbf并顯示連連接后的的結(jié)果。。SELECT1USESTUDENTEXCLUSIVESELECT2USESTUDINGEXCLUSIVEJOINWITHATOXSXXFOR學(xué)號(hào)=A.學(xué)號(hào)USEXSXXBROWSE4.9多工作區(qū)區(qū)操作4.9.3表之間的的連接應(yīng)用實(shí)例例:設(shè)有有增加工工資表zjgz.dbf(編號(hào),姓姓名,增增資額)和職工檔檔案表zgda.dbf(其中有基基本工資資字段),現(xiàn)在將將原基本本工資與與增資額額相加作作為新的的基本工工資。USEZGDAINDEXON編號(hào)TAGBHSELECT0USEZJGZINDEXON編號(hào)TAGBHSELECTZGDAUPDATEON編號(hào)FROMZJGZREPLACE基本工資資WITH基本工資資+ZJGZ.增資額BROWSECLOSEDATABASE4.9多工作區(qū)區(qū)操作4.9.4多工作區(qū)區(qū)操

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論