《數(shù)據(jù)庫(kù)》第3章 數(shù)據(jù)庫(kù)及其操作_第1頁(yè)
《數(shù)據(jù)庫(kù)》第3章 數(shù)據(jù)庫(kù)及其操作_第2頁(yè)
《數(shù)據(jù)庫(kù)》第3章 數(shù)據(jù)庫(kù)及其操作_第3頁(yè)
《數(shù)據(jù)庫(kù)》第3章 數(shù)據(jù)庫(kù)及其操作_第4頁(yè)
《數(shù)據(jù)庫(kù)》第3章 數(shù)據(jù)庫(kù)及其操作_第5頁(yè)
已閱讀5頁(yè),還剩84頁(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)介

VisualFoxPro6.0數(shù)據(jù)庫(kù)及其操作3.1數(shù)據(jù)庫(kù)的建立3.2數(shù)據(jù)表的設(shè)計(jì)與建立3.3數(shù)據(jù)表的基本操作3.4排序與索引

3.5數(shù)據(jù)查詢3.6數(shù)據(jù)統(tǒng)計(jì)3.7多工作區(qū)操作3.8數(shù)據(jù)詞典3.1數(shù)據(jù)庫(kù)的建立

數(shù)據(jù)庫(kù)是表的集合,即在一個(gè)數(shù)據(jù)庫(kù)中可以包含若干個(gè)通過(guò)關(guān)鍵字段相互關(guān)聯(lián)的表。一個(gè)數(shù)據(jù)庫(kù)文件(.DBC)中存儲(chǔ)了所包含的表與表之間的聯(lián)系,以及依賴于表的視圖、聯(lián)接和存儲(chǔ)過(guò)程等信息。把表放入數(shù)據(jù)庫(kù)中可以減少數(shù)據(jù)冗余,保護(hù)數(shù)據(jù)的完整性,使得對(duì)數(shù)據(jù)的管理更加方便和有效。數(shù)據(jù)庫(kù)(.DBC)庫(kù)表(.DBF)備注(.FTP)索引(.IDX)

項(xiàng)目是文件、數(shù)據(jù)、文檔和VFP對(duì)象的集合。利用“項(xiàng)目管理器”可以很方便地組織和管理項(xiàng)目中的各類(lèi)數(shù)據(jù)和對(duì)象用戶在開(kāi)發(fā)一個(gè)應(yīng)用系統(tǒng)時(shí),通常都是先從創(chuàng)建項(xiàng)目開(kāi)始的。項(xiàng)目(.PJX)文檔數(shù)據(jù)代碼類(lèi)其他VFP項(xiàng)目組織簡(jiǎn)圖查詢(.QPR)項(xiàng)目(.PJX)文檔數(shù)據(jù)代碼類(lèi)其他自由表(.DBF)數(shù)據(jù)庫(kù)(.DBC)庫(kù)表(.DBF)備注(.FTP)索引(.IDX)

1.建立工作目錄:組織和管理磁盤(pán)中的各類(lèi)文件2.建立項(xiàng)目文件⑴菜單:選擇“文件/新建”菜單命令,或按工具欄“新建”按鈕,在“新建”對(duì)話框中選擇“項(xiàng)目”項(xiàng)⑵命令:CREATEPROJECT[<項(xiàng)目文件名>]3.打開(kāi)項(xiàng)目文件⑴菜單:選擇“文件/打開(kāi)”菜單命令,或按工具欄的“打開(kāi)”按鈕,在“打開(kāi)”對(duì)話框中選擇項(xiàng)目文件(*.PJX)⑵命令:MODIFYPROJECT[<項(xiàng)目文件名>]3.1.2數(shù)據(jù)庫(kù)的建立

1.建立數(shù)據(jù)庫(kù)⑴項(xiàng)目管理器:“新建:數(shù)據(jù)庫(kù)”⑵菜單:選擇“文件/新建:數(shù)據(jù)庫(kù)”菜單命令⑶命令:CREATEDATABASE<數(shù)據(jù)庫(kù)名>2.在項(xiàng)目中添加數(shù)據(jù)庫(kù)在項(xiàng)目管理器中選定“數(shù)據(jù)庫(kù)”項(xiàng),按“添加”按鈕,在“打開(kāi)”對(duì)話框中選擇需要添加的數(shù)據(jù)庫(kù)文件3.1.3數(shù)據(jù)庫(kù)的基本操作1.打開(kāi)數(shù)據(jù)庫(kù)⑴項(xiàng)目管理器:選定要打開(kāi)的數(shù)據(jù)庫(kù),按“打開(kāi)”按鈕⑵菜單:選擇“文件/打開(kāi)”菜單命令⑶命令①打開(kāi)數(shù)據(jù)庫(kù)文件:OPENDATABASE[<數(shù)據(jù)庫(kù)文件名>]②打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器:MODIFYDATABASE[<數(shù)據(jù)庫(kù)文件名>]2.關(guān)閉數(shù)據(jù)庫(kù)⑴項(xiàng)目管理器:選定要關(guān)閉的數(shù)據(jù)庫(kù),按“關(guān)閉”按鈕⑵命令:CLOSEDATABASES3.刪除數(shù)據(jù)庫(kù)⑴項(xiàng)目管理器:選定數(shù)據(jù)庫(kù)后,按“移去”按鈕,將從項(xiàng)目中移去選定的庫(kù)文件;按“刪除”按鈕,則將選定的庫(kù)文件從磁盤(pán)上刪除⑵命令:DELETEDATABABE<數(shù)據(jù)庫(kù)文件名>3.2數(shù)據(jù)表的設(shè)計(jì)與建立1.數(shù)據(jù)表和數(shù)據(jù)庫(kù)表(Table)是處理數(shù)據(jù)和建立關(guān)系型數(shù)據(jù)庫(kù)及應(yīng)用程序的基本元素。數(shù)據(jù)庫(kù)(DATABASE)是表的集合2.數(shù)據(jù)表的類(lèi)型⑴自由表:不屬于任何數(shù)據(jù)庫(kù)而獨(dú)立存在的表⑵數(shù)據(jù)庫(kù)表:屬于某一數(shù)據(jù)庫(kù)的表3.數(shù)據(jù)表的結(jié)構(gòu)數(shù)據(jù)表形式上是一組相關(guān)聯(lián)的數(shù)據(jù)按行和列排列的二維表格,用來(lái)描述一個(gè)實(shí)體字段記錄

3.2.1表結(jié)構(gòu)的設(shè)計(jì)

在VFP中,二維表中的每一列稱為一個(gè)字段(Field),除標(biāo)題行外的每一行稱為一條記錄(Record)。每一列的標(biāo)題叫字段名,列標(biāo)題下的數(shù)據(jù)叫字段值,所有的字段名構(gòu)成二維表的標(biāo)題行(表頭),標(biāo)題行就叫數(shù)據(jù)表的結(jié)構(gòu)(Structure)。一個(gè)數(shù)據(jù)表就是由表結(jié)構(gòu)和記錄兩部分組成。設(shè)計(jì)表的結(jié)構(gòu)即定義該表所包含的字段名、類(lèi)型、寬度、小數(shù)位數(shù)、索引和NULL等。1.字段名

字段名用來(lái)標(biāo)識(shí)表中的字段,它必須以字母或漢字開(kāi)頭,由字母、漢字、數(shù)字或下劃組成,不能含空格。數(shù)據(jù)庫(kù)表的字段名最長(zhǎng)為128字符(64個(gè)漢字),自由表的字段名最長(zhǎng)為10個(gè)字符(5個(gè)漢字)。一個(gè)表最多可以有128個(gè)字段,且字段名不能重復(fù)。

2.字段的數(shù)據(jù)類(lèi)型

字段的數(shù)據(jù)類(lèi)型決定了存儲(chǔ)在此字段中的數(shù)據(jù)的類(lèi)型,由字段的數(shù)據(jù)類(lèi)型決定對(duì)該字段所允許的操作。

VFP提供了13種數(shù)據(jù)類(lèi)型,如下所示:

數(shù)據(jù)

類(lèi)型數(shù)值型:可以是正數(shù)或負(fù)數(shù),也可以是整數(shù)或小數(shù),數(shù)據(jù)長(zhǎng)度最多為20位。如表XSDA中的“入學(xué)分”字段的數(shù)據(jù)類(lèi)型可以設(shè)置成數(shù)值型。貨幣型:貨幣單位,如貨物的價(jià)格。貨幣型數(shù)據(jù)的表示方法是在數(shù)據(jù)前添加符號(hào)$。字符型:可以是英文字母、漢字、數(shù)字字符各種字符型文本,所占用的寬度為1~254個(gè)字節(jié),如學(xué)生情況表XSDA中的“姓名”字段的數(shù)據(jù)類(lèi)型可以設(shè)置成字符型。

數(shù)據(jù)

類(lèi)型日期時(shí)間型:

由年、月、日、時(shí)、分、秒構(gòu)成的數(shù)據(jù)類(lèi)型,如學(xué)生上課的時(shí)間。日期型:

由年、月、日構(gòu)成的數(shù)據(jù)類(lèi)型,如表XSDA中的“出生日期”字段的數(shù)據(jù)類(lèi)型可以設(shè)置成日期型。浮點(diǎn)型:

功能上類(lèi)似于“數(shù)值型”,其長(zhǎng)度在表中最長(zhǎng)可達(dá)20位。邏輯型:值為“真”(.T.)或“假”(.F.),如表XSDA中的“是否團(tuán)員”字段的數(shù)據(jù)類(lèi)型可以設(shè)置成邏輯型。整型:不帶小數(shù)點(diǎn)的數(shù)值類(lèi)型,其優(yōu)點(diǎn)在于比其他數(shù)值型數(shù)據(jù)占據(jù)有存儲(chǔ)空間要小,它只用4個(gè)字節(jié),簡(jiǎn)記I型。雙精度型:雙精度數(shù)值類(lèi)型,一般用于要求精度很高的數(shù)據(jù)。

數(shù)據(jù)

類(lèi)型

數(shù)據(jù)

類(lèi)型通用型:用于標(biāo)記電子表格、文檔、圖片等OLE對(duì)象。通用型數(shù)據(jù)類(lèi)型的固定長(zhǎng)度也為4個(gè)字節(jié),但實(shí)際長(zhǎng)度僅受磁盤(pán)存儲(chǔ)空間限制,并且所保存的數(shù)據(jù)信息也是存放在與表文件同名,擴(kuò)展名為.FPT的文件中。備注型:不定長(zhǎng)的字符型文本,如用于存放個(gè)人簡(jiǎn)歷等。備注型數(shù)據(jù)類(lèi)型的固定長(zhǎng)度為4個(gè)字節(jié),但實(shí)際長(zhǎng)度僅受磁盤(pán)存儲(chǔ)空間限制,并且所保存的數(shù)據(jù)信息實(shí)際上并不存放在表文件中,而是存放在與表文件同名,擴(kuò)展名為.FPT的文件中。3.字段寬度

數(shù)據(jù)類(lèi)型為C、N、F的字段的寬度必須能容納將要顯示的信息的內(nèi)容,C型字段的寬度不能大于254個(gè)字節(jié),否則必須使用M型字段。數(shù)據(jù)類(lèi)型為Y、D、T、I、B、L、M、G的字段的寬度由系統(tǒng)規(guī)定。4.小數(shù)位數(shù)

對(duì)于N型和F型的字段,還要定義小數(shù)位數(shù)。小數(shù)位數(shù)指小數(shù)點(diǎn)右邊有幾位數(shù)字。字段寬度包括整數(shù)位數(shù)、小數(shù)位數(shù)、正負(fù)號(hào)和小數(shù)點(diǎn)。對(duì)于整數(shù),小數(shù)位數(shù)設(shè)為0;對(duì)于純小數(shù),小數(shù)位數(shù)至少比字段寬度少1位。5.使用空值(NULL)

在創(chuàng)建數(shù)據(jù)表結(jié)構(gòu)時(shí),是否選定字段為NULL值,這決定該字段中的數(shù)據(jù)是否接收空值??罩挡煌?,空字符串或者空白,而是一個(gè)不確定的值。

字段字段名類(lèi)型寬度小數(shù)位數(shù)1學(xué)號(hào)字符型(C)52姓名字符型(C)83性別字符型(C)24出生日期日期型(D)85是否團(tuán)員邏輯型(L)16籍貫字符型(C)10

7簡(jiǎn)歷備注型(M)48照片通用型(G)43.2.2表結(jié)構(gòu)的建立

表結(jié)構(gòu)的定義在“表設(shè)計(jì)器”中完成。打開(kāi)表設(shè)計(jì)器的方法有:⑴菜單:選擇“文件/新建”菜單命令⑵命令:CREATE<表文件名>⑶項(xiàng)目管理器定義表結(jié)構(gòu)就是設(shè)置表的字段屬性,包括字段名、數(shù)據(jù)類(lèi)型、字段寬度和小數(shù)位數(shù)等。

輸入記錄數(shù)據(jù)可以選擇“顯示/瀏覽”或“編輯”菜單命令,在“瀏覽”或“編輯”窗口中進(jìn)行。⑴一般數(shù)據(jù)的輸入字符型、數(shù)值型、邏輯型、日期型等字段類(lèi)型數(shù)據(jù)可以直接在瀏覽窗口或編輯窗口中輸入。

⑵備注型字段數(shù)據(jù)的輸入

雙擊名為“memo”的備注字段標(biāo)志,進(jìn)入備注窗口,輸入文本內(nèi)容⑶通用型字段數(shù)據(jù)的輸入

雙擊名為“gen”的通用字段標(biāo)志,進(jìn)入通用型字段輸入編輯窗口。選擇“編輯/插入對(duì)象”菜單命令,在“插入對(duì)象”對(duì)話框中選擇插入OLE對(duì)象

如果在數(shù)據(jù)表中定義了備注型或通用型字段,系統(tǒng)會(huì)自動(dòng)生成與表文件名相同的備注文件(.FPT)。備注文件是表文件的輔助文件,它隨著表文件的打開(kāi)而打開(kāi),隨著表文件的關(guān)閉而關(guān)閉無(wú)論一個(gè)表中定義了多少個(gè)備注型或通用型字段,系統(tǒng)只生成一個(gè)備注文件。

VisualFoxPro6.0數(shù)據(jù)表分為數(shù)據(jù)庫(kù)表和自由表兩種,當(dāng)某一個(gè)表不從屬于任何一個(gè)數(shù)據(jù)庫(kù)的時(shí)候就是一個(gè)自由表。在創(chuàng)建表時(shí),如果當(dāng)前沒(méi)有打開(kāi)任何數(shù)據(jù)庫(kù),則創(chuàng)建的表就是自由表;否則,創(chuàng)建的就是從屬于當(dāng)前數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)表。一個(gè)自由表可以被添加到某一個(gè)數(shù)據(jù)庫(kù)中成為從屬于該數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)表;反之,一個(gè)從屬于某個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)表也可以從該數(shù)據(jù)庫(kù)中移出,使其成為自由表,兩者可以相互轉(zhuǎn)換。

將自由表添加到數(shù)據(jù)庫(kù)⑴項(xiàng)目管理器選擇“數(shù)據(jù)庫(kù):表”項(xiàng),按“添加”按鈕⑵命令:ADDTABLE<數(shù)據(jù)表文件名>

數(shù)據(jù)庫(kù)中的表只能屬于一個(gè)數(shù)據(jù)庫(kù)文件,如果向當(dāng)前數(shù)據(jù)庫(kù)中添加的表已屬于其它數(shù)據(jù)庫(kù),則需要先從其它數(shù)據(jù)庫(kù)中移去該數(shù)據(jù)表,然后才能將它添加到當(dāng)前數(shù)據(jù)庫(kù)中。從數(shù)據(jù)庫(kù)中移去數(shù)據(jù)表⑴項(xiàng)目管理器選定要移去的表,按“移去”按鈕,在提示對(duì)話框中按“移去”按鈕;若按“刪除”按鈕,則不僅從數(shù)據(jù)庫(kù)中移去該表,同時(shí)也從磁盤(pán)上刪除了該表⑵命令:REMOVETABLE

<數(shù)據(jù)表文件名>。3.2.3表結(jié)構(gòu)的修改表結(jié)構(gòu)的修改主要包括:添加和刪除字段;修改字段名稱、數(shù)據(jù)類(lèi)型、字段長(zhǎng)度;是否允許為NULL值;添加、刪除和修改索引標(biāo)識(shí)等。表結(jié)構(gòu)的修改主要是在表設(shè)計(jì)器中進(jìn)行,通常首先要打開(kāi)表文件,然后再打開(kāi)所選表的“表設(shè)計(jì)器”對(duì)話框。方法一:用菜單方式修改表的結(jié)構(gòu) 方法二:使用命令方式修改表的結(jié)構(gòu)方法一:菜單方式修改表的結(jié)構(gòu)

1.選擇“文件”菜單的中的“打開(kāi)”或按“Ctrl+O”鍵,也可以單擊工具欄上的“打開(kāi)”按鈕,在“打開(kāi)”對(duì)話框中選擇“文件類(lèi)型”、為“表(*.dbf)”,選擇表所在的文件夾,找到表文件后,雙擊要打開(kāi)的表。

2.選擇“顯示”菜單的中的“表設(shè)計(jì)器”,打開(kāi)所選表的“表設(shè)計(jì)器”對(duì)話框,然后就可以進(jìn)行表結(jié)構(gòu)的有關(guān)修改。方法二:用命令方式修改表的結(jié)構(gòu)命令格式:MODIFYSTRUCTURE功能:打開(kāi)表設(shè)計(jì)器窗口,顯示并修改當(dāng)前數(shù)據(jù)表的結(jié)構(gòu)。說(shuō)明:在使用此命令之前,一定要打開(kāi)被修改的數(shù)據(jù)表。3.3數(shù)據(jù)表的基本操作3.3.1表的打開(kāi)與關(guān)閉3.3.2表記錄的瀏覽3.3.3表記錄的定位3.3.4表記錄的修改3.3.5表記錄的追加與插入3.3.6表記錄的刪除與恢復(fù)3.3.7表與表結(jié)構(gòu)的復(fù)制3.3.8數(shù)組和表之間的數(shù)據(jù)交換INSERTAPPENDAPPENDFROMBROWSEEDITCHANGEREPLACEDELETERECALLPACKZAPLISTDISPLAYBROWSELOCATECONTINUEFINDSEEKCOUNTSUMAVERAGETOTALCOPY統(tǒng)計(jì)數(shù)據(jù)數(shù)據(jù)表結(jié)構(gòu)數(shù)據(jù)表記錄新建表打開(kāi)/關(guān)閉增加記錄刪除記錄顯示記錄修改記錄檢索記錄排序索引復(fù)制表顯示結(jié)構(gòu)修改結(jié)構(gòu)復(fù)制結(jié)構(gòu)LISTSTRUMODISTRUCOPYSTRU3.3.1表的打開(kāi)與關(guān)閉命令格式:USE[<表文件名>][EXCLUSIVE][SHARED]功能:打開(kāi)指定的數(shù)據(jù)表文件。如果只用USE,不帶任何選項(xiàng),則表示關(guān)閉當(dāng)前打開(kāi)的數(shù)據(jù)表文件。EXCLUSIVE選項(xiàng)表示以獨(dú)占的方式打開(kāi)數(shù)據(jù)表文件,不允許其它用戶在同一時(shí)刻也使用該數(shù)據(jù)表。SHARED選項(xiàng)表示以共享的方式打開(kāi)數(shù)據(jù)表文件,允許其它用戶在同一時(shí)刻也使用該數(shù)據(jù)表?!纠?.1】用命令以獨(dú)占方式打開(kāi)學(xué)生表XSDA.dbf,然后再用命令關(guān)閉該文件。

USED:\vfp\XSDA.dbfEXCLUSIVEUSE1.瀏覽窗口顯示方式

編輯方式和瀏覽方式。

把瀏覽窗口分割成兩各窗格,各用一種顯示方式。3.3.2表記錄的瀏覽(2)顯示記錄(主窗口)命令:LIST|DISPLAY[<范圍>]

[FIELDS<字段名表>][WHILE<條件>][FOR<條件>]LIST命令表示連續(xù)顯示,DISPLAY命令表示顯示滿一屏?xí)r暫停,等待按任一鍵繼續(xù)顯示。若無(wú)<范圍>和<條件>選項(xiàng),LIST命令顯示表中所有記錄,而DISPLAY命令只顯示當(dāng)前一條記錄。若無(wú)FIELDS<字段名表>選項(xiàng),顯示表中記錄的全部字段數(shù)據(jù),否則,按指定的字段名顯示記錄數(shù)據(jù)。若無(wú)OFF選項(xiàng),記錄號(hào)一起顯示;若有OFF選項(xiàng),記錄號(hào)不顯示,只顯示記錄內(nèi)容。數(shù)據(jù)表的瀏覽應(yīng)用示例1.顯示所有男生的姓名與在2007年的年齡

2.顯示所有姓“張”同學(xué)的學(xué)號(hào)、姓名

3.顯示所有姓名中含有“林”字同學(xué)的學(xué)號(hào)、姓名

4.顯示所有在本月過(guò)生日同學(xué)的姓名和出生日期

5.顯示當(dāng)前記錄信息LIST姓名,2007-YEAR(出生日期)FOR性別=‘男’LIST學(xué)號(hào),姓名,FOR

LEFT(姓名,2)=[張]LISTLIST

學(xué)號(hào),姓名FORAT(“林”,姓名)#0$$“林”$姓名LISTFIELDS姓名,出生日期FORMONTH(出生日期)=MONTH(DATE())DISPALY

記錄指針存放的是記錄號(hào)。被記錄指針指向的記錄稱為“當(dāng)前記錄”

向表中錄入數(shù)據(jù)時(shí),系統(tǒng)會(huì)按照錄入次序?yàn)橛涗浖由嫌涗浱?hào)

數(shù)據(jù)表剛打開(kāi)時(shí),記錄指針總是指向首記錄通過(guò)移動(dòng)記錄指針可以指定當(dāng)前要操作的記錄文件起始標(biāo)識(shí)(BOF)首記錄(TOP)第2條記錄………記錄指針→第i條記錄………第n-1條記錄尾記錄(Bottom)文件結(jié)束標(biāo)識(shí)(EOF)3.3.3表記錄的定位____1.記錄指針3.3.3表記錄的定位____2.移動(dòng)記錄指針

⑴菜單:打開(kāi)瀏覽窗口,選擇“表/轉(zhuǎn)到記錄”菜單命令⑵命令①絕對(duì)移動(dòng):[GO[TO]]<記錄號(hào)>|TOP|BOTTOM

功能:將記錄指針定位在指定記錄號(hào)的記錄上

TOP表示第一條記錄,BOTTOM表示最后一條記錄②相對(duì)移動(dòng):SKIP[+|-][<算術(shù)表達(dá)式>]功能:將記錄指針從當(dāng)前位置向前或向后移動(dòng)若干條記錄位置

【例3.2】用命令方式定位并顯示表XSDA的指定記錄。

USED:\VFP\XSDA

GOTOP

DISPLAYGO6DISPLAY

GOBOTTOM

DISPLAY

【例3.3】用命令方式顯示表XSDA倒數(shù)第5條記錄信息。

GOTOBOTTOMSKIP-4DISPLAY3.3.4表記錄的修改

1.在瀏覽窗口中修改數(shù)據(jù)方法一:用菜單方式顯示數(shù)據(jù)記錄和修改數(shù)據(jù)【例3.4】用編輯方式顯示“學(xué)生情況表”的數(shù)據(jù)記錄,并把第4條記錄同學(xué)的籍貫字段內(nèi)容“浙江”改為“福建”。方法二:用命令方式顯示數(shù)據(jù)記錄和修改數(shù)據(jù)命令格式1:EDIT[<范圍>][FIELDS<字段名表>][FOR/WHILE<條件>]命令格式2:CHANGE[<范圍>][FIELDS<字段名表>][FOR/WHILE<條件>]功能:打開(kāi)編輯方式窗口,顯示數(shù)據(jù)表中滿足指定范圍和條件的記錄,并進(jìn)行修改。說(shuō)明:如果不指定任何選項(xiàng),從當(dāng)前記錄開(kāi)始顯示所有字段的數(shù)據(jù)。FIELDS<字段名表>選項(xiàng),指定在窗口中顯示的字段,供編輯修改。不指定此項(xiàng),則顯示全部字段。命令格式3:BROWSE[FIELDS<字段名表>][FOR<條件>][FREEZE<字段名>][NOAPPEND][NOEDIT/NOMODIFY]功能:打開(kāi)瀏覽方式窗口,顯示數(shù)據(jù)表中滿足指定條件的記錄,并進(jìn)行編輯修改。說(shuō)明:如果不指定任何選項(xiàng),顯示當(dāng)前數(shù)據(jù)表的全部記錄。FIELDS<字段名表>選項(xiàng),指定在窗口中顯示的字段,供編輯修改。不指定此項(xiàng),則顯示全部字段。FREEZE<字段名>選項(xiàng),表示在窗口中只允許修改由<字段名>指定的字段,其它字段只能顯示不能修改。不指定此項(xiàng),允許修改所有字段。NOAPPEND表示在窗口中不能追加任何記錄。NOEDIT/NOMODIFY表示在窗口中不能修改表中的記錄。不指定此項(xiàng),表示可修改記錄。

2.成批量的修改數(shù)據(jù)方法一:用菜單方式成批修改數(shù)據(jù)【例3.5】給學(xué)生成績(jī)表XSCJ.dbf增加一個(gè)“平均分”字段(N,5,1),然后要求用菜單方式計(jì)算出所有同學(xué)的“平均分”字段值。

方法二:用命令方式成批修改數(shù)據(jù)命令格式:REPLACE[<范圍>]<字段1>WITH<表達(dá)式1>[,<字段2>WITH<表達(dá)式2>…][FOR/WHILE<條件>]功能:對(duì)當(dāng)前數(shù)據(jù)表中指定范圍內(nèi)滿足條件的記錄,自動(dòng)用給定的表達(dá)式的值替換對(duì)應(yīng)的字段值。說(shuō)明:此命令可對(duì)表中數(shù)據(jù)進(jìn)行成批的修改,即用<表達(dá)式1>的值替換<字段1>的值,用<表達(dá)式2>的值替換<字段2>的值,…,一次可替換多個(gè)字段的值。若無(wú)范圍無(wú)條件選項(xiàng),則只替換修改當(dāng)前記錄的指定字段內(nèi)容。若無(wú)條件選項(xiàng),則替換修改指定范圍內(nèi)所有記錄的指定字段內(nèi)容。若無(wú)范圍選項(xiàng),則替換修改整個(gè)數(shù)據(jù)表中滿足條件的記錄的指定字段內(nèi)容?!纠?.6】XSCJ有學(xué)號(hào)、高等數(shù)學(xué)、英語(yǔ)、計(jì)算機(jī)基礎(chǔ)、馬哲五個(gè)字段,現(xiàn)要求增加一個(gè)“總分”字段(N,5,1),然后要求用REPLACE命令計(jì)算出所有同學(xué)的“總分”字段值。

CLOSEALL USEXSCJMODIFYSTRUCTURE&&打開(kāi)表設(shè)計(jì)器,增加總分字段REPLACE總分WITH英語(yǔ)+高等數(shù)學(xué)+;計(jì)算機(jī)基礎(chǔ)+馬哲ALL

3.3.5表記錄的追加與插入__1.在瀏覽窗口中追加記錄⑴菜單:打開(kāi)瀏覽窗口,選擇“顯示/追加方式”菜單命令,可以在原有記錄的后面追加多條新記錄選擇“表/追加新記錄”菜單命令,每次只能添加一條新記錄。⑵命令:APPEND[BLANK]

BLANK表示空記錄

3.3.5表記錄的追加與插入__2.插入記錄命令:INSERT[BLANK][BEFORE]功能:在數(shù)據(jù)表的當(dāng)前記錄之前或之后插入一條記錄。BEFORE表示“之前”3.3.5追加記錄____3.從其它文件中追加記錄

⑴菜單:打開(kāi)瀏覽窗口,選擇“表/追加記錄”菜單命令⑵命令:APPENDFROM<源表文件名>[FIELDS<字段名表>][FOR<條件>]

功能:將指定表的滿足條件記錄追加到當(dāng)前打開(kāi)的數(shù)據(jù)表的尾部。選擇“表∣追加記錄”命令,打開(kāi)“追加來(lái)源”對(duì)話框,如下圖所示。在“來(lái)源于”文本框中輸入追加記錄的來(lái)源表的文件名,也可單擊其右邊的瀏覽按鈕,從對(duì)話框中選擇來(lái)源文件。兩個(gè)表的結(jié)構(gòu)要求完全相同。3.3.6表記錄的刪除與恢復(fù)

1.邏輯刪除:給記錄加刪除標(biāo)記

⑴鼠標(biāo)操作:在瀏覽窗口中,單擊左側(cè)白色方框使之變黑⑵菜單:選擇“表/刪除記錄”菜單命令⑶命令:DELETE[<范圍>][FOR<條件>]2.恢復(fù)邏輯刪除:取消刪除標(biāo)記⑴鼠標(biāo)操作:?jiǎn)螕暨壿媱h除標(biāo)記,取消黑色方框⑵菜單:選擇“表/恢復(fù)記錄”菜單命令⑶命令:RECALL[<范圍>][FOR<條件>]3.物理刪除:從磁盤(pán)上刪除記錄,不可恢復(fù)⑴菜單:選擇“表/徹底刪除”菜單命令⑵命令:PACK(刪除帶有刪除標(biāo)記的記錄)

ZAP(一步、全部清除表中記錄,僅保留表結(jié)構(gòu))

RECALLDELETEPACKZAP記錄物理刪除邏輯刪除3.3.7表與表結(jié)構(gòu)的復(fù)制

1.數(shù)據(jù)表文件的復(fù)制⑴菜單:打開(kāi)表文件,選擇“文件/導(dǎo)出”菜單命令,顯示“導(dǎo)出”對(duì)話框⑵命令:COPYTO<新表文件>[<范圍>][FIELDS<字段名表>][FOR<條件>][WHILE<條件>]2.數(shù)據(jù)表結(jié)構(gòu)的復(fù)制命令:COPYSTRUCTURETO

<新表文件>[FIELDS<字段名表>]3.4.1排序

排序是把數(shù)據(jù)表中的記錄按照某個(gè)字段值的大小重新排列,作為排序依據(jù)的字段稱為“關(guān)鍵字”。按照關(guān)鍵字的值從小到大的排序稱為升序,從大到小的排序稱為降序。排序后生成一個(gè)新的數(shù)據(jù)表文件,其結(jié)構(gòu)和數(shù)據(jù)可以與源文件完全相同,也可以取自源文件的一部分字段。

原數(shù)據(jù)表(無(wú)序)排序結(jié)果數(shù)據(jù)表(有序)排序3.4排序與索引

排序命令:

SORTTO<新文件名>[<范圍>][FIELDS<字段名表>][FOR<條件>]ON<字段名1>[/A][/D][/C][,<字段名2>[/A][/D][/C]…]功能:將當(dāng)前數(shù)據(jù)表按指定的一個(gè)或多個(gè)字段進(jìn)行排序,并將排序的結(jié)果保存到一個(gè)新的數(shù)據(jù)表中。/A表示升序,/D表示降序,/C表示字母不分大小寫(xiě),默認(rèn)為升序。3.4.2索引____1.基本概念

⑴索引是由指向表記錄的指針構(gòu)成的文件,這些指針邏輯上按照索引關(guān)鍵字的值進(jìn)行排序索引文件和表文件分別存儲(chǔ),并且不改變表中記錄的物理順序原數(shù)據(jù)表(無(wú)序)索引文件(有序)索引.DBF.IDX#…英語(yǔ)…#英語(yǔ)1…77…1922…63…2873…92…3774…43…4665…87…5636…66…643

⑵索引的類(lèi)型(從組織方式分類(lèi))索引文件類(lèi)型描述關(guān)鍵字?jǐn)?shù)目限制單索引.IDX文件名由用戶確定,必須明確打開(kāi)單關(guān)鍵字表達(dá)式100個(gè)字符以內(nèi)結(jié)構(gòu)復(fù)合索引.CDX文件名與表文件名相同,隨表自動(dòng)打開(kāi)多關(guān)鍵字表達(dá)式,稱為標(biāo)識(shí)240個(gè)字符以內(nèi)非結(jié)構(gòu)復(fù)合索引文件名由用戶確定,隨表自動(dòng)打開(kāi)

⑶索引關(guān)鍵字

索引關(guān)鍵字是指建立索引用的字段或字段表達(dá)式,可以是表中的單個(gè)字段,也可以是幾個(gè)字段組成的表達(dá)式。索引表達(dá)式通常用字符串運(yùn)算符“+”將幾個(gè)字段連接起來(lái)。若組成表達(dá)式的字段具有不同類(lèi)型時(shí),則必須使用函數(shù)對(duì)字段進(jìn)行類(lèi)型轉(zhuǎn)換,使其具有相同的數(shù)據(jù)類(lèi)型。一般多字段排列,都將相應(yīng)的字段轉(zhuǎn)換成C型表達(dá)式,例如,STR()函數(shù)可將N型數(shù)據(jù)轉(zhuǎn)換為C型數(shù)據(jù),DTOC()函數(shù)可以把D型數(shù)據(jù)轉(zhuǎn)換為C型數(shù)據(jù)。

⑷索引關(guān)鍵字的類(lèi)型(按功能分類(lèi))索引類(lèi)型關(guān)鍵字重復(fù)值說(shuō)明創(chuàng)建修改命令索引個(gè)數(shù)主索引不允許僅適用數(shù)據(jù)庫(kù)表,可用于在永久關(guān)系中建立參照完整性CREATETABLEALTERTABLE僅1個(gè)候選索引可用作主關(guān)鍵字,可用于在永久關(guān)系中建立參照完整性INDEXCREATETABLEALTERTABLE允許多個(gè)惟一索引允許,但輸出無(wú)重復(fù)值為與以前版本兼容而設(shè)置INDEX普通索引允許可作為一對(duì)多永久關(guān)系中的“多方”1.使用索引命令建立索引命令格式:INDEXON<索引關(guān)鍵字表達(dá)式>TO<單索引文件名>|TAG<索引標(biāo)識(shí)名>[OF<復(fù)合索引文件名>][FOR<條件>][COMPACT][ASCENDING|DESCENDING][UNIQUE|CANDIDATE][ADDITIVE]功能:建立索引文件或建立索引標(biāo)識(shí)。用于指定非結(jié)構(gòu)復(fù)合索引文件的名字TO子句用于建立單索引文件TAG子句用于建立復(fù)合索引標(biāo)識(shí)或復(fù)合索引文件分別用于指定升序或降序表示建立唯一索引表示建立候選索引用來(lái)指定單索引文件為壓縮的3.4.2

索引____2.建立索引如果需要,可輸入篩選條件表達(dá)式向上箭頭為升序索引,向下箭頭為降序索引在“表達(dá)式”文本框中,輸入索引關(guān)鍵字表達(dá)式在“類(lèi)型”列表框中,選定索引類(lèi)型在“索引名”文本框中輸入索引標(biāo)識(shí)名

2.利用表設(shè)計(jì)器來(lái)建立索引3.4.2

索引____3.打開(kāi)索引文件

與表名相同的結(jié)構(gòu)索引在打開(kāi)表時(shí)都已自動(dòng)打開(kāi),但對(duì)于單索引文件和非結(jié)構(gòu)索引文件必須在使用之前打開(kāi)索引文件。

(1)若索引文件已經(jīng)建立,可在打開(kāi)表文件的同時(shí)打開(kāi)索引文件。格式:USE<表文件名>INDEX<索引文件名表>功能:打開(kāi)表的同時(shí)打開(kāi)一個(gè)或多個(gè)索引文件。說(shuō)明:<索引文件名表>:指定要打開(kāi)的一個(gè)或多個(gè)索引文件,多個(gè)索引文件之間要用逗號(hào)分隔,第一個(gè)索引文件自動(dòng)成為主控索引文件。(2)若索引文件已經(jīng)建立,且表文件已經(jīng)打開(kāi),需單獨(dú)打開(kāi)索引文件。格式:SETINDEXTO<索引文件名表>[ADDITIVE]功能:打開(kāi)當(dāng)前表的一個(gè)或多個(gè)索引文件。3.4.2

索引____4.設(shè)置當(dāng)前索引

一個(gè)表可以打開(kāi)多個(gè)相關(guān)的索引文件,同一個(gè)復(fù)合索引文件中也可能包含多個(gè)索引標(biāo)識(shí),但任何時(shí)候只有一個(gè)索引文件起作用,在復(fù)合索引中也只能有一個(gè)索引標(biāo)識(shí)起作用。當(dāng)前起作用的索引文件稱為主控索引文件,當(dāng)前起作用的索引標(biāo)識(shí)稱為當(dāng)前索引(又稱為主控索引),就是控制當(dāng)前顯示順序的索引。因此,使用索引的一般步驟:打開(kāi)表;打開(kāi)索引文件;如果只打開(kāi)一個(gè)索引文件,它自然就是主控索引文件,否則就要確定主控索引文件;若當(dāng)前主控索引文件是某一個(gè)復(fù)合索引文件還需進(jìn)一步確定它的哪一個(gè)索引標(biāo)識(shí)是當(dāng)前索引。格式:SETORDERTO[<索引序號(hào)>|<IDX文件名>|[TAG]<索引標(biāo)識(shí)名>[OF<CDX文件名>]]功能:在打開(kāi)的索引文件中指定主控索引文件,或在打開(kāi)的復(fù)合索引文件中設(shè)置當(dāng)前索引。5.更新索引

(1)

自動(dòng)更新

(2)

重新索引

命令格式:REINDEX

功能:重建打開(kāi)的索引文件。6.刪除索引

(1)單索引文件可采取刪除文件的方法直接刪除。格式:DELETEFILE<索引文件名>

(2)刪除索引標(biāo)識(shí)命令格式:DELETETAGALL|<索引標(biāo)識(shí)1>[,索引標(biāo)識(shí)2][OF<復(fù)合索引文件名>]

功能:刪除打開(kāi)的復(fù)合索引文件的索引標(biāo)識(shí)。說(shuō)明:ALL子句用于刪除所有的索引標(biāo)識(shí)。如果所有的索引標(biāo)識(shí)都被刪除,則索引文件也將被刪除?!纠?.7】建立索引、打開(kāi)索引和設(shè)置當(dāng)前索引示例。USEXSDAINDEXON姓名TAGXMLISTINDEXON性別TAGXBDESCUNIQUELISTINDEXON姓名+DTOC(出生日期)TAGXDLISTCLOSEALLUSEXSDAORDERTAGXMLISTSETORDERTOXBLISTSETORDERTOLIST3.5數(shù)據(jù)查詢3.5.1順序查詢命令順序查詢是在表中按記錄的物理順序依次進(jìn)行的查詢。命令格式:LOCATE[<范圍>]FOR<條件>[WHILE<條件>]CONTINUE功能:在當(dāng)前表的指定范圍中搜索滿足條件的第一條記錄。說(shuō)明:此命令找到第一條滿足條件的記錄,記錄指針就指向該記錄;若找不到滿足條件的記錄,則記錄指針指向文件結(jié)束處(即EOF()返回.T.值)。(1)缺省<范圍>表示ALL。(2)找到一條滿足條件的記錄后,要繼續(xù)往下查找滿足條件的其它記錄就必須用CONTINUE命令。【例3-8】在學(xué)生檔案表XSDA.dbf中(設(shè)共有7條記錄)按順序查找籍貫為江蘇的所有同學(xué)記錄。CLOSEALLUSEXSDALOCATEFOR籍貫=”江蘇”?FOUND()&&顯示是否找到記錄,本例中結(jié)果為.T.?RECNO()&&顯示當(dāng)前記錄號(hào),本例中結(jié)果為1DISPLAY&&顯示找到的記錄DISPLAY的運(yùn)行結(jié)果如下:記錄號(hào)學(xué)號(hào)姓名性別出生日期是否團(tuán)員籍貫簡(jiǎn)歷照片

100001李平男12/11/78.F.江蘇MemogenCONTINUE&&繼續(xù)查找?FOUND()&&本例中結(jié)果為.T.?RECNO()&&本例中結(jié)果為3DISPLAYDISPLAY的運(yùn)行結(jié)果如下:記錄號(hào)學(xué)號(hào)姓名性別出生日期是否團(tuán)員籍貫簡(jiǎn)歷照片

300003李彤女10/16/77.F.江蘇MemogenCONTINUE?FOUND()&&本例中結(jié)果為.F.?RECNO()&&本例中結(jié)果為83.5.2索引查詢命令

索引查詢按記錄的邏輯順序查詢,速度很快,又稱為快速查詢,但它需要事先對(duì)表建立索引文件。格式:SEEK<表達(dá)式>功能:在已確定當(dāng)前索引的表文件中快速查找滿足<表達(dá)式>值的第一個(gè)記錄。(1)<表達(dá)式>指定SEEK搜索的索引關(guān)鍵字表達(dá)式,可查詢C、N、D和L型數(shù)據(jù),注意:C、D和L型數(shù)據(jù)要加相應(yīng)的定界符。(2)必須先打開(kāi)索引并確認(rèn)相應(yīng)的主控索引后才能使用。(3)當(dāng)表中有多個(gè)滿足條件的記錄時(shí),指針定位在第一條滿足條件的記錄上,用SKIP可定位到下一條。(4)如果查找成功,則函數(shù)RECNO()可返回該記錄的記錄號(hào),此時(shí)函數(shù)FOUND()返回值為.T.,EOF()返回值為.F.;否則,記錄指針指向文件末尾,此時(shí)RECNO()的值為表文件總記錄數(shù)加1,F(xiàn)OUND()返回值為.F.,EOF()返回值為.T.【例3-9】索引查找示例。CLOSEALLUSEXSDAINDEXON姓名TAGXMINDEXON出生日期TAGCSRQSETORDERTOXM&&設(shè)置標(biāo)識(shí)為XM的索引為主控索引SEEK”李彤”&&查找姓名為李彤的記錄?RECNO()DISPLAYSETORDERTOCSRQ&&設(shè)置標(biāo)識(shí)為CSRQ的索引為主控索引SEEK{^1988/04/21}&&查找出生日期為{^1988/04/21}的記錄?RECNO()DISPLAY3.6數(shù)據(jù)統(tǒng)計(jì)3.6.1統(tǒng)計(jì)記錄個(gè)數(shù)命令命令格式:COUNT[<范圍>][FOR<條件1>][WHILE<條件2>][TO<內(nèi)存變量>]功能:計(jì)算指定范圍內(nèi)滿足條件的記錄個(gè)數(shù)。說(shuō)明:<范圍>缺省時(shí)默認(rèn)為所有記錄。【例3-10】分別統(tǒng)計(jì)學(xué)生檔案表XSDA.dbf中的學(xué)生總?cè)藬?shù)、男同學(xué)以及女同學(xué)的人數(shù)。USEXSDACOUNTTOn ?nCOUNTFOR性別=”男”TOboyCOUNTFOR性別=”女”TOgirl?boy,girl3.6.2求和命令命令格式:SUM[<數(shù)值表達(dá)式表>][<范圍>][FOR<條件1>][WHILE<條件2>][TO<內(nèi)存變量表>|TOARRAY<數(shù)組>]功能:功能:在當(dāng)前表中,對(duì)指定范圍內(nèi)給定條件的數(shù)值型字段或含數(shù)值型字段的數(shù)值表達(dá)式進(jìn)行縱向求和計(jì)算,并將結(jié)果存入指定的內(nèi)存變量或數(shù)組中?!纠?-11】分別求成績(jī)表XSCJ.dbf中全班高等數(shù)學(xué)、英語(yǔ)、計(jì)算機(jī)基礎(chǔ)、馬哲課程的成績(jī)和。USEXSCJSUM高等數(shù)學(xué),英語(yǔ),計(jì)算機(jī)基礎(chǔ),馬哲TOARRAYSCORE?SCORE(3)3.6.3求平均值命令命令格式:

AVERAGE[<數(shù)值表達(dá)式表>][<范圍>][FOR<條件1>][WHILE<條件2>][TO<內(nèi)存變量表>|TOARRAY<數(shù)組>]功能:對(duì)當(dāng)前表中指定范圍內(nèi)滿足條件的記錄的數(shù)值型字段求算術(shù)平均值,并將結(jié)果存入指定的內(nèi)存變量或數(shù)組中。【例3-12】分別求成績(jī)表XSCJ中全班高等數(shù)學(xué)、英語(yǔ)、計(jì)算機(jī)基礎(chǔ)以及馬哲課程的平均成績(jī)。USEXSCJAVERAGE高等數(shù)學(xué),英語(yǔ),計(jì)算機(jī)基礎(chǔ),馬哲3.6.4計(jì)算命令命令格式:CALCULATE<表達(dá)式表>[<范圍>][FOR<條件1>][WHILE<條件2>][TO<內(nèi)存變量表>|TOARRAY<數(shù)組>]功能:分別統(tǒng)計(jì)當(dāng)前表中表達(dá)式表的值。函數(shù)名說(shuō)明函數(shù)名說(shuō)明1、CNT()統(tǒng)計(jì)記錄個(gè)數(shù)5、MIN()求最小值2、AVG()求平均6、VAR()求均方差3、SUM()求和7、STD()求標(biāo)準(zhǔn)差4、MAX()求最大值8、NPV()求凈現(xiàn)值說(shuō)明:在表達(dá)式中,重點(diǎn)掌握cnt(),sum(),avg(),max(),min()等函數(shù)的使用?!纠?-13】分別計(jì)算學(xué)生檔案表XSDA中男同學(xué)的人數(shù)和平均年齡。

USEXSDACALCULATEcnt(),avg(year(date())-;year(出生日期))FOR性別="男"TOboy,nl?“男生人數(shù)”,“平均年齡”?boy,nl

3.6.5分類(lèi)匯總命令

分類(lèi)匯總是將數(shù)據(jù)表中的記錄按某個(gè)字段進(jìn)行排序分類(lèi),再對(duì)其它需要匯總的字段進(jìn)行匯總統(tǒng)計(jì)。命令格式:

TOTALTO<文件名>ON<關(guān)鍵字>[FIELDS<字段名表>][<范圍>][FOR<條件1>][WHILE<條件2>]

功能:對(duì)當(dāng)前表進(jìn)行分類(lèi)匯總,匯總的結(jié)果存入一個(gè)新表。匯總時(shí)把<關(guān)鍵字>值相同的一組記錄匯總成一個(gè)記錄,其中指定的數(shù)值型字段值取該字段的匯總值,其它字段取該組記錄中的第一條記錄。在新表中,記錄按<關(guān)鍵字>的取值進(jìn)行排列?!纠?-14】先給成績(jī)表XSCJ.dbf增加一個(gè)“性別”字段,然后按性別分類(lèi)統(tǒng)計(jì)男女學(xué)生的“總分”字段之和。CLOSEALLUSEXSCJINDEXON性別TAGXBTOTALON性別TOXSDAZFFIELDS總分USEXSCJZFLIST3.7多工作區(qū)操作3.7.1工作區(qū)3.7.2多表之間的關(guān)系3.7.3永久關(guān)系3.7.4臨時(shí)關(guān)系3.7.1工作區(qū)

1.工作區(qū)的概念

VisualFoxPro最多同時(shí)打開(kāi)32767個(gè)數(shù)據(jù)表,每個(gè)打開(kāi)的表都在內(nèi)存中開(kāi)辟一個(gè)存儲(chǔ)區(qū)域,這個(gè)存儲(chǔ)區(qū)域就叫做工作區(qū)。VisualFoxPro規(guī)定在每個(gè)工作區(qū)上只能打開(kāi)一個(gè)表,所以就有32767個(gè)工作區(qū)可使用,編號(hào)為1~32767。當(dāng)前工作區(qū):系統(tǒng)任何時(shí)候只能選擇一個(gè)工作區(qū)進(jìn)行操作,當(dāng)前正在操作的工作區(qū)稱為當(dāng)前工作區(qū)。當(dāng)前表:在當(dāng)前工作區(qū)打開(kāi)的數(shù)據(jù)表稱為當(dāng)前表

說(shuō)明:在某一時(shí)刻每一個(gè)工作區(qū)中最多只有一個(gè)表處于“工作”狀態(tài),可以對(duì)該表進(jìn)行各種操作。在一個(gè)工作區(qū)中已打開(kāi)了一個(gè)表,若再打開(kāi)另一個(gè)表,則原先被打開(kāi)的表將自動(dòng)關(guān)閉。反之,一個(gè)表只能在一個(gè)工作區(qū)打開(kāi),若在其未關(guān)閉時(shí)若試圖在其他工作區(qū)中打開(kāi)它,VisualFoxPro6.0會(huì)顯示出錯(cuò)信息“文件正在使用”。

2.工作區(qū)號(hào)和別名

在VFP中,系統(tǒng)提供了32767個(gè)工作區(qū),每個(gè)工作區(qū)都有一個(gè)編號(hào),稱為工作區(qū)號(hào),編號(hào)從1到32767。系統(tǒng)默認(rèn)編號(hào)為1的工作區(qū)為當(dāng)前工作區(qū),即啟動(dòng)VFP系統(tǒng),打開(kāi)一個(gè)數(shù)據(jù)表文件時(shí),該表文件自動(dòng)被調(diào)入1號(hào)工作區(qū)。

別名是指給工作區(qū)取的一個(gè)除工作區(qū)編號(hào)以外的名字。在VFP中,對(duì)前10個(gè)工作區(qū)除使用1~10為編號(hào)外,其別名還可以依次用A~J10個(gè)字母來(lái)表示。可以在一個(gè)工作區(qū)中打開(kāi)一個(gè)數(shù)據(jù)表文件的同時(shí)給這個(gè)工作區(qū)定義一個(gè)別名。命令格式:USE<數(shù)據(jù)表文件名>ALIAS<別名>功能:打開(kāi)指定的數(shù)據(jù)表文件,并給該文件指定一個(gè)別名。3.工作區(qū)的選擇

可以先選擇工作區(qū),然后再打開(kāi)表,也可以在打開(kāi)表的同時(shí)選擇工作區(qū)。(1)選擇工作區(qū)的命令格式:SELECT<工作區(qū)號(hào)>|<別名>功能:通過(guò)工作區(qū)編號(hào)或別名選定某個(gè)工作區(qū)作為當(dāng)前工作區(qū)。說(shuō)明:①用SELECT命令選定的工作區(qū)稱為當(dāng)前工作區(qū),VisualFoxPro6.0默認(rèn)1號(hào)工作區(qū)為當(dāng)前工作區(qū)??捎煤瘮?shù)SELECT()返回當(dāng)前工作區(qū)號(hào)。②命令SELECT0表示選定當(dāng)前未使用的最小號(hào)工作區(qū),該命令使用戶不必記工作區(qū)號(hào)。(2)打開(kāi)表的同時(shí)指定工作區(qū)的命令

格式:USE<表名>IN<工作區(qū)>[ALIAS<別名>]

功能:在指定的工作區(qū)打開(kāi)表,但不改變當(dāng)前工作區(qū),改變當(dāng)前工作區(qū)還需使用SELECT命令?!纠?-15】用USE命令在不同工作區(qū)打開(kāi)表示例。CLOSEALLOPENDATABASEJXGL?SELECT()&&當(dāng)前工作區(qū)為1號(hào)工作區(qū)USEXSDA&&在當(dāng)前工作區(qū)(即1號(hào)工作區(qū))打開(kāi)表XSDAUSEXSCJIN2&&在2號(hào)工作區(qū)打開(kāi)表XSCJ,注意:此時(shí)2號(hào)工作區(qū)并不是當(dāng)前工作區(qū)?SELECT()&&顯示當(dāng)前工作區(qū),本例的結(jié)果為1LIST&&本例顯示的是當(dāng)前工作區(qū)中打開(kāi)的表XSDA的全部記錄SELECTXSCJ&&將打開(kāi)的表XSCJ所在的工作區(qū)變?yōu)楫?dāng)前工作區(qū)?SELECT()&&顯示當(dāng)前工作區(qū),本例結(jié)果為2LIST&&本例顯示的是當(dāng)前工作區(qū)中打開(kāi)的表XSCJ的全部記錄3.7.2多表之間的關(guān)系

一個(gè)數(shù)據(jù)庫(kù)中的多個(gè)表既相互獨(dú)立,又存在聯(lián)系。對(duì)數(shù)據(jù)庫(kù)的一個(gè)重要操作就是建立表之間的關(guān)系,即以其中一個(gè)表中的字段與另一個(gè)表中的同名字段建立關(guān)系。多表之間的關(guān)系存在以下幾種類(lèi)型:(1)一對(duì)一關(guān)系。表A的一個(gè)記錄在表B中只能對(duì)應(yīng)一個(gè)記錄,并且表B中的一個(gè)記錄在表A中也只能有一個(gè)記錄與之對(duì)應(yīng)。(2)一對(duì)多關(guān)系。表A的一個(gè)記錄在表B中對(duì)應(yīng)多個(gè)記錄,但表B的每一個(gè)記錄在表A中只有一個(gè)記錄與之對(duì)應(yīng)。(3)多對(duì)多關(guān)系。在多對(duì)多關(guān)系中,表A的一個(gè)記錄在表B中可以對(duì)應(yīng)多個(gè)記錄,反過(guò)來(lái),表B的一個(gè)記錄在表A中也可以對(duì)應(yīng)多個(gè)記錄。3.7.3永久關(guān)系

永久關(guān)系是存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)表之間的關(guān)系,永久關(guān)系存儲(chǔ)在數(shù)據(jù)庫(kù)文件中,只要不作刪除或變更就一直保留,因此不需要每次使用時(shí)都重建。在數(shù)據(jù)庫(kù)設(shè)計(jì)器中,永久關(guān)系顯示為聯(lián)系數(shù)據(jù)庫(kù)表索引的線。在數(shù)據(jù)庫(kù)設(shè)計(jì)器中建立永久關(guān)系,步驟如下:(1)打開(kāi)數(shù)據(jù)庫(kù)文件,進(jìn)入“數(shù)據(jù)庫(kù)設(shè)計(jì)器”窗口。(2)建立索引(3)建立表間關(guān)系3.7.4臨時(shí)關(guān)系

1.

關(guān)聯(lián)的概念

臨時(shí)關(guān)系也稱為關(guān)聯(lián),就是使不同工作區(qū)的記錄指針建立一種聯(lián)動(dòng)關(guān)系,當(dāng)一個(gè)表的記錄指針移動(dòng)時(shí),與它相關(guān)聯(lián)的表的記錄指針也隨之移動(dòng)。

2.建立關(guān)聯(lián)的條件

建立關(guān)聯(lián)的兩個(gè)表中用來(lái)建立關(guān)聯(lián)的表稱為父表,被關(guān)聯(lián)的表稱為子表。父表記錄指針的移動(dòng),會(huì)使子表記錄指針自動(dòng)移到滿足關(guān)聯(lián)條件的記錄上。關(guān)聯(lián)條件通常要求比較不同表的兩個(gè)字段關(guān)鍵字是否相等,所以除要在關(guān)聯(lián)命令中指明這兩個(gè)字段關(guān)鍵字外,還必須為子表的字段關(guān)鍵字建立索引,并設(shè)置為當(dāng)前索

溫馨提示

  • 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)論