第4章-Visual-FoxPro表的基本操作_第1頁(yè)
第4章-Visual-FoxPro表的基本操作_第2頁(yè)
第4章-Visual-FoxPro表的基本操作_第3頁(yè)
第4章-Visual-FoxPro表的基本操作_第4頁(yè)
第4章-Visual-FoxPro表的基本操作_第5頁(yè)
已閱讀5頁(yè),還剩156頁(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章表的基本操作(時(shí)間:4次課,8學(xué)時(shí))第4章表的基本操作教學(xué)提示:在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中,所有的操作都是在表基礎(chǔ)上進(jìn)行的。表在VisualFoxPro中分為數(shù)據(jù)庫(kù)表和自由表。本章主要介紹在VisualFoxPro環(huán)境下如何建立表,如何向表中輸入數(shù)據(jù)、瀏覽和修改表的結(jié)構(gòu)、修改表中數(shù)據(jù)及建立索引、多表間的關(guān)聯(lián)等內(nèi)容,最后介紹了有關(guān)數(shù)據(jù)庫(kù)表的相關(guān)操作。教學(xué)目標(biāo):通過(guò)本章的學(xué)習(xí),要求掌握如何建立、修改及刪除數(shù)據(jù)庫(kù),如何建立和修改表,掌握表索引的建立及使用方法,會(huì)對(duì)表記錄進(jìn)行各種操作。通過(guò)上機(jī)實(shí)習(xí)進(jìn)一步掌握多表間的關(guān)聯(lián)及數(shù)據(jù)庫(kù)表的相關(guān)操作。

第4章表的基本操作4.1數(shù)據(jù)庫(kù)的操作4.2表的建立4.3對(duì)表記錄的操作4.4建立表索引4.5表中數(shù)值參數(shù)的統(tǒng)計(jì)4.6文件操作命令4.7多表間的關(guān)聯(lián)4.8數(shù)據(jù)庫(kù)表的相關(guān)設(shè)置4.9上機(jī)指導(dǎo)4.10習(xí)題4.1數(shù)據(jù)庫(kù)的操作在介紹數(shù)據(jù)表的操作之前,本節(jié)先介紹數(shù)據(jù)庫(kù)的操作,其中包括建立數(shù)據(jù)庫(kù)、修改數(shù)據(jù)庫(kù),以及數(shù)據(jù)庫(kù)的打開(kāi)、關(guān)閉和刪除操作。4.1.1建立數(shù)據(jù)庫(kù)4.1.2打開(kāi)、修改及關(guān)閉數(shù)據(jù)庫(kù)4.1.3刪除數(shù)據(jù)庫(kù)4.1.1建立數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)可以在項(xiàng)目管理器中利用【數(shù)據(jù)庫(kù)設(shè)計(jì)器】直接建立,還可以使用命令方式建立及菜單方式建立。用項(xiàng)目管理器建立數(shù)據(jù)庫(kù)操作方法:打開(kāi)【項(xiàng)目管理器】對(duì)話框,在【數(shù)據(jù)】選項(xiàng)卡中選擇【數(shù)據(jù)庫(kù)】命令,并單擊【新建】按鈕。在彈出的【新建數(shù)據(jù)庫(kù)】對(duì)話框中,單擊【新建數(shù)據(jù)庫(kù)】按鈕,如圖所示。系統(tǒng)將彈出一個(gè)【創(chuàng)建】對(duì)話框,填寫文件名后打開(kāi)一個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)器。4.1.1建立數(shù)據(jù)庫(kù)l

用菜單方式建立數(shù)據(jù)庫(kù)操作方法:在VisualFoxPro系統(tǒng)主菜單下,選擇【文件】│【新建】命令,然后選擇【數(shù)據(jù)庫(kù)】命令,單擊【新建文件】按鈕,彈出【創(chuàng)建】對(duì)話框。填寫文件名后進(jìn)入【數(shù)據(jù)庫(kù)設(shè)計(jì)器】。l

用命令方式建立數(shù)據(jù)庫(kù)命令格式:CREATEDATABASE<數(shù)據(jù)庫(kù)名>命令功能:創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),若省略擴(kuò)展名,則系統(tǒng)默認(rèn)其擴(kuò)展名為.DBC。

4.1.1建立數(shù)據(jù)庫(kù)例4.1建立一個(gè)空數(shù)據(jù)庫(kù)文件“學(xué)生管理”操作步驟如下:(1) 在VisualFoxPro系統(tǒng)主菜單下,選擇【文件】│【新建】命令,彈出【新建】對(duì)話框。(2) 在【新建】對(duì)話框中,選擇文件類型為【數(shù)據(jù)庫(kù)】,單擊【新建文件】按鈕,系統(tǒng)彈出【創(chuàng)建】對(duì)話框。(3) 在【創(chuàng)建】對(duì)話框,輸入新建數(shù)據(jù)庫(kù)的庫(kù)名“學(xué)生管理”,單擊【保存】按鈕,此時(shí)空數(shù)據(jù)庫(kù)文件“學(xué)生管理”已建成。4.1.1建立數(shù)據(jù)庫(kù)例4.2在A盤上建立名為“學(xué)生管理.DBC”的數(shù)據(jù)庫(kù)SETDEFAULTTOA&&設(shè)置A盤為默認(rèn)盤CREATEDATABASE學(xué)生管理

&&在A盤上創(chuàng)建“學(xué)生管理.DBC”提示:與前兩種方式不同,用命令方式創(chuàng)建數(shù)據(jù)庫(kù)后,數(shù)據(jù)庫(kù)設(shè)計(jì)器并沒(méi)有馬上打開(kāi)。4.1.2打開(kāi)、修改及關(guān)閉數(shù)據(jù)庫(kù)打開(kāi)、修改及關(guān)閉一個(gè)已存在的數(shù)據(jù)庫(kù)可采用三種方式:即項(xiàng)目管理器方式、菜單方式和命令方式。

1.在項(xiàng)目管理器中打開(kāi)、修改和關(guān)閉數(shù)據(jù)庫(kù)操作方法如下:(1) 打開(kāi)數(shù)據(jù)庫(kù)時(shí),打開(kāi)【項(xiàng)目管理器】,在【數(shù)據(jù)】選項(xiàng)卡中選擇一個(gè)已經(jīng)存在的數(shù)據(jù)庫(kù)文件,并單擊【打開(kāi)】按鈕。此時(shí),被選擇的數(shù)據(jù)庫(kù)文件被打開(kāi),同時(shí)【打開(kāi)】按鈕變成【關(guān)閉】按鈕。(2) 修改數(shù)據(jù)庫(kù)時(shí),在【項(xiàng)目管理器】的【數(shù)據(jù)】選項(xiàng)卡中選擇要修改的數(shù)據(jù)庫(kù)文件,并單擊【修改】按鈕,此時(shí),可在打開(kāi)的【數(shù)據(jù)庫(kù)設(shè)計(jì)器】中,對(duì)數(shù)據(jù)庫(kù)文件進(jìn)行修改。(3) 關(guān)閉數(shù)據(jù)庫(kù)時(shí),在【項(xiàng)目管理器】的【數(shù)據(jù)】選項(xiàng)卡中選擇要關(guān)閉的數(shù)據(jù)庫(kù)文件,并單擊【關(guān)閉】按鈕即可。4.1.2打開(kāi)、修改及關(guān)閉數(shù)據(jù)庫(kù)2.用菜單方式打開(kāi)、修改和關(guān)閉數(shù)據(jù)庫(kù)操作方法如下:(1) 在VisualFoxPro系統(tǒng)主菜單下,選擇【文件】│【打開(kāi)】命令,進(jìn)入【打開(kāi)】對(duì)話框。(2) 在【打開(kāi)】對(duì)話框的文件類型下拉列表中,選擇數(shù)據(jù)庫(kù)類型,選擇數(shù)據(jù)庫(kù)文件或輸入數(shù)據(jù)庫(kù)名,單擊【確定】按鈕,進(jìn)入【數(shù)據(jù)庫(kù)設(shè)計(jì)器】

對(duì)話框,在該對(duì)話框中可對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改。(3) 要關(guān)閉【數(shù)據(jù)庫(kù)設(shè)計(jì)器】只需單擊右上角的【關(guān)閉】按鈕或選擇【文件】菜單中的【關(guān)閉】命令。

4.1.2打開(kāi)、修改及關(guān)閉數(shù)據(jù)庫(kù)3.用命令方式打開(kāi)、修改和關(guān)閉數(shù)據(jù)庫(kù)(1) 打開(kāi)數(shù)據(jù)庫(kù)命令格式:OPENDATABASE<數(shù)據(jù)庫(kù)名>命令功能:打開(kāi)指定的數(shù)據(jù)庫(kù)文件。若以前有數(shù)據(jù)庫(kù)被打開(kāi),則同時(shí)關(guān)閉以前被打開(kāi)的數(shù)據(jù)庫(kù)。(2) 修改數(shù)據(jù)庫(kù)命令格式:MODIFYDATABASE<數(shù)據(jù)庫(kù)名>[NOWAIT][NOEDIT]命令功能:打開(kāi)【數(shù)據(jù)庫(kù)設(shè)計(jì)器】對(duì)話框,對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改。[NOWAIT]:該選項(xiàng)只在程序中使用,在交互使用的命令窗口中無(wú)效。其作用是在【數(shù)據(jù)庫(kù)設(shè)計(jì)器】對(duì)話框打開(kāi)后程序繼續(xù)執(zhí)行,即繼續(xù)執(zhí)行MODIFYDATABASENOWAIT之后的語(yǔ)句。如果不使用該選項(xiàng),在打開(kāi)【數(shù)據(jù)庫(kù)設(shè)計(jì)器】對(duì)話框后,應(yīng)用程序會(huì)暫停,直到【數(shù)據(jù)庫(kù)設(shè)計(jì)器】對(duì)話框關(guān)閉后應(yīng)用程序才會(huì)繼續(xù)執(zhí)行。[NOEDIT]:使用該選項(xiàng)只是打開(kāi)【數(shù)據(jù)庫(kù)設(shè)計(jì)器】對(duì)話框,而禁止對(duì)數(shù)據(jù)庫(kù)進(jìn)行修改。

4.1.2打開(kāi)、修改及關(guān)閉數(shù)據(jù)庫(kù)(3)關(guān)閉數(shù)據(jù)庫(kù)命令格式:CLOSEDATABASE命令功能:關(guān)閉當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù),同時(shí)關(guān)閉該數(shù)據(jù)庫(kù)中已經(jīng)被打開(kāi)的各種文件。

4.1.3刪除數(shù)據(jù)庫(kù)如果一個(gè)數(shù)據(jù)庫(kù)不再使用了隨時(shí)可以刪除。一般可以在項(xiàng)目管理器中刪除數(shù)據(jù)庫(kù),也可以用命令刪除數(shù)據(jù)庫(kù)。1.從項(xiàng)目管理器中刪除數(shù)據(jù)庫(kù)從項(xiàng)目管理器中刪除數(shù)據(jù)庫(kù)比較簡(jiǎn)單,直接選擇要?jiǎng)h除的數(shù)據(jù)庫(kù)然后單擊【移去】命令按鈕,這時(shí)會(huì)出現(xiàn)提示對(duì)話框,這時(shí)可以選擇:移去:從項(xiàng)目管理器中刪除數(shù)據(jù)庫(kù),但并不從磁盤上刪除相應(yīng)的數(shù)據(jù)庫(kù)文件;刪除:從項(xiàng)目管理器中刪除數(shù)據(jù)庫(kù),并從磁盤上刪除相應(yīng)的數(shù)據(jù)庫(kù)文件;取消:取消當(dāng)前的操作,即不進(jìn)行刪除數(shù)據(jù)庫(kù)的操作。4.1.3刪除數(shù)據(jù)庫(kù)2.用命令方式刪除數(shù)據(jù)庫(kù)命令格式:DELETEDATABASE<數(shù)據(jù)庫(kù)名>[DELETETABLES][RECYCLEl命令功能:從磁盤上刪除指定的數(shù)據(jù)庫(kù),此時(shí)要?jiǎng)h除的數(shù)據(jù)庫(kù)必須處于關(guān)閉狀態(tài)。參數(shù)和選項(xiàng)的含義如下:DELETETABLES:選擇該選項(xiàng)則在刪除數(shù)據(jù)庫(kù)文件的同時(shí)從磁盤上刪除該數(shù)據(jù)庫(kù)所含的表等文件。RECYCLE:選擇該選項(xiàng)則將刪除的數(shù)據(jù)庫(kù)文件和表文件并放入Windows的回收站中,如果需要的話,還可以還原它們。

4.2表的建立本節(jié)主要介紹新建數(shù)據(jù)庫(kù)表和自由表,向數(shù)據(jù)庫(kù)添加表和從數(shù)據(jù)庫(kù)中移去表。本節(jié)還要介紹修改表的結(jié)構(gòu)。4.2.1新建表4.2.2修改表文件結(jié)構(gòu)4.2.1新建表1.數(shù)據(jù)庫(kù)表和自由表在數(shù)據(jù)庫(kù)設(shè)計(jì)器中建立的表稱為數(shù)據(jù)庫(kù)表,而不屬于任何數(shù)據(jù)庫(kù)的表是自由表(簡(jiǎn)稱表)。在VisualFoxPro中創(chuàng)建表時(shí),如果當(dāng)前沒(méi)有打開(kāi)的數(shù)據(jù)庫(kù),所創(chuàng)建的表是自由表??蓪⒆杂杀硖砑拥綌?shù)據(jù)庫(kù)中使之成為數(shù)據(jù)庫(kù)表;也可以將數(shù)據(jù)庫(kù)表從數(shù)據(jù)庫(kù)中移出,使之成為自由表。4.2.1新建表2.新建自由表建立一個(gè)表文件包括兩部分工作:建立表文件結(jié)構(gòu)和輸入數(shù)據(jù)。定義表文件的文件名和每個(gè)字段的字段名、字段類型、字段寬度的工作稱為建立表文件結(jié)構(gòu)。在VisualFoxPro中,大部分操作既可用命令方式也可用菜單方式進(jìn)行操作。l命令方式建立表命令格式:CREATE[<表文件名>]命令功能:定義一個(gè)表文件結(jié)構(gòu),并把該文件存入磁盤。表文件名由命令給出,擴(kuò)展名默認(rèn)為.DBF。執(zhí)行該命令將打開(kāi)【表設(shè)計(jì)器】如圖所示,要求用戶輸入二維表中的字段、字段類型、寬度、小數(shù)位數(shù)等內(nèi)容。

4.2.1新建表在表設(shè)計(jì)器的【字段】選項(xiàng)卡中涉及到的主要內(nèi)容解釋如下:(1) 字段名必須以字母或漢字開(kāi)頭,由字母、漢字、數(shù)字和下劃線組成,不能包含空格。一個(gè)漢字算作兩個(gè)字符,字段名最長(zhǎng)為10個(gè)字符。(2)字段的數(shù)據(jù)類型決定存儲(chǔ)在字段中的值的數(shù)據(jù)類型,數(shù)據(jù)類型通過(guò)寬度限制可以決定存儲(chǔ)數(shù)據(jù)的數(shù)量或精度。寬度是指字段值的總寬度,如果字段允許含有小數(shù),寬度還應(yīng)包含小數(shù)的寬度和一位小數(shù)點(diǎn)的寬度。有些數(shù)據(jù)類型要求寬度是固定的,如邏輯型字段要求寬度為1,日期型字段要求寬度為8等。(3)NULL欄用于設(shè)置當(dāng)前字段是否可以為NULL值(空值)??罩狄彩顷P(guān)系數(shù)據(jù)庫(kù)中的一個(gè)重要概念。在表中可能會(huì)遇到尚未存儲(chǔ)數(shù)據(jù)的字段,這時(shí)的空值(或空白)與空字符串、數(shù)值0的含義不同??罩稻褪侨敝祷蜻€沒(méi)有確定的值,不能把它理解為有意義的數(shù)據(jù)。如表示成績(jī)的一個(gè)字段值,空值表示沒(méi)有成績(jī),而數(shù)值0表示成績(jī)?yōu)?分。在表設(shè)計(jì)器對(duì)話框中還有一些設(shè)置,如索引、表等將在后續(xù)章節(jié)中介紹。

4.2.1新建表l

利用菜單方式建立表操作步驟:(1) 在VisualFoxPro系統(tǒng)主菜單下,選擇【文件】│【新建】命令,彈出【新建】對(duì)話框。(2) 在【新建】對(duì)話框,單擊【表】│【新建文件】按鈕,彈出【創(chuàng)建】對(duì)話框。(3) 在【創(chuàng)建】對(duì)話框中輸入要建立的表的文件名,再單擊【保存】按鈕,進(jìn)入【表設(shè)計(jì)器】對(duì)話框,在該對(duì)話框中輸入表中的各個(gè)字段的字段名、字段類型、字段寬度和小數(shù)位數(shù)等信息。

4.2.1新建表l

利用項(xiàng)目管理器建立表操作步驟:(1) 打開(kāi)【項(xiàng)目管理器】并選擇【數(shù)據(jù)】選項(xiàng)卡。(2) 在【數(shù)據(jù)】選項(xiàng)卡中選擇【自由表】|【新建】命令,彈出【新建表】對(duì)話框,在該對(duì)話框中單擊【新建表】按鈕,進(jìn)入【創(chuàng)建】對(duì)話框。(3) 在【創(chuàng)建】對(duì)話框輸入要建立的表的文件名,如“學(xué)生”,再單擊【保存】按鈕,進(jìn)入【表設(shè)計(jì)器】對(duì)話框,在該對(duì)話框中所要進(jìn)行的操作參見(jiàn)下圖。

4.2.1新建表3.建立數(shù)據(jù)庫(kù)表打開(kāi)一個(gè)數(shù)據(jù)庫(kù),選擇【文件】│【新建】│【表】命令或選擇【數(shù)據(jù)庫(kù)】菜單下的【新建表】命令或【在數(shù)據(jù)庫(kù)設(shè)計(jì)器】中右擊鼠標(biāo),選擇快捷菜單中的【新建表】命令均可新建一個(gè)表,我們稱之為數(shù)據(jù)庫(kù)表。建立數(shù)據(jù)庫(kù)表的表設(shè)計(jì)器界面,與上圖比較發(fā)現(xiàn)數(shù)據(jù)庫(kù)表可以建立字段有效性規(guī)則和約束等。事實(shí)上,與自由表相比數(shù)據(jù)庫(kù)表還具有以下特點(diǎn):(1) 數(shù)據(jù)庫(kù)表可以使用長(zhǎng)表名,在表中可以使用長(zhǎng)字段名(2) 可為數(shù)據(jù)庫(kù)表規(guī)定字段級(jí)規(guī)則和記錄級(jí)規(guī)則(3) 可為數(shù)據(jù)庫(kù)表中的字段指定默認(rèn)值和輸入掩碼(4) 可為數(shù)據(jù)庫(kù)表中的字段指定標(biāo)題和添加注釋(5) 數(shù)據(jù)庫(kù)表的字段有默認(rèn)的控件類(6) 數(shù)據(jù)庫(kù)表支持主關(guān)鍵字、參照完整性和表之間的聯(lián)系(7) 支持INSERT、UPDATE和DELETE事件的觸發(fā)器

4.2.1新建表4.向數(shù)據(jù)庫(kù)中添加自由表有了數(shù)據(jù)庫(kù)文件,就可以向數(shù)據(jù)庫(kù)添加表了。向數(shù)據(jù)庫(kù)中添加表既可以在項(xiàng)目管理器或數(shù)據(jù)庫(kù)設(shè)計(jì)器中進(jìn)行,也可以使用命令方式進(jìn)行。l

在項(xiàng)目管理器中添加自由表在項(xiàng)目管理器的全部或數(shù)據(jù)選項(xiàng)卡中,將要添加自由表的數(shù)據(jù)庫(kù)展開(kāi)至表,并選擇【表】命令。單擊【添加】按鈕,從彈出的【打開(kāi)】對(duì)話框中選擇要添加到當(dāng)前數(shù)據(jù)庫(kù)的自由表。l

在數(shù)據(jù)庫(kù)設(shè)計(jì)器中添加自由表打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器,在【數(shù)據(jù)庫(kù)設(shè)計(jì)器】工具欄中單擊【添加表】按鈕,或使用菜單:選擇【數(shù)據(jù)庫(kù)】│【添加表】命令,或右擊鼠標(biāo),從快捷菜單中選擇【添加表】命令,然后從打開(kāi)的對(duì)話框中選擇要添加到當(dāng)前數(shù)據(jù)庫(kù)的的自由表。4.2.1新建表例4.4向數(shù)據(jù)庫(kù)“學(xué)生管理”中添加“學(xué)生”表,“成績(jī)”表和“選課”表。操作步驟如下:①

在VisualFoxPro系統(tǒng)主菜單下,打開(kāi)數(shù)據(jù)庫(kù)“學(xué)生管理”,進(jìn)入【數(shù)據(jù)庫(kù)設(shè)計(jì)器】。②

在【數(shù)據(jù)庫(kù)設(shè)計(jì)器】中,選擇【數(shù)據(jù)庫(kù)】菜單下的【添加表】命令,進(jìn)入【打開(kāi)】對(duì)話框。③

在【打開(kāi)】對(duì)話框,選擇要添加的表“學(xué)生”,單擊【確定】按鈕,則該表被添加到“學(xué)生管理”數(shù)據(jù)庫(kù)中,返回【數(shù)據(jù)庫(kù)設(shè)計(jì)器】。④

重復(fù)②、③步的操作,將“成績(jī)”表和“選課”表也添加到數(shù)據(jù)庫(kù)中。如下圖所示,該數(shù)據(jù)庫(kù)中已有三個(gè)表。4.2.1新建表4.2.1新建表l用命令方式添加自由表命令格式:ADDTABLE<自由表名>[NAME<長(zhǎng)表名>]命令功能:向當(dāng)前打開(kāi)的數(shù)據(jù)庫(kù)中添加指定的自由表??蛇x項(xiàng)[NAME<長(zhǎng)表名>],為表指定一個(gè)長(zhǎng)表名,最多可由128個(gè)字符組成。在程序中使用長(zhǎng)表名可以提高程序的可讀性。

4.2.1新建表例4.5把自由表“學(xué)生”添加到“學(xué)生管理”數(shù)據(jù)庫(kù),并給出長(zhǎng)表名“中國(guó)大學(xué)學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)”。

opendatabase學(xué)生管理

addtable學(xué)生

name"中國(guó)大學(xué)學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)"

以后在數(shù)據(jù)庫(kù)中使用命令“USE學(xué)生”和使用命令“USE中國(guó)大學(xué)學(xué)生管理數(shù)據(jù)庫(kù)系統(tǒng)”是等價(jià)的。一個(gè)表只能屬于一個(gè)數(shù)據(jù)庫(kù),當(dāng)把一個(gè)自由表添加到某個(gè)數(shù)據(jù)庫(kù)后就不是自由表了。所以不能把已經(jīng)屬于某個(gè)數(shù)據(jù)庫(kù)的表添加到當(dāng)前數(shù)據(jù)庫(kù),只有將該表從所屬的數(shù)據(jù)庫(kù)中移出,在當(dāng)前的數(shù)據(jù)庫(kù)才能添加該表。

4.2.1新建表5.從數(shù)據(jù)庫(kù)中移去表從數(shù)據(jù)庫(kù)中移去表與添加表相對(duì)應(yīng),也有3種移去方法:(1)從項(xiàng)目管理器中移去表:打開(kāi)項(xiàng)目管理器,選擇要移去的表,單擊【移去】按鈕,在彈出的對(duì)話框中單擊【移去】按鈕即可。(2)在數(shù)據(jù)庫(kù)設(shè)計(jì)器中移去表:打開(kāi)數(shù)據(jù)庫(kù),選中要移去的表,從【數(shù)據(jù)庫(kù)】菜單中選擇【移去】命令,在彈出的對(duì)話框中單擊【移去】按鈕即可。(3)使用命令移去表:打開(kāi)數(shù)據(jù)庫(kù),使用以下命令將表移去。命令格式:REMOVETABLE<表文件名>4.2.2修改表文件結(jié)構(gòu)對(duì)于所建的數(shù)據(jù)表若不滿意,比如缺少應(yīng)有的字段,字段名不合適,字段寬度或字段類型不對(duì)等等,可以再對(duì)表的結(jié)構(gòu)進(jìn)行修改。1.用命令方式修改表文件結(jié)構(gòu)命令格式:MODIFYSTRUCTURE命令功能:執(zhí)行此命令將會(huì)打開(kāi)【表設(shè)計(jì)器】對(duì)話框,在該對(duì)話框中可對(duì)指定表進(jìn)行修改。若無(wú)當(dāng)前打開(kāi)的表文件,系統(tǒng)將彈出【打開(kāi)】對(duì)話框,要求用戶選擇一個(gè)表文件。此命令在執(zhí)行時(shí),系統(tǒng)自動(dòng)在磁盤上建立一個(gè)與當(dāng)前打開(kāi)的表文件同名,擴(kuò)展名為.BAK的后備文件,如果當(dāng)前打開(kāi)的表文件有備注型字段,系統(tǒng)也會(huì)自動(dòng)建立一個(gè)同名但擴(kuò)展名為.TBK的備注文件的副本。在修改表文件結(jié)構(gòu)時(shí),還可插入新的字段或刪除現(xiàn)有的字段。提示:若修改后的表文件數(shù)據(jù)因某種原因失去了一些原有數(shù)據(jù),可用以下方法恢復(fù):(1)刪除被修改了結(jié)構(gòu)的表文件及備注文件。(2)把.BAK和.TBK后備文件改為同名的.DBF和.FPT文件。4.2.2修改表文件結(jié)構(gòu)使用以上方法,當(dāng)選擇【移去】后,會(huì)彈出類似于右圖所示的對(duì)話框,選擇【移去】,則使被移去的表成為自由表;選擇【刪除】命令,則不僅從數(shù)據(jù)庫(kù)中將表移出,而且還從磁盤上刪除該表。一個(gè)表一旦從數(shù)據(jù)庫(kù)中移出,該表的長(zhǎng)表名將不能再使用,與之聯(lián)系的所有主索引、默認(rèn)值及有關(guān)的規(guī)則都將隨之消失。所以,表的移出操作會(huì)影響到當(dāng)前數(shù)據(jù)庫(kù)中與該表有聯(lián)系的其他表。

4.2.2修改表文件結(jié)構(gòu)例4.6在“學(xué)生”表中“出生日期”字段前,增加“年齡”字段(字段名:年齡、數(shù)值型、寬度為3)。

USE學(xué)生

&&打開(kāi)“學(xué)生”表

MODIFYSTRUCTURE在表設(shè)計(jì)器窗口中,單擊“出生日期”(選擇該字段為插入新字段的地方),再單擊【插入】按鈕。在【新字段】位置,輸入需插入的字段名、類型和寬度,單擊【確定】按鈕后,彈出如下圖所示對(duì)話框,單擊“是”,完成結(jié)構(gòu)的更改。4.2.2修改表文件結(jié)構(gòu)2.用菜單方式修改表文件結(jié)構(gòu)操作步驟如下:打開(kāi)表文件,并在VisualFoxPro主窗口中選擇【顯示】|【表設(shè)計(jì)器】命令,此時(shí)在主窗口上彈出【表設(shè)計(jì)器】對(duì)話框。在【表設(shè)計(jì)器】對(duì)話框中可實(shí)現(xiàn)字段的修改、插入和刪除,操作方法可參照例4.6。4.3對(duì)表記錄的操作表建立完成后,不但可以對(duì)表結(jié)構(gòu)進(jìn)行修改,還可以對(duì)表中的記錄進(jìn)行修改。在講解這些命令之前,先來(lái)學(xué)習(xí)VisualFoxPro命令的一般格式。4.3.1VisualFoxPro命令的一般格式4.3.2表文件記錄瀏覽命令4.3.3打開(kāi)和關(guān)閉表文件操作命令4.3.4記錄指針定位命令4.3.5記錄的追加命令4.3.6字段值的替換4.3.7表文件記錄的刪除和恢復(fù)4.3.1VisualFoxPro命令的一般格式在以前的學(xué)習(xí)中我們?cè)佑|過(guò)一些命令,但VisualFoxPro的命令很多,各有不同的命令形式,其中有許多命令具有一種類似的形式,稱為命令的一般形式。VisualFoxPro命令的一般格式為:<命令關(guān)鍵字>[<范圍>][<表達(dá)式清單>][FOR<條件1>][WHILE<條件2>]1.命令關(guān)鍵字命令關(guān)鍵字決定命令的性質(zhì),是一個(gè)英文動(dòng)詞,用來(lái)表示該命令所要執(zhí)行的操作。我們已經(jīng)使用過(guò)的“USE”、“CREATE”等均屬于命令關(guān)鍵字。命令關(guān)鍵字必須是一條命令的第一項(xiàng),而其他可選項(xiàng)的順序可任意排列。4.3.1VisualFoxPro命令的一般格式2.范圍范圍選項(xiàng)決定命令所作用的記錄范圍,其值可有以下5種選擇:ALL—范圍為從首記錄開(kāi)始的所有記錄。NEXTn—范圍為從當(dāng)前記錄開(kāi)始的n條記錄。RECORDn—范圍僅為第n條記錄。REST—范圍為從當(dāng)前記錄開(kāi)始直到文件結(jié)束的所有記錄。缺省—若條件項(xiàng)也同時(shí)缺省,不同命令有不同的含義,有的等價(jià)于ALL,有的僅作用于當(dāng)前記錄。

4.3.1VisualFoxPro命令的一般格式3.

FOR<條件1>和WHILE<條件2>項(xiàng)條件是一個(gè)返回值為邏輯值的表達(dá)式。條件項(xiàng)的含義為:只對(duì)那些使表達(dá)式返回值為“真”(.T.)的記錄進(jìn)行命令規(guī)定的操作。FOR<條件1>是指對(duì)指定范圍內(nèi)滿足條件的所有記錄進(jìn)行操作;WHILE<條件2>是指對(duì)指定條件的記錄進(jìn)行操作,直到遇到一個(gè)不滿足條件的記錄,不管剩下范圍內(nèi)是否還有滿足條件的記錄,都將停止繼續(xù)執(zhí)行命令。命令執(zhí)行完畢后,記錄指針一般指向范圍內(nèi)的最后一條記錄。當(dāng)范圍為ALL時(shí),指針指向表文件記錄個(gè)數(shù)加1,即指向文件結(jié)束標(biāo)志。注意:當(dāng)一條命令中既有FOR<條件1>又有WHILE<條件2>,在WHILE<條件2>首次不滿足前,將對(duì)滿足FOR<條件1>的所有記錄進(jìn)行操作,一旦WHILE<條件2>不滿足,則停止操作。4.3.1VisualFoxPro命令的一般格式4.表達(dá)式清單一般是指表文件中的字段名清單,或是包含字段名的表達(dá)式清單。各項(xiàng)之間用

“,”分隔。缺省此項(xiàng),一般是指表文件中的全部字段。一條命令的各部分之間必須用一個(gè)或一個(gè)以上的空格分開(kāi),但總長(zhǎng)度(包括命令中的所有空格)不能超過(guò)254個(gè)字符(一個(gè)漢字以兩個(gè)字符計(jì)算)。如果命令較長(zhǎng),可用“;”后跟一個(gè)回車鍵,轉(zhuǎn)到下一行去繼續(xù)輸入這條命令。系統(tǒng)在執(zhí)行時(shí),將把它們看作一個(gè)整體。當(dāng)然,也可以不管它,連續(xù)輸入一條命令的全部?jī)?nèi)容。輸入到行末時(shí),系統(tǒng)會(huì)自動(dòng)換行,這樣不會(huì)影響一條命令的完整性。但決不允許在一行快輸滿時(shí),用回車鍵換到下一行,繼續(xù)輸入本條命令,這樣會(huì)破壞命令的完整性。下面是一條標(biāo)準(zhǔn)的命令格式的例子:LISTNEXT5姓名,出生日期

FOR性別="女"此命令的含義為:顯示從當(dāng)前記錄開(kāi)始的5條記錄中女生的姓名和出生日期。

4.3.2表文件記錄瀏覽命令對(duì)于表記錄的操作,首先就是瀏覽查看表中的記錄。通常有兩種方式:一個(gè)是用瀏覽窗口瀏覽,另一個(gè)是在VisualFoxPro主窗口中輸出記錄內(nèi)容。本小節(jié)分別介紹。1.用瀏覽窗口瀏覽表的記錄l

使用【項(xiàng)目管理器】在【項(xiàng)目管理器】中選擇【數(shù)據(jù)】選項(xiàng)卡,選中對(duì)應(yīng)表文件名,單擊【瀏覽】按鈕。l

菜單方式在表文件打開(kāi)的情況下,利用VisualFoxPro的菜單:選擇【顯示】│【瀏覽】命令,打開(kāi)【瀏覽】對(duì)話框。此時(shí)【顯示】下拉菜單下又多了一項(xiàng)【編輯】命令。選擇【編輯】命令也可以瀏覽記錄,與前者的區(qū)別是:一個(gè)字段占一行,記錄是按頁(yè)顯示而不是按行顯示。4.3.2表文件記錄瀏覽命令l

命令方式命令格式:BROWSE[FIELDS<字段名清單>][FOR<條件表達(dá)式>][FREEZE<字段名>]命令功能:在瀏覽窗口分頁(yè)橫式顯示所有符合條件的記錄。有[FIELDS<字段名清單>]可選項(xiàng)時(shí),將顯示字段名清單中給出的字段,否則顯示全部字段。有[FOR<條件表達(dá)式>]可選項(xiàng)時(shí),只顯示使<條件表達(dá)式>為“真”(.T.)的記錄,否則顯示全部記錄。有[FREEZE<字段名>]可選項(xiàng)時(shí),只能編輯FREEZE中給出的一個(gè)字段,否則可編輯全部字段。4.3.2表文件記錄瀏覽命令例4.7顯示“學(xué)生”表中所有黨團(tuán)員的學(xué)號(hào)、姓名和E_mail。(1) 使用命令:

USE學(xué)生

BROWSEFIELDS學(xué)號(hào),姓名,E_mailFOR黨團(tuán)員瀏覽窗口顯示如圖

所示。

4.3.2表文件記錄瀏覽命令(2) 使用菜單:打開(kāi)瀏覽窗口,此時(shí)主菜單上多了一項(xiàng)【表】。下拉【表】菜單,選擇【屬性】命令,打開(kāi)【工作區(qū)屬性】對(duì)話框。如下左圖所示。①

在【數(shù)據(jù)過(guò)濾器】文本框中填寫:學(xué)生.黨團(tuán)員,這相當(dāng)于命令中的For黨團(tuán)員;②

選擇單選按鈕【字段篩選指定的字段】,單擊【字段篩選】按鈕,打開(kāi)【字段選擇器】對(duì)話框。如下右圖所示。

4.3.2表文件記錄瀏覽命令在【字段選擇器】對(duì)話框中,將要選擇的字段“學(xué)號(hào)”、“姓名”、“E-mail”添加到“選擇字段”當(dāng)中,這相當(dāng)于命令方式中的Fields學(xué)號(hào),姓名,E-mail。關(guān)閉表的瀏覽窗口后再重新打開(kāi),瀏覽窗口內(nèi)容相同。提示:在瀏覽窗口中同時(shí)具有編輯修改記錄的功能。4.3.2表文件記錄瀏覽命令2.輸出命令(LIST、DISPLAY)這兩個(gè)命令也可以瀏覽表的記錄,一般是在VisualFoxPro的主屏幕或是輸出至打印機(jī)。用這兩個(gè)命令還可以輸出顯示表文件的結(jié)構(gòu)。(1) LIST命令利用LIST命令可以以滾動(dòng)方式輸出表文件的結(jié)構(gòu)和記錄的內(nèi)容。①

輸出表文件結(jié)構(gòu)命令格式:LISTSTRUCTURE[TOFILE<文件名>|TOPRINTER][NOCONSOLE]該命令用來(lái)輸出打開(kāi)的表文件結(jié)構(gòu)??蛇x項(xiàng)[TOFILE<文件名>]表示將表文件結(jié)構(gòu)輸出到磁盤文件保存;[TOPRINTER]表示將表文件結(jié)構(gòu)輸出到打印機(jī)上打??;[NOCONSOLE]表示輸出的內(nèi)容不在VisualFoxPro主窗口顯示;無(wú)此可選項(xiàng)表示在VisualFoxPro主窗口顯示表文件結(jié)構(gòu)。4.3.2表文件記錄瀏覽命令例4.8輸出“學(xué)生.DBF”的表結(jié)構(gòu)

USE學(xué)生

&&打開(kāi)“學(xué)生情況”表

LISTSTRUCTURE顯示結(jié)果為:

表結(jié)構(gòu):D:\學(xué)生管理系統(tǒng)\學(xué)生.DBF

數(shù)據(jù)記錄數(shù):12

最近更新的時(shí)間:02/08/04

備注文件塊大小:64

字段

字段名

類型

寬度

小數(shù)位

Nulls1 學(xué)號(hào)

字符型

7 否

2 班級(jí)編號(hào)

字符型

2 否

3 姓名

字符型

8 否

4 性別

字符型

2 否

5 出生日期

日期型

8 否

6 黨團(tuán)員

邏輯型

1 否

7 專業(yè)

字符型

8 否

8 入學(xué)成績(jī)

數(shù)值型

8 否

9 E_MAIL 字符型

15否

9 簡(jiǎn)歷

備注型

4 否**總計(jì)**644.3.2表文件記錄瀏覽命令在實(shí)際輸出時(shí),除了輸出表文件結(jié)構(gòu)外,還在前面給出了表文件名、已有記錄個(gè)數(shù)、最后更改日期和備注文件的大小。在最后一行中,給出了字段的總寬度,但這個(gè)寬度比各字段的寬度之和多1個(gè)字節(jié),該字節(jié)用來(lái)存放記錄的刪除標(biāo)記(*)。②

輸出記錄內(nèi)容命令格式:LIST[OFF][<范圍>][[<FIELDS>]<字段名清單>][FOR<條件1>][WHILE<條件2>][TOPRINTER|TOFILE<文件名>][NOCONSOLE]可選項(xiàng)

[OFF]:輸出時(shí)不輸出記錄號(hào),否則輸出記錄號(hào)。缺省[<范圍>]項(xiàng)表示輸出全部記錄。4.3.2表文件記錄瀏覽命令(2) DISPLAY命令利用DISPLAY命令可以以分頁(yè)方式輸出表結(jié)構(gòu)和記錄內(nèi)容。命令格式:DISPLAYSTRUCTURE[TOFILE<文件名>|TOPRINTER][NOCONSOLE]DISPLAY[OFF][<范圍>][[<FIELDS>]<字段名清單>][FOR<條件1>][WHILE<條件2>][TOPRINTER|TOFILE<文件名>][NOCONSOLE](3) DISPLAY和LIST的異同DISPLAY命令和LIST命令的功能一樣,在使用時(shí)有如下兩點(diǎn)差別:①

DISPLAY命令以分頁(yè)方式顯示內(nèi)容,即顯示滿一頁(yè)時(shí)暫停,待用戶按任意鍵后繼續(xù)顯示下一頁(yè),直至全部顯示完畢;LIST命令是以滾動(dòng)方式顯示,如果顯示的內(nèi)容超過(guò)一頁(yè),執(zhí)行該命令后,屏幕上只剩下最后一頁(yè)的內(nèi)容。②

當(dāng)命令中缺省“范圍”和“條件”選項(xiàng)時(shí),LIST命令默認(rèn)為全部記錄,而DISPLAY命令默認(rèn)為當(dāng)前記錄。

4.3.3打開(kāi)和關(guān)閉表文件操作命令數(shù)據(jù)表的打開(kāi)和關(guān)閉是最常用的操作,在程序中要使用相關(guān)命令,在VisualFoxPro的交互方式下,可以用菜單完成該操作。下面分別介紹。1.打開(kāi)表文件命令要使用一個(gè)表文件,必須先打開(kāi)它。命令格式:USE<表文件名>命令功能:打開(kāi)指定表文件,同時(shí)關(guān)閉原來(lái)已打開(kāi)的表文件。如果該表文件有備注型字段,則同時(shí)打開(kāi)與表文件同名、擴(kuò)展名為.FPT的備注文件。在打開(kāi)表文件時(shí)如省略擴(kuò)展名,則系統(tǒng)默認(rèn)為.DBF。

4.3.3打開(kāi)和關(guān)閉表文件操作命令2.關(guān)閉表文件命令表文件在使用或修改完畢后要進(jìn)行關(guān)閉。命令格式:USE命令功能:執(zhí)行此命令后,打開(kāi)的表文件將從內(nèi)存中消失。3.使用菜單方式打開(kāi)和關(guān)閉表文件(1) 打開(kāi)表:在VisualFoxPro主窗口中選擇【文件】│【打開(kāi)】命令(或用鼠標(biāo)單擊工具欄中的【打開(kāi)】圖標(biāo)),在彈出的【打開(kāi)】對(duì)話框中選擇要打開(kāi)的表文件,單擊【確定】按鈕。(2) 關(guān)閉表:在VisualFoxPro主窗口中選擇【窗口】│【數(shù)據(jù)工作期】命令,在彈出的【數(shù)據(jù)工作期】對(duì)話框中選擇要關(guān)閉的表,單擊【確定】按鈕。注意:使用【文件】菜單中的關(guān)閉命令或直接關(guān)閉表的瀏覽窗口,并未關(guān)閉表文件,而只是關(guān)閉了表的瀏覽窗口。4.3.4記錄指針定位命令打開(kāi)一個(gè)表文件后,系統(tǒng)給這個(gè)表文件提供一個(gè)記錄指針,簡(jiǎn)稱指針。指針里存放一個(gè)十進(jìn)制數(shù)n,它是某個(gè)記錄的記錄號(hào),此時(shí)表明記錄指針指向了這個(gè)記錄。我們把這個(gè)記錄稱為當(dāng)前記錄。剛打開(kāi)一個(gè)表文件時(shí),記錄指針指向首記錄。對(duì)表文件的操作是以當(dāng)前記錄為基準(zhǔn)的,在執(zhí)行某些命令時(shí),會(huì)改變當(dāng)前記錄。在這里,我們先介紹用于改變當(dāng)前記錄的兩條命令——移動(dòng)指針命令。4.3.4記錄指針定位命令1.絕對(duì)移動(dòng)指針命令命令格式:GO[RECORD]<數(shù)值表達(dá)式>[TOP|BOTTOM]命令功能:命令關(guān)鍵字GO也可用GOTO代替。若選擇數(shù)值表達(dá)式,記錄指針指向記錄號(hào)等于此表達(dá)式的記錄;若選擇TOP,記錄指針指向首記錄;若選擇BOTTOM,記錄指針指向末記錄。當(dāng)GO后是一個(gè)具體數(shù)字時(shí),可缺省此命令關(guān)鍵字。例4.9指針的絕對(duì)移動(dòng)。USE學(xué)生GO8&&使8號(hào)記錄成為當(dāng)前記錄GOTOP&&記錄指針指向首記錄5&&使5號(hào)記錄成為當(dāng)前記錄GOBOTTOM&&記錄指針指向末記錄4.3.4記錄指針定位命令2.相對(duì)移動(dòng)指針命令確定當(dāng)前記錄之后,可用SKIP命令向前或向后移動(dòng)若干條記錄位置,稱為相對(duì)移動(dòng)。命令格式:SKIP[±<數(shù)值表達(dá)式>]命令功能:使指針以當(dāng)前記錄為基準(zhǔn),向前或向后移動(dòng)若干條記錄,移動(dòng)記錄的個(gè)數(shù)等于命令中數(shù)值表達(dá)式的值。命令中的“+”號(hào)表示向后移動(dòng)(“+”可省略),“–”號(hào)表示向前移動(dòng)。當(dāng)缺省數(shù)值表達(dá)式(只使用命令SKIP)時(shí)等價(jià)于SKIP+1。例4.10指針的相對(duì)移動(dòng)。USE學(xué)生SKIP8&&使9號(hào)記錄成為當(dāng)前記錄SKIP–3&&使6號(hào)記錄成為當(dāng)前記錄SKIP&&使7號(hào)記錄成為當(dāng)前記錄

4.3.4記錄指針定位命令3.使用菜單移動(dòng)記錄指針利用VisualFoxPro所提供的菜單也可以實(shí)現(xiàn)記錄指針的移動(dòng),操作步驟如下。(1) 在VisualFoxPro主窗口中用鼠標(biāo)單擊工具欄中的【打開(kāi)】圖標(biāo),彈出【打開(kāi)】對(duì)話框,在【打開(kāi)】對(duì)話框中選擇要打開(kāi)的表文件,并單擊【確定】按鈕。(2) 在VisualFoxPro主菜單中選擇【顯示】│【瀏覽】命令,此時(shí)在主窗口中顯示表文件的記錄內(nèi)容(第一條記錄的左邊有一指針?lè)?hào)),并在菜單欄增加了【表】下拉菜單。(3) 選擇【表】下拉菜單中的【轉(zhuǎn)到記錄】命令,將顯示下級(jí)菜單,如下圖所示。4.3.4記錄指針定位命令在下級(jí)菜單中提供了6個(gè)選項(xiàng),它們是【第一個(gè)】、【最后一個(gè)】、【下一個(gè)】、【上一個(gè)】、【記錄號(hào)】和【定位】。其中的【下一個(gè)】和【上一個(gè)】選項(xiàng)是指以當(dāng)前記錄為基準(zhǔn)的上一條記錄和下一條記錄?!径ㄎ弧窟x項(xiàng)將在下面章節(jié)中介紹。(4) 選擇完畢,瀏覽窗口中表記錄左邊的指針?lè)?hào)會(huì)根據(jù)選擇的結(jié)果而發(fā)生移動(dòng)

4.3.4記錄指針定位命令4.直接用鼠標(biāo)移動(dòng)記錄指針在打開(kāi)的數(shù)據(jù)表瀏覽窗口中,直接用鼠標(biāo)單擊指定記錄的任一位置,即可使該記錄成為當(dāng)前記錄,記錄指針?lè)?hào)可顯示于記錄的左邊。此方法適用于在交互方式下,且所選記錄在小范圍的情況下使用。例4.11用菜單方式將“學(xué)生”表中的記錄指針定位在第六條記錄。操作步驟如下。①

在菜單欄中選擇【文件】│【打開(kāi)】命令,在打開(kāi)對(duì)話框中選擇要打開(kāi)的表“學(xué)生”。②

在菜單欄中選擇【顯示】│【瀏覽】命令,在VisualFoxPro主窗口中顯示表“學(xué)生”的記錄內(nèi)容,且記錄指針指向第一條記錄。③

在菜單欄中選擇【表】│【轉(zhuǎn)到記錄】│【記錄號(hào)】命令,彈出【轉(zhuǎn)到記錄】對(duì)話框。④在該對(duì)話框的【記錄號(hào)】文本欄中輸入6,單擊【確定】按鈕,此時(shí)在主窗口的【瀏覽】窗口中指針已指向第6號(hào)記錄。4.3.5記錄的追加命令在已創(chuàng)建數(shù)據(jù)表中添加新的記錄,可以是追加一條,也可以是多條記錄,還可能是需要添加一條空白記錄,或者是將其他數(shù)據(jù)表中的記錄追加至本表,VisualFoxPro都提供了相應(yīng)的功能。4.3.5記錄的追加命令1.追加新記錄l

用菜單方式打開(kāi)表文件,并在VisualFoxPro主窗口中選擇【顯示】│【瀏覽】命令,此時(shí)在主窗口上顯示打開(kāi)的表文件的記錄內(nèi)容。u

選擇【表】│【追加新記錄】命令(或Ctrl+Y)。只追加一條新的空白記錄。u

選擇【顯示】│【追加方式】命令。輸入內(nèi)容后,可自動(dòng)再添加一條新記錄。l

用命令方式當(dāng)需要向打開(kāi)的表中追加新記錄或已創(chuàng)建了表文件結(jié)構(gòu)后,需要向表中加入記錄時(shí),可使用“APPEND”命令。命令格式:APPEND[BLANK]命令功能:在表文件的末尾加入新記錄。執(zhí)行該命令時(shí),將在VisualFoxPro主窗口顯示一個(gè)編輯窗口,等待用戶輸入新的記錄內(nèi)容。若有可選項(xiàng)[BLANK],則在表文件末增加一個(gè)空記錄。

4.3.5記錄的追加命令無(wú)論用以上兩種方式中的哪一個(gè),結(jié)果是在屏幕上打開(kāi)了表文件的【瀏覽】窗口,用戶可在【瀏覽】窗口末尾輸入新的記錄內(nèi)容。在該窗口中,按列顯示表文件的記錄結(jié)構(gòu),光標(biāo)停在第一個(gè)字段處,等待用戶逐個(gè)字段地輸入記錄內(nèi)容。要改變顯示方式為行顯示,可在【顯示】下拉菜單中選擇【瀏覽】命令。當(dāng)輸入某字段的數(shù)據(jù)與該字段不符時(shí)(如類型不符),系統(tǒng)拒絕接受,并要求用戶重新輸入。如要追加空記錄,可直接按回車鍵即可。在追加的新記錄中如需輸入備注型字段的內(nèi)容,可用鼠標(biāo)雙擊該字段,此時(shí)屏幕上顯示一個(gè)編輯備注型字段的窗口,用戶在該窗口輸入備注型字段的內(nèi)容。輸入完畢,可單擊關(guān)閉按鈕返回【瀏覽】窗口。備注型字段數(shù)據(jù)實(shí)際存儲(chǔ)在與表文件同名,擴(kuò)展名為“.FPT”的備注文件中。備注型字段如已存入內(nèi)容,則該字段顯示的“memo”中的第一個(gè)字符m顯示為大寫的M。

4.3.5記錄的追加命令2.從其他表中追加記錄用命令方式命令格式:APPENDFROM<表文件名>[FIELDS<字段名清單>][FOR<條件>]命令功能:將指定表文件(源文件)中的記錄追加到當(dāng)前表文件(目的文件)中。命令中若有可選項(xiàng)“FOR<條件>”,則只追加滿足條件的記錄,否則追加全部記錄;若有可選項(xiàng)“FIELDS<字段名清單>”,則將源文件中字段名清單列出的字段追加到目的文件中,否則追加全部字段,備注型字段也一同被追加。用菜單方式①

打開(kāi)表文件,在VisualFoxPro主菜單中選擇【顯示】|【瀏覽】命令,打開(kāi)【瀏覽】窗口。

選擇【表】│【追加記錄】命令,此時(shí)在屏幕上彈出【追加來(lái)源】對(duì)話框。單擊圖中【來(lái)源于】文本框右側(cè)的按鈕,在彈出的【打開(kāi)】對(duì)話框中選擇源表文件。4.3.5記錄的追加命令③

若只追加部分字段或滿足條件的記錄,可單擊圖4.3.6中的【選項(xiàng)】按鈕,打開(kāi)【追加來(lái)源選項(xiàng)】對(duì)話框,如圖4.3.7所示。單擊【字段】

按鈕,打開(kāi)【字段選擇器】,單擊For按鈕打開(kāi)【表達(dá)式生成器】,選擇需要追加的字段或設(shè)定記錄的條件。注意:目的文件和源文件中,被追加的字段的字段名、類型和寬度最好相同,否則很容易造成錯(cuò)誤。4.3.6字段值的替換前面講到對(duì)數(shù)據(jù)表執(zhí)行瀏覽操作可以兼有編輯功能,即在【瀏覽】窗口可以對(duì)記錄進(jìn)行修改。但對(duì)于成批的大量的修改,在瀏覽環(huán)境下做就不太方便了。本小節(jié)介紹記錄字段的成批替換問(wèn)題。4.3.6字段值的替換例4.12按下列條件修改字段,寫出相應(yīng)的命令。(1) 對(duì)當(dāng)前表中所有學(xué)生的入學(xué)成績(jī)加5分。REPLACEALL入學(xué)成績(jī)WITH入學(xué)成績(jī)+5(2) 對(duì)當(dāng)前表中所有專業(yè)為“計(jì)算機(jī)”的改為“計(jì)算機(jī)應(yīng)用”REPLACEALL專業(yè)WITH"計(jì)算機(jī)應(yīng)用"FOR專業(yè)="計(jì)算機(jī)"(3) 對(duì)當(dāng)前表中姓名為“李曉明”的學(xué)生的“黨團(tuán)員”字段改為“真”REPLACEALL黨團(tuán)員WITH.T.FOR姓名="李曉明"(4) 對(duì)當(dāng)前表中所有記錄的“班級(jí)編號(hào)”字段的值的第一個(gè)字符改為“1”REPLACEALL班級(jí)編號(hào)

WITH"1"+RIGHT(班級(jí)編號(hào),1)4.3.6字段值的替換2.用菜單方式實(shí)現(xiàn)字段值的替換操作步驟如下:①

打開(kāi)表文件,并在VisualFoxPro主窗口中選擇【顯示】|【瀏覽】命令,此時(shí)在【瀏覽】窗口中顯示打開(kāi)的表文件的記錄內(nèi)容。②

選擇【表】│【替換字段】命令,此時(shí)在屏幕上顯示替換字段窗口③

該窗口中的【字段】文本框中,用戶可輸入被替換字段的字段名;或單擊【字段】文本框右邊的下箭頭,選擇要替換的字段名。如選擇“入學(xué)成績(jī)”字段。④

在【替換為】文本框中輸入替換的內(nèi)容;或單擊【替換為】文本框右邊的按鈕,彈出【表達(dá)式生成器】,在該對(duì)話框中輸入替換的內(nèi)容。單擊【確定】按鈕,返回【替換字段】對(duì)話框。⑤

在【替換字段】對(duì)話框可繼續(xù)選擇【作用范圍】、For和While命令(可在如圖4.3.8所示的表達(dá)式生成器中設(shè)置條件),然后單擊【替換】按鈕。返回【瀏覽】窗口,此時(shí),所要替換的字段的值已替換。

4.3.7表文件記錄的刪除和恢復(fù)刪除表文件中的記錄分為邏輯刪除和物理刪除。邏輯刪除只是在記錄上加上一個(gè)刪除標(biāo)記“*”,這種標(biāo)記是可以取消的;物理刪除才是將記錄從表中徹底刪除掉。1.用命令方式實(shí)現(xiàn)表文件記錄的刪除和恢復(fù)(1) 用命令方式給表中的記錄加上刪除標(biāo)記命令結(jié)構(gòu):DELETE[<范圍>][FOR<條件1>][WHILE<條件2>]命令功能:對(duì)范圍內(nèi)滿足條件的記錄進(jìn)行邏輯刪除,即加上刪除標(biāo)記“*”。在缺省[<范圍>]和<條件>選項(xiàng)時(shí),僅對(duì)當(dāng)前記錄加上刪除標(biāo)記。

4.3.7表文件記錄的刪除和恢復(fù)例4.13對(duì)“學(xué)生”表中的第1~3條記錄加刪除標(biāo)記。USE學(xué)生DELETENEXT3LIST顯示結(jié)果如下:(2)用命令方式撤消表中的記錄的刪除標(biāo)記命令結(jié)構(gòu):RECALL[<范圍>][FOR<條件1>][WHILE<條件2>]命令功能:對(duì)范圍內(nèi)滿足條件的記錄如果有刪除標(biāo)記“*”,將被撤消。.在缺省[<范圍>]和<條件>選項(xiàng)時(shí),僅對(duì)當(dāng)前記錄撤消刪除標(biāo)記。例4.14對(duì)“學(xué)生”表中的刪除標(biāo)記全部撤消USE學(xué)生RECALLALLLIST&&顯示結(jié)果略4.3.7表文件記錄的刪除和恢復(fù)2.用菜單方式實(shí)現(xiàn)表文件記錄的刪除和恢復(fù)操作步驟如下:(1) 打開(kāi)表文件,并在VisualFoxPro主窗口中選擇【顯示】│【瀏覽】命令,此時(shí)在主窗口上顯示打開(kāi)的表文件的記錄內(nèi)容。(2) 選擇【表】│【刪除記錄】命令,此時(shí)彈出【刪除】對(duì)話框。(3) 在對(duì)話框中輸入加刪除標(biāo)記記錄【作用范圍】、【For】和【W(wǎng)hile】的條件,方法同前,然后單擊【刪除】按鈕。此時(shí),表文件中滿足條件的記錄已加了刪除標(biāo)記。(4) 如果需要撤消某些記錄的刪除標(biāo)記,可在圖4.3.4所示的【表】下拉菜單中選擇【恢復(fù)記錄】命令,系統(tǒng)將彈出【恢復(fù)記錄】對(duì)話框,在該對(duì)話框中輸入需撤消刪除標(biāo)記記錄對(duì)話框【作用范圍】、【For】和【W(wǎng)hile】的條件,然后單擊【恢復(fù)記錄】按鈕。此時(shí),表文件中滿足條件記錄上的刪除標(biāo)記已經(jīng)被撤消。4.3.7表文件記錄的刪除和恢復(fù)例4.15用菜單方式把“學(xué)生”表中性別為男的記錄加上刪除標(biāo)記操作步驟如下:①

打開(kāi)“學(xué)生”表

選擇【顯示】│【瀏覽】命令③

選擇【表】│【刪除記錄】命令,在彈出的【刪除】對(duì)話框中,輸入【作用范圍】:ALL,【For】條件:學(xué)生.性別=“男”,單擊【刪除】按鈕。此時(shí)在【瀏覽】窗口中顯示加了刪除標(biāo)記的“學(xué)生”表。

4.3.7表文件記錄的刪除和恢復(fù)3.用鼠標(biāo)單擊實(shí)現(xiàn)表文件記錄的刪除和恢復(fù)在將表文件以【瀏覽】或【編輯】方式顯示在主窗口中時(shí),可用鼠標(biāo)單擊記錄左邊的“小方格”,當(dāng)“小方格”變成黑色時(shí),表示該記錄已加了刪除標(biāo)記。當(dāng)再次單擊“小方格”時(shí),“小方格”變成白色,表示該記錄的刪除標(biāo)記已經(jīng)被撤消。另外,還可以用“<Ctrl>+<T>”對(duì)當(dāng)前記錄增加和撤消刪除標(biāo)記。4.SETDELETEDON/OFF命令記錄加了刪除標(biāo)記后,再執(zhí)行其他命令時(shí)是否有影響,要取決于“SETDELETED”命令。當(dāng)執(zhí)行了“SETDELETEDOFF”命令后,刪除標(biāo)記對(duì)任何命令均無(wú)影響;當(dāng)執(zhí)行了“SETDELETEDON”命令后再執(zhí)行其他命令時(shí),一般不包括帶有刪除標(biāo)記的記錄。但有兩點(diǎn)例外:①命令中含有RECORD<表達(dá)式>或NEXT<表達(dá)式>范圍項(xiàng),且范圍內(nèi)第一個(gè)記錄帶有刪除標(biāo)記的。②本章后面講到的INDEX和REINDEX命令不受“SETDELETED”命令的影響?!癝ETDELETED”命令的初始默認(rèn)值為OFF。

4.3.7表文件記錄的刪除和恢復(fù)5.物理刪除記錄l

用命令方式物理刪除帶刪除標(biāo)記的記錄命令格式:PACK命令功能:將表中帶有刪除標(biāo)記的記錄全部刪除掉,并且不能再恢復(fù)。例4.16將當(dāng)前表中有刪除標(biāo)記的記錄物理刪除PACKl

用菜單方式刪除帶刪除標(biāo)記的記錄操作步驟如下:(1) 打開(kāi)要?jiǎng)h除記錄的表文件。(2) 選擇【顯示】|【瀏覽】命令(3) 選擇【表】│【徹底刪除】,彈出確定對(duì)話框,單擊“是”,則物理刪除帶有刪除標(biāo)記的記錄。

4.3.7表文件記錄的刪除和恢復(fù)l物理刪除表中的全部記錄命令格式:ZAP命令功能:物理刪除表中的全部記錄,不管是否有刪除標(biāo)記。但表結(jié)構(gòu)仍然存在。4.4建立表索引在VisualFoxPro中,表建立以后,其內(nèi)部記錄的排列順序是按照輸入的順序排列的,如果需要按某字段的順序重新排列記錄,則要進(jìn)行排序。排序分為物理排序和邏輯排序,物理排序(簡(jiǎn)稱:排序)需占用較大的存儲(chǔ)空間,而邏輯排序(即:索引)是由指針構(gòu)成的排序文件,這些指針邏輯上按照索引關(guān)鍵字值進(jìn)行排序。索引文件和表的.dbf文件分別存儲(chǔ),且不改變表中記錄的物理順序。表索引實(shí)際上是一個(gè)列表,它建立了索引表達(dá)式與記錄號(hào)之間的一種對(duì)應(yīng)關(guān)系,并可按索引表達(dá)式的排序查找相應(yīng)的記錄,從而可以確定對(duì)記錄的處理順序。其中的索引表達(dá)式可以是表的一個(gè)字段,也可以是由某些字段組成的表達(dá)式。4.4建立表索引對(duì)于已經(jīng)建好的表,可以利用索引對(duì)其中的數(shù)據(jù)進(jìn)行排序,以便加速檢索數(shù)據(jù)的速度,還可以利用索引快速顯示、查詢或者打印記錄,控制重復(fù)字段值的輸入并支持表間的關(guān)系操作。對(duì)同一個(gè)表可以建立多個(gè)索引,每一個(gè)索引代表一種記錄的處理順序,但在任何時(shí)刻,最多只有一個(gè)索引起作用,這個(gè)索引稱為主控索引。索引存放在結(jié)構(gòu)化復(fù)合索引文件中,該文件與相關(guān)的表文件同名,擴(kuò)展名為.CDX,如學(xué)生.CDX。通常情況下,每一個(gè)索引包含兩部分內(nèi)容:1.索引關(guān)鍵字表達(dá)式:它是用來(lái)創(chuàng)建索引的標(biāo)準(zhǔn),可以是表中的某個(gè)特定的字段、變量、函數(shù)等項(xiàng)的組合表達(dá)式。2.索引標(biāo)識(shí):是索引的名稱,要求以字母或下劃線開(kāi)頭,由字母、數(shù)字和下劃線組成,但不能超過(guò)10個(gè)字符。

4.4建立表索引4.4.1索引類型4.4.2用命令方式建立索引4.4.3在表設(shè)計(jì)器中建立索引4.4.4表記錄的查找4.4.1索引類型VisualFoxPro為數(shù)據(jù)庫(kù)表提供了主索引、候選索引、惟一索引和普通索引四種,自由表只有后三種索引。1.主索引起主關(guān)鍵字作用,并在指定字段或表達(dá)式中不允許出現(xiàn)重復(fù)值的索引叫主索引。這里的“不允許出現(xiàn)重復(fù)值”是指建立索引的字段值不允許重復(fù)。如果需在含有重復(fù)數(shù)據(jù)的字段中建立主索引,則必須首先刪除重復(fù)字段值后才能建立主索引。建立主索引的字段可以看作是主關(guān)鍵字。一個(gè)表只能有一個(gè)主關(guān)鍵字,因此一個(gè)表只能建立一個(gè)主索引。主索引是一個(gè)不允許索引表達(dá)式值出現(xiàn)重復(fù)的索引。我們可以為數(shù)據(jù)庫(kù)中的每一個(gè)表建立一個(gè)主索引,如果一個(gè)表有了一個(gè)主索引,還可以為它添加候選索引。2.候選索引候選索引是主索引的候選索引。它和主索引具有相同的特性,建立候選索引的字段可以看作是候選關(guān)鍵字。候選索引和主索引一樣不允許索引表達(dá)式值出現(xiàn)重復(fù)的索引。在一個(gè)表中可以建立多個(gè)候選索引。4.4.1索引類型3.惟一索引惟一索引允許索引表達(dá)式有重復(fù)值,當(dāng)索引表達(dá)式值重復(fù)時(shí),只有第一個(gè)記錄進(jìn)入索引。在一個(gè)表中可以建立多個(gè)惟一索引。4.普通索引普通索引允許索引表達(dá)式出現(xiàn)重復(fù)值,一個(gè)表中可以有多個(gè)普通索引。在一個(gè)表中可以建立多個(gè)索引,每個(gè)索引分別表示處理記錄的不同順序。但如果索引過(guò)多會(huì)降低系統(tǒng)的運(yùn)行性能。

4.4.2用命令方式建立索引1.創(chuàng)建索引命令格式:INDEXON<關(guān)鍵字表達(dá)式>TAG<索引標(biāo)識(shí)>[FOR<條件表達(dá)式>][ASCENDING|DESCENDING]命令功能:根據(jù)<關(guān)鍵字表達(dá)式>為當(dāng)前打開(kāi)的表文件創(chuàng)建一個(gè)索引,索引名為命令中給定的<索引標(biāo)識(shí)>。索引文件存放在與表文件同名,擴(kuò)展名為

.CDX的復(fù)合結(jié)構(gòu)索引文件中。命令中的<關(guān)鍵字表達(dá)式>可以是一個(gè)字段名,還可以是包含字段名的表達(dá)式,但該表達(dá)式只能是數(shù)值型、字符型或日期型。若命令中無(wú)[FOR<條件表達(dá)式>],則對(duì)所有記錄進(jìn)行索引;否則只對(duì)滿足條件的記錄進(jìn)行索引。[ASCENDING或

DESCENDING]選項(xiàng):若缺省或選擇ASCENDING,索引將按關(guān)鍵字表達(dá)式的值升序排列;若選擇DESCENDING,索引將按關(guān)鍵字表達(dá)式的值降序排列。

4.4.2用命令方式建立索引例4.17對(duì)表文件“學(xué)生”,按“出生日期”的升序建立一索引文件,索引標(biāo)識(shí)為SY1。USE學(xué)生INDEXON出生日期

TAGSY1BROWSE瀏覽結(jié)果見(jiàn)圖如果在索引表達(dá)式中是由多個(gè)數(shù)值型字段組成,則索引將按照多個(gè)數(shù)值型字段的和進(jìn)行排序。

4.4.2用命令方式建立索引例4.18新建一個(gè)“成績(jī)”表,表結(jié)構(gòu)為:學(xué)號(hào),字符型,寬度為7;姓名,字符型,寬度為8;計(jì)算機(jī)、英語(yǔ)、高等數(shù)學(xué)都為數(shù)值型,寬度均為4?,F(xiàn)根據(jù)三門課程成績(jī)的總和進(jìn)行降序索引,索引標(biāo)識(shí)為SY2。USE成績(jī)INDEXON計(jì)算機(jī)+英語(yǔ)+高等數(shù)學(xué)

TAGSY2DESCBROWSE瀏覽結(jié)果見(jiàn)右圖4.4.2用命令方式建立索引如果希望先按高等數(shù)學(xué)索引,高等數(shù)學(xué)成績(jī)相同時(shí)再按計(jì)算機(jī)索引,最后再按英語(yǔ)索引,索引標(biāo)識(shí)為SY3,則應(yīng)輸入以下命令:

INDEXONSTR(高等數(shù)學(xué),4)+STR(計(jì)算機(jī),4)+STR(英語(yǔ),4)TAGSY3DESCBROWSE瀏覽結(jié)果見(jiàn)圖4.4.2用命令方式建立索引注意:按此方法進(jìn)行索引,如果索引關(guān)鍵字表達(dá)式中使用了非字符字段,則必須通過(guò)相關(guān)函數(shù)(如STR(),DTOC()等)將非字符型字段轉(zhuǎn)換成字符型字段。例4.19對(duì)“學(xué)生”表,對(duì)男生按入學(xué)成績(jī)進(jìn)行索引,索引標(biāo)識(shí)為SY4。USE學(xué)生INDEXON入學(xué)成績(jī)

TAGSY4FOR性別="男"BROWSE4.4.2用命令方式建立索引2.設(shè)置主控索引由于一個(gè)表可以建立多個(gè)索引,其中每個(gè)索引代表不同的記錄集合、不同的排列順序,根據(jù)需要我們可以選用適當(dāng)?shù)乃饕?。但在某一時(shí)刻,只有一個(gè)索引起作用,這就是主控索引。在給表建立多個(gè)索引時(shí),最近建的索引自動(dòng)成為主控索引。如要改變主控索引,則要使用“SETORDER”命令。命令格式:SETORDERTO<索引標(biāo)識(shí)>命令功能:將指定的索引成為當(dāng)前的主控索引。例4.20在上面例子中已建立了SY1,SY4兩個(gè)索引,執(zhí)行下列命令:USE學(xué)生SETORDERTOSY1&&將SY1設(shè)置成主控索引LISTSETORDERTOSY4&&將SY4設(shè)置成主控索引LIST請(qǐng)讀者分析執(zhí)行結(jié)果。4.4.2用命令方式建立索引3.刪除索引如果某個(gè)索引不再使用了則可以刪除它。命令格式:DELETETAG<索引標(biāo)識(shí)清單

|ALL>命令功能:該命令從結(jié)構(gòu)化復(fù)合索引文件中刪除索引標(biāo)識(shí)清單中列出的索引或全部索引。4.4.3在表設(shè)計(jì)器中建立索引索引除了可以在命令方式下建立,還可以在表設(shè)計(jì)器中建立。

1.單項(xiàng)索引在【表設(shè)計(jì)器】中有【字段】、【索引】和【表】三個(gè)選項(xiàng)卡,在【字段】選項(xiàng)卡中定義字段時(shí)就可以直接指定某些字段是否是索引項(xiàng),用鼠標(biāo)單擊定義索引的下拉列表框可以看到有三個(gè)選項(xiàng):無(wú)、升序和降序(默認(rèn)為無(wú)),如圖4.4.5所示。如果選定了升序或降序,則在對(duì)應(yīng)字段上建立了一個(gè)普通索引,索引名與字段名同名,索引表達(dá)式就是對(duì)應(yīng)的字段。如果要將索引定義為其他類型,須切換到【索引】選項(xiàng)卡,然后從【類型】下拉列表中選擇索引的類型。此時(shí)可根據(jù)需要選擇主索引、候選索引或惟一索引。4.4.3在表設(shè)計(jì)器中建立索引2.復(fù)合字段索引如果索引是由多個(gè)字段構(gòu)成的,則稱為復(fù)合字段索引。建立復(fù)合字段索引的方法是:(1) 在【索引】選項(xiàng)卡中單擊【插入】按鈕,此時(shí)會(huì)在屏幕上出現(xiàn)一個(gè)新行。(2) 在索引名欄中輸入索引名。(3) 從索引類型下拉列表中選擇索引類型。(4) 單擊表達(dá)式欄右側(cè)的按鈕,打開(kāi)表達(dá)式生成器。(5) 在表達(dá)式生成器中輸入索引表達(dá)式,最后單擊【確定】按鈕。4.4.3在表設(shè)計(jì)器中建立索引例4.21用表設(shè)計(jì)器對(duì)例4.18作如下操作

(1) 打開(kāi)

“成績(jī)”數(shù)據(jù)表。(2) 選擇【顯示】|【表設(shè)計(jì)器】命令,選擇【索引】選項(xiàng)卡。(3) 在【索引】選項(xiàng)卡中單擊【插入】按鈕,并在【索引名】欄中輸入“SY2”。(4) 可在【表達(dá)式】欄中輸入“計(jì)算機(jī)+英語(yǔ)+高等數(shù)學(xué)”或單擊表達(dá)式欄右側(cè)的按鈕,彈出表達(dá)式生成器,在【表達(dá)式】欄中輸入“計(jì)算機(jī)+英語(yǔ)+高等數(shù)學(xué)”,單擊【確定】按鈕。(5) 如果需要篩選條件,可單擊【篩選】欄直接輸入條件或單擊【篩選】欄右側(cè)的按鈕,打開(kāi)【表達(dá)式生成器】,輸入篩選條件。如輸入“計(jì)算機(jī)>=95”。(6) 如需進(jìn)行“升序”排列,可單擊【索引】選項(xiàng)【排序】中的按鈕,最后單擊【確定】按鈕。(7) 選擇【表】│【屬性】命令,打開(kāi)【工作區(qū)屬性】對(duì)話框。在【索引順序】下拉菜單中選擇“成績(jī):Sy2”,單擊【確定】按鈕。4.4.4表記錄的查找VisualFoxPro提供了兩種查找記錄的方法:一種是順序查找法;另一種是利用索引文件查找,簡(jiǎn)稱索引查找法。1.順序查找命令命令格式:LOCATE[<范圍>][FOR<條件1>][WHILE<條件2>]命令功能:在指定范圍內(nèi),按照記錄順序查找滿足條件的第一條記錄。若找到,則記錄指針指向該記錄,置FOUND()函數(shù)為.T.,并停止查找;若未找到,則置FOUND()函數(shù)為.F.,也停止查找。當(dāng)<范圍>為NEXTn時(shí),指針指向范圍內(nèi)最后一條記錄;當(dāng)<范圍>為ALL時(shí),指針指向表文件末尾,即最大記錄號(hào)加1,并置為EOF()為.T.。缺省<范圍>選項(xiàng)時(shí)默認(rèn)為ALL。4.4.4表記錄的查找例4.22在“學(xué)生”表中,查找英語(yǔ)專業(yè)的學(xué)生。USE學(xué)生LOCATEFOR專業(yè)="英語(yǔ)"BROWSE瀏覽窗口顯示結(jié)果。指針定位于第一個(gè)專業(yè)為“英語(yǔ)”的記錄。4.4.4表記錄的查找2.繼續(xù)查找命令LOCATE命令在找到第一個(gè)滿足條件的記錄后,就停止查找,如想繼續(xù)查找滿足條件的記錄可使用CONTINUE命令。命令格式:CONTINUE命令功能:用于LOCATE命令后,在剩下的范圍內(nèi)繼續(xù)順序查找滿足條件的記錄。3.索引查找命令當(dāng)數(shù)據(jù)表設(shè)置了主控索引后,其記錄的順序?yàn)檫壿嬳樞颉N覀兛筛鶕?jù)索引關(guān)鍵字進(jìn)行查找,從而加快查找速度。命令格式:SEEK<表達(dá)式>命令功能:根據(jù)主控索引,查找與命令中<表達(dá)式>值相匹配的記錄。如果查找成功,指針指向邏輯順序中第一條滿足條件的記錄,并置FOUND()為.T.,EOF().為F.,RECNO()為該記錄號(hào);若查找失敗,則記錄指針指向表文件末尾,F(xiàn)OUND()為.F.,EOF()為.T.,RECNO()為表記錄數(shù)加1。當(dāng)主控索引的關(guān)鍵字是字符型時(shí),命令中的表達(dá)式可以是該關(guān)鍵字值的全部,也可以是從它左邊開(kāi)始的一部分。當(dāng)主控索引的關(guān)鍵字是數(shù)值型時(shí),表達(dá)式必須等于關(guān)鍵字?jǐn)?shù)值。4.4.4表記錄的查找例4.23對(duì)“學(xué)生”表,查找姓李的學(xué)生。USE學(xué)生INDEXON姓名

TAGXMSEEK"李"DISPLAY顯示結(jié)果如下:4.5表中數(shù)值參數(shù)的統(tǒng)計(jì)VisualFoxPro系統(tǒng)提供了多條對(duì)數(shù)值型字段進(jìn)行統(tǒng)計(jì)的命令。4.5.1統(tǒng)計(jì)記錄個(gè)數(shù)命令4.5.2求和命令4.5.3求平均值命令4.5.4分類求和命令4.5.1統(tǒng)計(jì)記錄個(gè)數(shù)命令命令格式:COUNT[<范圍>][FOR<條件1>][WHILE<條件2>][TO<內(nèi)存變量名>]命令功能:對(duì)當(dāng)前打開(kāi)的表文件,統(tǒng)計(jì)<范圍>內(nèi)符合給定條件的記錄個(gè)數(shù)。若有[TO<內(nèi)存變量名>]選項(xiàng),則將統(tǒng)計(jì)結(jié)果存入指定內(nèi)存變量,否則只在屏幕上顯示統(tǒng)計(jì)結(jié)果。缺省[<范圍>]可選項(xiàng)時(shí)默認(rèn)為ALL。例4.24統(tǒng)計(jì)“學(xué)生”表中,年齡在20歲及以上的人數(shù)。COUNTFORyear(DATE())-year(出生日期)>=20toa?a顯示結(jié)果:64.5.2求和命令命令格式:SUM[<表達(dá)式清單>][<范圍>][FOR<條件1>][WHILE<條件2>][TO<內(nèi)存變量名>|TOARRAY<數(shù)組名>]命令功能:對(duì)當(dāng)前打開(kāi)的表文件中滿足條件的記錄進(jìn)行縱向求和。若命令中缺省[<表達(dá)式清單>]可選項(xiàng)時(shí),表示對(duì)表文件中所有數(shù)值型字段求和;若缺省[<范圍>]可選項(xiàng),默認(rèn)為ALL;若命令中含有[TO<內(nèi)存變量名>]可選項(xiàng),則將求和結(jié)果存入對(duì)應(yīng)的內(nèi)存變量中;如果命令中含有[TOARRAY<數(shù)組名>]可選項(xiàng),則將求和結(jié)果存入指定數(shù)組中,若數(shù)組不存在,系統(tǒng)會(huì)自動(dòng)建立,若數(shù)組過(guò)小,系統(tǒng)會(huì)自動(dòng)擴(kuò)大數(shù)組。

4.5.3求平均值命令命令格式:AVERAGE[<表達(dá)式清單>][<范圍>][FOR<條件1>][WHILE<條件2>][TO<內(nèi)存變量名>|TOARRAY<數(shù)組名>]命令功能:對(duì)當(dāng)前打開(kāi)的表文件滿足條件的記錄進(jìn)行縱向求平均。該命令對(duì)可選項(xiàng)的規(guī)定與SUM相同。例4.25統(tǒng)計(jì)出“成績(jī)”表中計(jì)算機(jī),英語(yǔ),高等數(shù)學(xué)三門課程的總分及平均分,將三門課程的總分分別存入jsj、yy和gs三個(gè)內(nèi)存變量中,平均分分別存入pjsj、pyy和pgs三個(gè)內(nèi)存變量中。USE成績(jī)SUM計(jì)算機(jī),英語(yǔ),高等數(shù)學(xué)

tojsj,yy,gs

AVERAGE計(jì)算機(jī),英語(yǔ),高等數(shù)學(xué)topjsj,pyy,pgs?jsj,yy,gs,pjsj,pyy,pgs顯示結(jié)果為:1104.001121.001100.0092.0093.4291.67

4.5.4分類求和命令命令格式:TOTALON<關(guān)鍵字段>]TO<目的表文件名>[FIELDS<字段名清單>][<范圍>][FOR<條件1>][WHILE<條件2>]命令功能:對(duì)當(dāng)前打開(kāi)的表文件滿足條件的記錄進(jìn)行分類求和。執(zhí)行該命令時(shí),要求當(dāng)前打開(kāi)的表文件必須是已經(jīng)按此命令中的“關(guān)鍵字段”進(jìn)行了排序或索引。命令中的<字段名清單>項(xiàng)列出了需分類求和的字段名,它們必須是數(shù)值型字段。若命令中缺省此項(xiàng),則對(duì)打開(kāi)的表文件中的所有數(shù)值型字段分類求和。未求和的字段,生成的記錄字段值等于具有相同關(guān)鍵字記錄中的第一條記錄的字段值;在求和字段上生成記錄的字段值等于分類求和的結(jié)果。若某個(gè)字段的求和結(jié)果超過(guò)了該字段的寬度,則系統(tǒng)會(huì)截去一部分小數(shù)或采用科學(xué)計(jì)數(shù)法。如果還不夠?qū)挾?,則以一串“*”號(hào)填滿該字段。當(dāng)缺省[<范圍>]項(xiàng)時(shí),系統(tǒng)默認(rèn)為ALL。4.5.4分類求和命令例4.26對(duì)“學(xué)生”表,按班級(jí)統(tǒng)計(jì)出入學(xué)成績(jī)總分?jǐn)?shù),并將結(jié)果存入“入學(xué)成績(jī)匯總”表中。USE學(xué)生INDEXON班級(jí)編號(hào)

TAGSY5TOTALON班級(jí)編號(hào)

to入學(xué)成績(jī)匯總

FIELDS入學(xué)成績(jī)USE入學(xué)成績(jī)匯總LIST班級(jí)編號(hào),入學(xué)成績(jī)顯示結(jié)果為:記錄號(hào)

班級(jí)編號(hào)

入學(xué)成績(jī)1 01 24092 02 23963 03 24184.6文件操作命令本節(jié)介紹有關(guān)文件操作的命令,如文件的復(fù)制、刪除、重命名等。4.6.1文件的復(fù)制命令4.6.2文件管理操作命令4.6.1文件的復(fù)制命令把一個(gè)文件的的全部或部分拷貝到一個(gè)新文件中叫文件的復(fù)制,文件的復(fù)制由COPY命令實(shí)現(xiàn)。根據(jù)需要,VisualFoxPro提供了多種形式的COPY命令。1.文件的復(fù)制(1) 復(fù)制各類文件命令命令格式:COPYFILE<源文件名>TO<目的文件名>命令功能:將源文件完整地復(fù)制到目的文件。在使用本命令時(shí)應(yīng)注意以下幾點(diǎn):①

源文件名和目的文件名必須帶上擴(kuò)展名。②

被復(fù)制的源文件不能處于打開(kāi)狀態(tài)。③

若源文件是一個(gè)含有備注字段和結(jié)構(gòu)化復(fù)合索引文件的表文件,在文件復(fù)制時(shí),應(yīng)分別進(jìn)行復(fù)制。4.6.1文件的復(fù)制命令例4.27把“學(xué)生”表文件復(fù)制到名為“新學(xué)生1”的新表文件中COPYFILE學(xué)生.DBFTO新學(xué)生1.DBFCOPYFILE學(xué)生.FPTTO新學(xué)生1.FPTCOPYFILE學(xué)生.CDXTO新學(xué)生1.CDX(2) 復(fù)制數(shù)據(jù)表文件命令從打開(kāi)的表文件中將部分記錄或部分字段復(fù)制成一個(gè)新的表文件。命令格式:COPYTO<目的表文件名>[FIELDS<字段名清單>][<范圍>][FOR<條件1>][WHILE<條件2>]命令功能:把源表文件中指定范圍內(nèi)滿足條件的記錄復(fù)制到目的表文件。若缺省[FIELDS<字段名清單>]則表示復(fù)制源表文件中的全部字段,否則只復(fù)制

溫馨提示

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