《Visual FoxPro程序設(shè)計(jì)》第三章數(shù)據(jù)庫和表.ppt_第1頁
《Visual FoxPro程序設(shè)計(jì)》第三章數(shù)據(jù)庫和表.ppt_第2頁
《Visual FoxPro程序設(shè)計(jì)》第三章數(shù)據(jù)庫和表.ppt_第3頁
《Visual FoxPro程序設(shè)計(jì)》第三章數(shù)據(jù)庫和表.ppt_第4頁
《Visual FoxPro程序設(shè)計(jì)》第三章數(shù)據(jù)庫和表.ppt_第5頁
已閱讀5頁,還剩90頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Visual FoxPro 6.0 程序設(shè)計(jì).課件,-1-,第3章 數(shù)據(jù)庫和表,3.1 數(shù)據(jù)表的建立和修改 3.2 數(shù)據(jù)表的維護(hù)命令 3.3 表的排序和索引 3.4 數(shù)據(jù)的檢索和統(tǒng)計(jì) 3.5 多表操作 3.6 數(shù)據(jù)庫的基本操作,提示:單擊各個(gè)標(biāo)題前的動(dòng)畫符號(hào)“ ” ,鏈接到相應(yīng)的章節(jié)。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-2-,3.1 數(shù)據(jù)表的建立和修改,3.1.1 表結(jié)構(gòu)的建立 3.1.2 表的打開與關(guān)閉 3.1.3 表結(jié)構(gòu)的顯示與修改,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-3-,3.1 數(shù)據(jù)表的建立和修改,數(shù)據(jù)表是一組相關(guān)聯(lián)的數(shù)據(jù)按行和列排列的二維表格,簡

2、稱為表(Table)。 表中第一行決定表的結(jié)構(gòu),表的每列都是一個(gè)字段,第一行的每一項(xiàng)是字段名,表中其他行是按照表結(jié)構(gòu)建立的表數(shù)據(jù),每行都稱為一條記錄。見下表所示的學(xué)生信息表。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-4-,3.1.1 表結(jié)構(gòu)的建立,1.表結(jié)構(gòu)的設(shè)計(jì) 表結(jié)構(gòu)由字段名、字段類型和字段長度(數(shù)值型還需要定義小數(shù)位數(shù))構(gòu)成。 (1)字段名 字段名即字段的標(biāo)識(shí)或關(guān)系的屬性名,可由漢字、字母、數(shù)字及下劃線組成,但首字符必須是漢字或字母; 數(shù)據(jù)庫表字段名的總長度不超過128個(gè)字符,但自由表字段名長度不能超過10個(gè)字符;不能使用VFP的保留字; 同一表中字段名不允許重復(fù),字段名取

3、名最好能簡要說明該字段的意義。 (2)字段類型 表中每一個(gè)字段都有特定的數(shù)據(jù)類型; 見下表,可以選擇下列表中的任意一種數(shù)據(jù)類型。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-5-,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-6-,對(duì)于有些由數(shù)字構(gòu)成,但不參與數(shù)值計(jì)算的數(shù)據(jù),可以定義成字符型,如學(xué)號(hào)、身份證號(hào)碼等;對(duì)于取值只有兩種狀態(tài)的數(shù)據(jù)可以定義成邏輯型,如是否團(tuán)員、婚否等。 可以定義上述學(xué)生信息表的表結(jié)構(gòu),見下表。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-7-,2. 表結(jié)構(gòu)的建立 表結(jié)構(gòu)的建立方法常用兩種:菜單方式和命令方式。 (1)菜單方式,圖3-1 “文

4、件”菜單,圖3-2 “新建”對(duì)話框,單擊“文件”|“新建”命令,如左圖,打開“新建”對(duì)話框,如右圖,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-8-, 在“新建”對(duì)話框中選擇文件類型為“表”,然后單擊“新建文件”按鈕,打開下圖所示的“創(chuàng)建”對(duì)話框。, 在“創(chuàng)建”對(duì)話框中,選擇好保存路徑后,輸入要保存的表文件的名稱,默認(rèn)的保存類型為“表/DBF”,擴(kuò)展名為.dbf,然后單擊“保存”按鈕,打開如下圖所示的“表設(shè)計(jì)器”對(duì)話框。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-9-,在“表設(shè)計(jì)器”對(duì)話框中,選擇“字段”選項(xiàng)卡,可以設(shè)置字段名、字段寬度等。在“字段名”下方的框內(nèi)輸入字段的

5、名稱;在“類型”下方的下拉框中選擇該字段的字段類型;在“寬度”下方的框內(nèi)設(shè)置該字段的寬度;如果字段類型是“數(shù)值型”或“浮動(dòng)型”,則還要在 “小數(shù)位”下方的框中設(shè)置小數(shù)點(diǎn)后的位數(shù)。一個(gè)字段定義完后,單擊下一行,再定義下一個(gè)字段,一直到所有字段都定義完成后,單擊“確定”按鈕,就完成了表結(jié)構(gòu)的建立。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-10-,在“表設(shè)計(jì)器”的對(duì)話框中,單擊“插入”按鈕,會(huì)在已選定字段前插入一個(gè)新字段;單擊“刪除”按鈕,會(huì)刪除一個(gè)已選定字段; 當(dāng)選中某一字段時(shí),該字段定義行左端的小方塊上顯示上下雙向箭頭,拖動(dòng)該上下箭頭可以改變字段的順序。 在“表設(shè)計(jì)器”對(duì)話框中,表

6、結(jié)構(gòu)建立好后,單擊“確定”按鈕,會(huì)彈出一個(gè)詢問現(xiàn)在是否要輸入數(shù)據(jù)記錄的對(duì)話框,如果單擊“是”按鈕,將彈出記錄的編輯窗口,可以直接輸入表中記錄的數(shù)據(jù)值;如果單擊“否”按鈕,將直接關(guān)閉表設(shè)計(jì)器窗口。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-11-,(2)命令方式 建立表結(jié)構(gòu)的命令格式:CREATE 例如,在命令窗口中輸入:create student 將打開 “表設(shè)計(jì)器”對(duì)話框,在該對(duì)話框中定義表中的每個(gè)字段,單擊“確定”按鈕完成表結(jié)構(gòu)的建立。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-12-,3.1.2 表的打開與關(guān)閉,1. 表的打開 對(duì)表操作要先打開。打開的方法有:菜

7、單方式和命令方式 (1)菜單方式 單擊“文件”|“打開”命令,打開“打開”對(duì)話框,如圖,其中的文件類型選擇“表(*.dbf)”,然后按照路徑找到表文件所在位置,選中該文件,單擊“確定”按鈕。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-13-,(2)命令方式 打開表的命令格式:USE 例如,打開學(xué)生信息表student,可以在命令窗口中輸入相應(yīng)的命令: use student 如果該表文件在當(dāng)前默認(rèn)路徑下,輸入命令并回車后則能直接打開該表; 如果該表未存放在當(dāng)前默認(rèn)路徑下,則在use命令后應(yīng)輸入該表文件所在的完整路徑和文件名稱。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-

8、14-,2. 表的關(guān)閉 對(duì)表文件的操作結(jié)束后,一般需要關(guān)閉表,一方面將對(duì)表的修改保存到磁盤文件中,另一方面也避免對(duì)表的無意破壞。 關(guān)閉表的方法主要有兩種:菜單方式和命令方式。 (1)菜單方式: 單擊“文件”|“關(guān)閉”命令,即可關(guān)閉當(dāng)前打開的表。 (2)命令方式: 關(guān)閉表的命令格式為:USE 在命令窗口中輸入U(xiǎn)SE命令,回車后,當(dāng)前工作區(qū)中打開的表被關(guān)閉。 也可使用命令:CLOSE ALL來關(guān)閉所有工作區(qū)中打開的表文件。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-15-,3.1.3 表結(jié)構(gòu)的顯示與修改,1. 表結(jié)構(gòu)的顯示 表文件建立以后,隨時(shí)可以查看表結(jié)構(gòu)。表結(jié)構(gòu)的顯示方法主要有兩種

9、:菜單方式和命令方式。 (1)菜單方式 單擊“文件”|“打開”命令,打開“打開”對(duì)話框,在其中選擇要打開的表。 單擊“顯示”|“表設(shè)計(jì)器”命令,打開“表設(shè)計(jì)器”對(duì)話框,在其中能看到該表的表結(jié)構(gòu)中所有字段的定義。 (2)命令方式 顯示表結(jié)構(gòu)的命令格式如下: LIST|DISPLAY STRUCTURE LIST STRUCTURE和DISPLAY STRUCTURE命令功能相近,都可以顯示當(dāng)前表的表結(jié)構(gòu),區(qū)別在于:使用LIST命令時(shí),當(dāng)顯示的內(nèi)容超出一屏?xí)r會(huì)自動(dòng)滾屏,顯示到最后一屏;而使用DISPLAY命令,顯示內(nèi)容滿一屏?xí)r會(huì)自動(dòng)暫停,按任意鍵后才繼續(xù)顯示下一屏。,Visual FoxPro 6

10、.0 程序設(shè)計(jì).課件,-16-,例如,顯示學(xué)生信息表student的表結(jié)構(gòu),可以在命令窗口中輸入相應(yīng)的命令: use student list structure 回車后,在主窗口中會(huì)顯示表的結(jié)構(gòu),如圖。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-17-,2. 表結(jié)構(gòu)的修改 表結(jié)構(gòu)的修改方法也有菜單方式和命令方式兩種。 (1)菜單方式 單擊“文件”|“打開”命令,或者單擊常用工具欄中的“打開”按鈕,打開“打開”對(duì)話框,在對(duì)話框中選擇要打開的表。 單擊“顯示”|“表設(shè)計(jì)器”命令,打開“表設(shè)計(jì)器”對(duì)話框。 在“表設(shè)計(jì)器”對(duì)話框中,選中要修改的字段,可以隨意修改字段名、類型、寬度等項(xiàng);可

11、以單擊“插入”按鈕,在選中字段前插入一個(gè)新字段;可以單擊“刪除”按鈕,刪除當(dāng)前選中的字段;也可拖動(dòng)被選中字段左端的帶上下雙向箭頭的按鈕來改變字段的順序。修改后,單擊“確定”按鈕完成表結(jié)構(gòu)的修改。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-18-,(2)命令方式 修改表結(jié)構(gòu)的命令格式: MODIFY STRUCTURE 例如,修改學(xué)生信息表的表結(jié)構(gòu),可以在命令窗口中輸入相應(yīng)的命令: use student modify structure 按回車鍵后,也會(huì)打開“表設(shè)計(jì)器”的對(duì)話框,具體修改操作同菜單方式。 注意:在修改表結(jié)構(gòu)時(shí),注意已有數(shù)據(jù)的類型和寬度,防止表中已有數(shù)據(jù)的丟失。,Vi

12、sual FoxPro 6.0 程序設(shè)計(jì).課件,-19-,3.2 數(shù)據(jù)表的維護(hù)命令,3.2.1 表記錄的瀏覽 3.2.2 表記錄的添加 3.2.3 表記錄的刪除 3.2.4 表記錄的修改,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-20-,3.2.1 表記錄的瀏覽,表記錄的瀏覽方法主要有兩種:菜單方式和命令方式 1. 菜單方式 (1)單擊“文件”|“打開”命令,或者單擊常用工具欄中的“打開”按鈕,打開“打開”對(duì)話框,在對(duì)話框中選擇要打開的表。 (2)單擊“顯示”|“瀏覽”命令,打開“瀏覽”窗口,如圖。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-21-,2. 命令方式 有多

13、個(gè)命令可以實(shí)現(xiàn)記錄的瀏覽,主要分為兩種:在瀏覽窗口中顯示和在工作區(qū)中顯示。 (1) 瀏覽窗口中顯示 在瀏覽窗口中顯示表記錄的命令格式如下: BROWSEFIELDSFOR 其中,F(xiàn)IELDS指定在瀏覽窗口中顯示的字段,如果缺省,默認(rèn)顯示所有字段;FOR指定在瀏覽窗口中顯示滿足條件的記錄,如果缺省,默認(rèn)顯示所有記錄。 例如,顯示學(xué)生信息表student中身高不大于170cm的學(xué)生記錄,可以在命令窗口中輸入下列命令: use student browse for 身高=170 命令執(zhí)行結(jié)果如下圖所示。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-22-,在“瀏覽”窗口的最左側(cè)有一個(gè)黑色的

14、三角箭頭,稱為記錄指針,記錄指針?biāo)傅挠涗浄Q為當(dāng)前記錄。,顯示瀏覽窗口后,“顯示”菜單中多了“瀏覽”、“編輯”等菜單項(xiàng),單擊“顯示”|“編輯”命令,可以將“瀏覽”窗口改為“編輯”窗口。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-23-,(2) 工作區(qū)中顯示 其命令格式: LIST|DISPLAY FIELDS FOR|WHILE TO PRINTER|TO FILE OFF 其中,LIST為連續(xù)顯示命令。DISPLAY為分頁顯示命令。 指定操作的記錄范圍,可選的范圍有下列4種: ALL:表示所有記錄,若范圍缺省,默認(rèn)為ALL。 RECORD n:表示第n條記錄; NEXT n: 表

15、示從當(dāng)前記錄開始的n條記錄; REST:從當(dāng)前記錄到最后一條記錄; FIELDS:指定在瀏覽窗口中顯示的字段,如果缺省,默認(rèn)顯示所有字段。 FOR:指定在瀏覽窗口中顯示滿足條件的記錄,如果缺省,默認(rèn)顯示所有記錄。 TO PRINTER|TO FILE :指定輸出結(jié)果到打印機(jī)或FILE后的文件中。 OFF:指定不顯示記錄號(hào),如果缺省,默認(rèn)顯示記錄號(hào)。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-24-,例如,要顯示學(xué)生信息表student中第3條記錄的學(xué)號(hào)、姓名,可以在命令窗口中輸入下列命令: use student list record 3 學(xué)號(hào),姓名 命令執(zhí)行結(jié)果如圖所示。,Vi

16、sual FoxPro 6.0 程序設(shè)計(jì).課件,-25-,3.2.2 表記錄的添加,表記錄的添加有三種方式:添加一條空記錄、添加若干條記錄和將其他表中的記錄添加到當(dāng)前表。記錄的添加主要有兩種方法:菜單方法和命令方法。 1. 菜單方式 (1) 添加一條空記錄 單擊“文件”|“打開”命令,或者單擊常用工具欄中的“打開”按鈕,打開“打開”對(duì)話框,在對(duì)話框中選擇要打開的表。 單擊“顯示”|“瀏覽”命令,打開“瀏覽”窗口。 單擊“表”|“追加新記錄”命令,此時(shí)瀏覽窗口的記錄指針將會(huì)指向最后一條記錄的后面,可以通過光標(biāo)定位來輸入該條新增記錄各字段的字段值,如下圖所示。,Visual FoxPro 6.0

17、程序設(shè)計(jì).課件,-26-,(2) 添加若干條記錄 按照上述添加一條新記錄的前兩步驟,打開表的“瀏覽”窗口后,單擊“顯示”|“追加方式”命令,則記錄指針指向表中最后一個(gè)記錄后面,可以向表尾連續(xù)添加若干條記錄。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-27-,(3) 將其他表中的記錄添加到當(dāng)前表,在“追加來源”對(duì)話框中,可以在“類型”下拉列表框選擇要添加到當(dāng)前表的記錄所在來源文件的文件類型;在“來源于”文本框中,可以直接輸入來源文件的文件路徑和名稱,也可單擊其后的“對(duì)話”按鈕 ,在打開的“打開”對(duì)話框中選擇來源文件所在的路徑和名稱。,按照上述添加一條新記錄的前兩步驟,打開表的“瀏覽”

18、窗口后,單擊“表”|“追加記錄”命令,打開“追加來源”的對(duì)話框,如下圖所示。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-28-,如果需要從來源文件中選取滿足條件的記錄或指定字段,則可在選擇好來源文件后,在“追加來源”對(duì)話框中,單擊“選項(xiàng)”按鈕,打開如下圖所示的“追加來源選項(xiàng)”對(duì)話框。,在該對(duì)話框中可以單擊“字段”按鈕,打開“字段選擇器”對(duì)話框,選擇要添加的字段名;也可單擊“For”按鈕,打開“表達(dá)式生成器”對(duì)話框,設(shè)置要滿足的條件。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-29-,2. 命令方式 添加記錄前應(yīng)先打開要操作的表,然后在命令窗口內(nèi)輸入相應(yīng)的命令。 (1)

19、添加一條空記錄 添加一條空記錄的命令格式:APPEND BLANK (2) 添加若干條記錄 添加若干條記錄的命令格式:APPEND,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-30-,(3) 將其他表中的記錄添加到當(dāng)前表 將其他表中的記錄添加到當(dāng)前表的命令格式如下: APPEND FROM FIELDS FOR 例如,要將stu表中性別為男的記錄追加到當(dāng)前表中??稍诿畲翱谥休斎肴缦旅睿?use student append from stu for 性別= 男 用于追加的來源表可以是Visual FoxPro中的表,也可以是Excel工作表,或其他類型的存放數(shù)據(jù)的文件。,Visu

20、al FoxPro 6.0 程序設(shè)計(jì).課件,-31-,3. 表記錄的插入 在表中指定位置添加記錄,稱為記錄的插入。插入表記錄的命令格式如下: INSERT BLANK BEFORE 其中,BLANK表示插入一條空記錄,無此參數(shù)將出現(xiàn)記錄編輯窗口,等待用戶輸入記錄;BEFORE表示在當(dāng)前記錄的前面插入一條空記錄,無此參數(shù),則在當(dāng)前記錄的后面插入一條空記錄。 Visual FoxPro提供這條命令主要是為了兼容早期版本設(shè)置,沒有相應(yīng)的菜單操作,且在使用時(shí)受到較多約束,因此建議添加記錄還是使用前面兩種方式。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-32-,3.2.3 表記錄的刪除,表中

21、不需要的記錄可以隨時(shí)被刪除。Visual FoxPro中把刪除記錄分為邏輯刪除和物理刪除兩種。 1邏輯刪除 邏輯刪除并不真正將記錄從表中徹底刪除掉,而是在要?jiǎng)h除記錄前面加注一個(gè)刪除標(biāo)記。加注刪除標(biāo)記的記錄仍能被操作,如顯示、修改等。若不想刪除時(shí),還可撤消該記錄刪除標(biāo)記來恢復(fù)。 邏輯刪除主要有菜單方式和命令方式兩種。 (1)菜單方式 單擊“文件”|“打開”命令,或者單擊常用工具欄中的“打開”按鈕,打開“打開”對(duì)話框,在對(duì)話框中選擇要打開的表。 單擊“顯示”|“瀏覽”命令,打開“瀏覽”窗口。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-33-, 單擊“表”|“刪除記錄”命令,打開“刪除”

22、對(duì)話框,如下圖所示,在該對(duì)話框中可以選擇刪除的范圍、條件,確定后單擊“刪除”按鈕,即完成邏輯刪除。,在瀏覽窗口中,凡是被邏輯刪除的記錄前面都加上黑色方塊的刪除標(biāo)記,如下圖所示。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-34-,(2)命令方式 邏輯刪除的命令格式如下: DELETE FOR 其中用于指定要加刪除標(biāo)記的記錄范圍,如果命令中有for條件,缺省時(shí)默認(rèn)為所有記錄,如果命令中沒有for條件,缺省時(shí)默認(rèn)為當(dāng)前記錄;FOR 用于指定對(duì)滿足條件的記錄加刪除標(biāo)記。 例如,要邏輯刪除學(xué)生信息表student中學(xué)號(hào)為200810280的記錄??稍诿畲翱谥休斎胍韵旅睿?use stud

23、ent delete for 學(xué)號(hào)= 200810280 list,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-35-,顯示結(jié)果如圖3-17所示,在主窗口工作區(qū)中,凡是被邏輯刪除的記錄前面都加上了刪除標(biāo)記“*”.,注意:可以用鼠標(biāo)直接單擊要?jiǎng)h除記錄前面的刪除標(biāo)記區(qū)域來加注刪除標(biāo)記,實(shí)現(xiàn)快速邏輯刪除記錄。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-36-,2恢復(fù)刪除 恢復(fù)刪除是邏輯刪除的逆操作,將邏輯刪除記錄的刪除標(biāo)記取消掉,恢復(fù)成正常記錄?;謴?fù)刪除主要有菜單方式和命令方式兩種方法。 (1) 菜單方式 單擊“文件”|“打開”命令,打開“打開”對(duì)話框,在對(duì)話框中選擇要打開的表

24、。 單擊“顯示”|“瀏覽”命令,打開“瀏覽”窗口。 單擊“表”|“恢復(fù)記錄”命令,打開“恢復(fù)記錄”對(duì)話框,如圖所示,在該對(duì)話框中可以選擇恢復(fù)記錄的范圍、條件,確定后單擊“恢復(fù)記錄”按鈕,即完成恢復(fù)刪除操作。此時(shí)再瀏覽表記錄,會(huì)發(fā)現(xiàn)選定記錄的刪除標(biāo)記已被撤銷。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-37-,(2)命令方式 恢復(fù)邏輯刪除的命令格式如下: RECALL FOR 其中用于指定要撤銷刪除標(biāo)記的記錄范圍,如果命令中有for條件,缺省時(shí)默認(rèn)為所有記錄,如果命令中沒有for條件,缺省時(shí)默認(rèn)為當(dāng)前記錄;FOR 用于指定對(duì)滿足條件的記錄撤銷刪除標(biāo)記。 例如,要恢復(fù)學(xué)生信息表stud

25、ent中所有邏輯刪除的記錄??稍诿畲翱谥休斎胍韵旅睿?use student recall all 命令執(zhí)行后,再瀏覽表記錄,會(huì)發(fā)現(xiàn)所有記錄的刪除標(biāo)記都已被撤銷。 注意:可以用鼠標(biāo)直接單擊要恢復(fù)記錄前面的刪除標(biāo)記來快速恢復(fù)邏輯刪除。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-38-,3. 物理刪除 物理刪除是將表中所有具有刪除標(biāo)記的記錄從表中徹底刪除,無法再恢復(fù)。 恢復(fù)刪除主要有兩種方法:菜單方式和命令方式 (1) 菜單方式 單擊“文件”|“打開”命令,打開“打開”對(duì)話框,在對(duì)話框中選擇要打開的表。 單擊“顯示”|“瀏覽”命令,打開“瀏覽”窗口。 單擊“表”|“徹底刪除”命令,

26、打開刪除確認(rèn)對(duì)話框,確認(rèn)后,表中所有帶刪除標(biāo)記的記錄會(huì)被從磁盤上徹底刪除。 (2) 命令方式 物理刪除的命令格式:PACK 注意:物理刪除所刪除的記錄對(duì)象是已被加注刪除標(biāo)記的邏輯刪除記錄,因此要實(shí)施物理刪除,應(yīng)先實(shí)施邏輯刪除;被物理刪除的記錄不可恢復(fù)。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-39-,4. 直接刪除表中所有記錄 當(dāng)表中所有記錄都不需要時(shí),可以一次性從表中直接刪除所有記錄,但此時(shí)表結(jié)構(gòu)仍存在。 直接刪除表中所有記錄的命令格式:ZAP 如要實(shí)施該操作,可直接在命令窗口內(nèi)輸入該命令,回車后會(huì)彈出確認(rèn)操作對(duì)話框,確認(rèn)命令執(zhí)行后,不能再恢復(fù)已被刪除的記錄。它相當(dāng)于下列兩個(gè)命

27、令的組合: delete all pack,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-40-,3.2.4 表記錄的修改,可利用表記錄的修改操作來修改表中某條記錄或某些記錄中相應(yīng)字段的字段值。表記錄的修改主要有兩種方式:逐條修改記錄內(nèi)容和成批修改記錄內(nèi)容。 1. 逐條修改記錄內(nèi)容 逐條修改記錄內(nèi)容的操作可在瀏覽窗口內(nèi)進(jìn)行。 (1) 記錄的定位 在Visual FoxPro中只能對(duì)記錄指針?biāo)傅漠?dāng)前記錄進(jìn)行操作,因此在修改記錄前,應(yīng)首先定位要修改的記錄,將其設(shè)為當(dāng)前操作記錄,才能進(jìn)行修改。在瀏覽窗口的最左側(cè)有一個(gè)黑色的三角箭頭,稱為記錄指針,記錄指針?biāo)傅挠涗浄Q為當(dāng)前記錄,每一個(gè)打開的

28、表都有一個(gè)記錄指針,用以指示當(dāng)前操作的記錄。移動(dòng)記錄指針至當(dāng)前要操作的記錄,稱為記錄的定位。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-41-,記錄的定位主要有以下3種方法: 直接用鼠標(biāo)單擊要定位的記錄即可。 單擊“表”|“轉(zhuǎn)到記錄”命令,打開“轉(zhuǎn)到記錄”的子菜單,如圖所示,根據(jù)要定位記錄所在的位置選擇相應(yīng)的命令。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-42-,使用記錄的定位命令,該命令主要有以下幾種,見表。,在使用定位命令時(shí)需要注意以下幾點(diǎn): 定位命令經(jīng)常與函數(shù)FOUND()、RECNO()、BOF()、EOF()配合使用來觀察定位效果。 文件開始是指第一條記錄的

29、前面而不是第一條記錄;文件結(jié)尾是指最后一條記錄的后面而不是最后一條記錄。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-43-,(2) 記錄的修改 在“瀏覽”窗口中,可直接編輯修改記錄內(nèi)容。若要修改字符型、數(shù)值型、邏輯型、日期型或日期時(shí)間型字段中的值,可以把光標(biāo)移動(dòng)當(dāng)前記錄的相應(yīng)字段中編輯修改內(nèi)容; 若要修改備注型或通用型字段中的值,可在瀏覽窗口中雙擊該字段或按【CTRL+PgDn】組合鍵,打開該字段的編輯窗口,再編輯修改該字段的內(nèi)容。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-44-,2. 成批修改記錄內(nèi)容 (1) 菜單方式 單擊“文件”|“打開”命令,打開“打開”對(duì)話框

30、,在對(duì)話框中選擇要打開的表。 單擊“顯示”|“瀏覽”命令,打開“瀏覽”窗口。 單擊“表”|“替換字段”命令,打開“替換字段”對(duì)話框。,在“替換字段”對(duì)話框中,可以在“字段”下拉列表框中選擇要修改的字段名;在“替換為”文本框中輸入要替換的表達(dá)式,或單擊文本框右側(cè)的“對(duì)話”按鈕,在打開的“表達(dá)式生成器”對(duì)話框中生成所需要替換的表達(dá)式;在“替換條件”欄中可以選擇替換記錄的范圍。設(shè)置好以后,單擊“替換”按鈕即可完成成批替換操作。在瀏覽窗口中可以看到修改后的結(jié)果。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-45-,(2) 命令方式 成批替換記錄的命令格式如下: REPLACE WITH AD

31、DITIVE , WITH ADDITIVE FOR 其中各參數(shù)的說明如下: WITH :用表達(dá)式i的值來替換字段名i的字段值。注意表達(dá)式類型和前面的字段類型應(yīng)該匹配。 ADDITIVE:把表達(dá)式的值追加到備注字段的原有內(nèi)容后面,而不是取代,但只用于備注字段。 :指定要修改的記錄范圍,如果命令中有for條件,缺省時(shí)默認(rèn)為所有記錄,如果命令中沒有for條件,缺省時(shí)默認(rèn)為當(dāng)前記錄。 FOR :指定對(duì)滿足條件的記錄作修改操作。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-46-,3.3 表的排序和索引,3.3.1 表的排序 3.3.2 表的索引,Visual FoxPro 6.0 程序設(shè)計(jì)

32、.課件,-47-,3.3.1 表的排序,排序是將表中記錄按某字段值順序重新排列,排序后產(chǎn)生一個(gè)新的表文件,原表文件不會(huì)被改變,這個(gè)新文件與原來表文件大小、格式完全相同,只是記錄的排列順序不相同。格式: SORT TO ON /A|/D/C, /A|/D/C FOR|WHILE FIELDS 排序時(shí)先按字段名1排序,若有兩個(gè)以上的記錄字段名1的值相同,則對(duì)這些記錄再按字段名2的值排序 /A|/D:分別表示升序或降序,缺省時(shí)按升序排序;/C:表示不區(qū)分字母的大小寫;FIELDS指定排序后形成的新表中應(yīng)包含的字段,缺省時(shí)默認(rèn)包含原表所有字段。 :如果命令中有for條件,缺省時(shí)默認(rèn)為所有記錄,如果命令

33、中沒有for條件,缺省時(shí)默認(rèn)為當(dāng)前記錄。 FOR|WHILE :指定對(duì)滿足條件的記錄作排序操作。 注意:用于排序的字段稱為排序關(guān)鍵字,只能是字符型、數(shù)值類型或日期類型,不可選用備注型或通用型字段作為排序關(guān)鍵字。當(dāng)關(guān)鍵字為字符型時(shí),按字符串的ASCII碼值大小排序,漢字字符一般是按照漢字的漢語拼音進(jìn)行排序。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-48-,例如,對(duì)學(xué)生信息表student按身高從低到高排序??稍诿畲翱谳斎胍韵旅睿?use student *.cdx)”,如圖所示,然后按照路徑找到索引文件所在位置,選中該索引文件,單擊“確定”按鈕。,Visual FoxPro 6

34、.0 程序設(shè)計(jì).課件,-57-,(2) 命令方式 打開索引文件的命令格式如下: SET INDEX TO ADDITIVE 其中,“索引文件名列表”指定要打開的索引文件,可以同時(shí)打開多個(gè)索引文件,其中第一個(gè)索引文件將成為主控索引。如果主控索引文件是單索引文件,則表處理的記錄順序按其索引順序進(jìn)行;如果主控索引文件是復(fù)合索引文件,則默認(rèn)索引項(xiàng)是它在創(chuàng)建時(shí)的第一個(gè)索引項(xiàng),如果要使用其他索引項(xiàng),還須具體指定。 ADDITIVE表示保留原先打開的索引文件。缺省時(shí),默認(rèn)除結(jié)構(gòu)復(fù)合索引文件外,其它打開的索引文件都將被關(guān)閉。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-58-,4. 設(shè)置主控索引 盡

35、管結(jié)構(gòu)復(fù)合索引在打開表時(shí)自動(dòng)打開,或者打開某個(gè)非結(jié)構(gòu)復(fù)合索引文件作為主控索引,但在使用某個(gè)特定索引項(xiàng)進(jìn)行查詢或需要按某個(gè)特定索引項(xiàng)的順序顯示記錄時(shí),必須指定當(dāng)前索引項(xiàng)。 設(shè)置主控索引的方法主要有菜單方式和命令方式兩種。 (1) 菜單方式 單擊“文件”|“打開”命令,或者單擊常用工具欄中的“打開”按鈕,打開“打開”對(duì)話框,在對(duì)話框中選擇要打開的表。 單擊“顯示”|“瀏覽”命令,打開“瀏覽”窗口。 單擊“表”|“屬性”命令,打開如下圖所示的“工作區(qū)屬性”對(duì)話框。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-59-,在對(duì)話框中,可以通過“索引順序”下方的下拉列表框來設(shè)置當(dāng)前的主控索引。單擊

36、“確定”按鈕后,在“瀏覽”窗口中的記錄將按照索引指定的順序排列。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-60-,(2) 命令方式 設(shè)置主控索引的命令格式如下: SET ORDER TO |TAG 其中各參數(shù)的說明如下: 數(shù)值表達(dá)式:指已打開索引的序號(hào),將該序號(hào)索引設(shè)置為主控索引。系統(tǒng)先為各單索引文件編號(hào),所以單索引文件總是排在前面。 單索引文件名:將指定的單索引文件設(shè)置為主控索引文件。 TAG :將索引標(biāo)識(shí)符所代表的索引項(xiàng)設(shè)置為主控索引。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-61-,5. 索引文件的關(guān)閉 關(guān)閉表時(shí),則該表所對(duì)應(yīng)的索引文件都會(huì)被關(guān)閉。若不關(guān)閉表,

37、單獨(dú)關(guān)閉索引文件的命令有如下兩種: SET INDEX TO CLOSE INDEXS 6. 索引的刪除 索引文件的刪除方法主要有菜單方式和命令方式兩種。 (1) 菜單方式 在“表設(shè)計(jì)器”對(duì)話框的“索引”選項(xiàng)卡中,選中要?jiǎng)h除的索引,單擊“刪除”按鈕即可刪除。 (2) 命令方式 刪除索引的命令格式如下: DELETE TAG ALL|, 其中,ALL表示刪除索引文件中所有索引,當(dāng)該索引文件的所有索引項(xiàng)都被刪除,則該索引文件也已刪除;表示刪除索引文件中指定索引項(xiàng)。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-62-,3.4 數(shù)據(jù)的檢索和統(tǒng)計(jì),3.4.1 數(shù)據(jù)的檢索 3.4.2 數(shù)據(jù)的統(tǒng)計(jì)

38、,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-63-,3.4.1 數(shù)據(jù)的檢索,數(shù)據(jù)的檢索就是按照指定條件在表中查找滿足條件的記錄數(shù)據(jù)。有兩類檢索命令:順序檢索和索引檢索。 1. 順序檢索 命令格式:LOCATE FOR 其中,F(xiàn)OR 表示所需滿足的條件;指定查找的記錄范圍,缺省時(shí),默認(rèn)為所有記錄。找到第一條滿足條件的記錄后,記錄指針就指向該記錄,否則,記錄指針就指向查找范圍的末尾或文件結(jié)束處。 LOCATE命令只能查找到當(dāng)前表中滿足條件的第一條記錄,若繼續(xù)往下查找滿足條件的記錄須用CONTINUE命令。CONTINUE命令須在LOCATE命令之后使用,否則出錯(cuò)。 例如,在表stude

39、nt中查找姓“王”的學(xué)生記錄: use student locate for姓名=王 disp continue disp,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-64-,2. 索引檢索 但在打開索引文件后,還可以使用FIND和SEEK兩條命令來進(jìn)行快速檢索。 (1) FIND命令 格式:FIND | 該命令用于在表的主控索引中查找關(guān)鍵字值與或相匹配的第一條記錄,若查找到,則記錄指針指向第一條滿足條件的記錄,否則指向文件尾,在主窗口的狀態(tài)條中顯示“沒有找到”。 在使用FIND命令時(shí)需要注意以下幾點(diǎn): FIND命令只能查找字符串或數(shù)值,而且表必須已按相應(yīng)字段建立了主控索引。 查找的

40、字符串一般可以不用定界符括起來(,),但前后有空格的,應(yīng)該要括起來。若要檢索字符型內(nèi)存變量,必須使用宏替換&函數(shù)。 本命令只能查找到當(dāng)前表中滿足條件的第一條記錄,若要繼續(xù)查找其他符合條件的記錄,可以使用SKIP命令。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-65-,(2) SEEK命令 格式: SEEK 該命令用于在表的主控索引中查找關(guān)鍵字值與相匹配的第一條記錄,若查找到,則記錄指針指向第一條滿足條件的記錄,否則指向文件尾,在主窗口的狀態(tài)條中顯示“沒有找到”。 在使用SEEK命令時(shí)需要注意以下幾點(diǎn): SEEK命令可以查找字符型、數(shù)值類型、日期類型和邏輯型,但表必須已按相應(yīng)字段建立

41、了主控索引,而且SEEK命令中的表達(dá)式的類型必須與建立索引的索引表達(dá)式的類型相匹配。 查找的字符串須用定界符括起來;日期型須用花括號(hào)括起來,但內(nèi)存變量可以直接查找,不必使用宏替換函數(shù)。 該命令只能查找到當(dāng)前表中滿足條件的第一條記錄,若要繼續(xù)查找其他符合條件的記錄,可以使用SKIP命令。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-66-,例如,在學(xué)生信息表student中查找姓“王”的學(xué)生記錄,可在命令窗口中輸入以下命令: use student index on 姓名tag 姓名 &按姓名升序建立索引 set order to tag 姓名 &設(shè)置姓名索引項(xiàng)為主控索引 seek 王

42、 &查找姓“王”的記錄 disp &在主控窗口中顯示該條記錄 skip &查找下一條符合條件的記錄 disp,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-67-,3.4.2 數(shù)據(jù)的統(tǒng)計(jì),1. 計(jì)數(shù)命令 該命令用于計(jì)算指定范圍內(nèi)滿足條件的記錄數(shù),其格式如下: COUNT FOR|WHILE TO :指定要計(jì)算的記錄范圍,缺省時(shí),默認(rèn)為所有記錄。 FOR|WHILE :指定對(duì)滿足條件的記錄計(jì)數(shù)。 TO :將記錄數(shù)保存到中,便于以后引用。缺省時(shí),直接將計(jì)數(shù)結(jié)果顯示在主窗口的狀態(tài)條中。 例如,統(tǒng)計(jì)學(xué)生信息表student中性別為男的學(xué)生數(shù),相應(yīng)的命令序列如下: use student cou

43、nt for 性別=男 命令執(zhí)行后在主窗口的狀態(tài)欄中能看到執(zhí)行結(jié)果。 2. 求和命令 SUM FOR|WHILE TO 該命令用于對(duì)中各個(gè)字段表達(dá)式分別求和。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-68-,3. 求平均值命令 AVERAGE FOR|WHILE TO 該命令用于對(duì)中各個(gè)字段表達(dá)式分別求平均值。 :指定要參加求平均值的記錄范圍,缺省時(shí),默認(rèn)為所有記錄。 FOR|WHILE :指定對(duì)滿足條件的記錄求平均值。 TO :將求平均值的結(jié)果保存到中的相對(duì)內(nèi)存變量中,便于以后引用。 例如,統(tǒng)計(jì)學(xué)生信息表student中所有學(xué)生的平均身高: use student averag

44、e 身高 4. 計(jì)算命令 CALCULATE FOR|WHILE TO 該命令用于對(duì)中各個(gè)字段表達(dá)式分別求計(jì)算結(jié)果。 :指定要求計(jì)算的表達(dá)式表,在表達(dá)式中至少應(yīng)包含一個(gè)系統(tǒng)規(guī)定的用于計(jì)算的函數(shù),常用的用于計(jì)算的函數(shù)見表3-5。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-69-,例如,統(tǒng)計(jì)學(xué)生信息表student中所有學(xué)生的平均身高,相應(yīng)的命令序列如下: use student calculate avg(身高),Visual FoxPro 6.0 程序設(shè)計(jì).課件,-70-,5匯總命令 匯總命令可對(duì)數(shù)據(jù)進(jìn)行分類合計(jì),比如按學(xué)號(hào)求某個(gè)學(xué)生的總成績等,命令格式如下: TOTAL ON O

45、N FIELDS FOR|WHILE 在按關(guān)鍵字排序的表中或已按相應(yīng)的關(guān)鍵字建立索引的表中按關(guān)鍵字段分組,求各組指定字段值的和,并將結(jié)果存入一個(gè)新表,新表以TO后指定的文件名命名。一組關(guān)鍵字相同的記錄在新表中產(chǎn)生一個(gè)記錄,對(duì)于非數(shù)值型字段,只將關(guān)鍵字值相同的第一個(gè)記錄的字段值放入該記錄。 FIELDS :指定要匯總的字段,缺省時(shí)對(duì)所有數(shù)值型字段匯總。 注意:在匯總前,當(dāng)前表必須按有序,即已按排序或建立相應(yīng)索引,否則不能匯總。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-71-,3.5 多表操作,3.5.1 工作區(qū) 3.5.2 多表關(guān)聯(lián),Visual FoxPro 6.0 程序設(shè)計(jì).課

46、件,-72-,3.5.1 工作區(qū),1. 基本概念 對(duì)表文件做任何操作之前都必須先打開該文件,實(shí)際上打開表就是把它從磁盤調(diào)入內(nèi)在的某一工作區(qū)中。Visual FoxPro支持32767個(gè)工作區(qū),編號(hào)從1到32767,一個(gè)工作區(qū)中只能打開一個(gè)表,一個(gè)表也只能在一個(gè)工作區(qū)中打開。若想同時(shí)使用多個(gè)表,就必須在多個(gè)工作區(qū)中打開多個(gè)表,但在任一時(shí)刻,只有一個(gè)工作區(qū)是當(dāng)前工作區(qū),用戶只能在當(dāng)前工作區(qū)中對(duì)當(dāng)前打開的表進(jìn)行操作。 2. 別名 前10個(gè)工作區(qū)除了可以使用110為編號(hào)外,還可分別使用AJ十個(gè)字母來表示,后者稱為工作區(qū)的別名。 其實(shí)表也有別名,用USE命令打開表時(shí),可以給表取一個(gè)別名,其命令格式如下:

47、 USE ALIAS 如果打開表時(shí)未對(duì)表取別名,系統(tǒng)將默認(rèn)表的別名與表名相同。 工作區(qū)除了可以使用132767數(shù)字編號(hào)來標(biāo)識(shí)外,還可以使用工作區(qū)內(nèi)打開的表的別名來標(biāo)識(shí)。 注意:不可以使用表名來標(biāo)識(shí),只能使用表的別名來標(biāo)識(shí);不同工作區(qū)中表的別名不能相同。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-73-,3. 工作區(qū)的選擇 在Visual FoxPro默認(rèn)情況下,使用的是1號(hào)工作區(qū),可以使用SELECT命令改變當(dāng)前工作區(qū),選擇工作區(qū)的命令格式如下: SELECT | 在使用SELECT命令時(shí)需要注意以下幾點(diǎn): 用SELECT命令選擇的工作區(qū)稱為當(dāng)前工作區(qū),如果不知道當(dāng)前的工作區(qū)號(hào),也

48、可以用函數(shù)SELECT()來查詢。 只有已打開的表才能在SELECT命令中使用其別名來選擇相應(yīng)的工作區(qū)。 命令“SELECT 0”表示選定當(dāng)前尚未使用的最小號(hào)工作區(qū)。 命令“USE IN |”可以在指定的工作區(qū)中打開表,但不能改變當(dāng)前工作區(qū),若要改變工作區(qū)仍需使用SELECT命令。 若要引用非當(dāng)前工作區(qū)中表的字段,需要在字段名前加一個(gè)前綴別名,引用格式如下:別名.字段名或別名-字段名。其中的別名一般指表的別名,也可以是工作區(qū)的別名。因?yàn)槊總€(gè)工作區(qū)中打開的表,系統(tǒng)設(shè)置各自的記錄指針,用以指示當(dāng)前記錄,所以對(duì)某工作區(qū)進(jìn)行與其他工作區(qū)無關(guān)的操作時(shí),其他工作區(qū)打開的表的記錄指針不發(fā)生變化。,Visua

49、l FoxPro 6.0 程序設(shè)計(jì).課件,-74-,3.5.2 多表關(guān)聯(lián),若要查詢多個(gè)相關(guān)表中的數(shù)據(jù)時(shí),常采用多表關(guān)聯(lián)。所謂關(guān)聯(lián),就是令不同工作區(qū)的記錄指針之間建立一種臨時(shí)的聯(lián)動(dòng)關(guān)系,使一個(gè)表的記錄指針移動(dòng)時(shí)另一個(gè)表的記錄指針能隨之移動(dòng)。 1. 表之間的關(guān)系 在建立多表關(guān)聯(lián)之前,應(yīng)先確定表之間的關(guān)系。根據(jù)表記錄之間的對(duì)應(yīng)關(guān)系,可以將表之間的關(guān)系分為三種:一對(duì)一關(guān)系、一對(duì)多關(guān)系和多對(duì)多關(guān)系。 (1)一對(duì)一關(guān)系:A表中的一條記錄只能對(duì)應(yīng)B表中的一條記錄,而B表中的一條記錄也只能對(duì)應(yīng)A表中的一條記錄。 (2)一對(duì)多關(guān)系:A表中的一條記錄可以對(duì)應(yīng)B表中多條記錄,但B表中的一條記錄只能對(duì)應(yīng)A表中的一條記

50、錄。一對(duì)一關(guān)系可以看作是一對(duì)多關(guān)系的特例。有時(shí)又稱B表和A表之間是多對(duì)一的關(guān)系。例例如,“學(xué)生信息表student”和“成績表cj”之間即為一對(duì)多的關(guān)系,一個(gè)學(xué)生選修多門課程,有多門課程成績。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-75-,(3)多對(duì)多關(guān)系:A表中的一條記錄可以對(duì)應(yīng)B表中多條記錄, B表中的一條記錄也可以對(duì)應(yīng)A表中的多條記錄。由于Visual FoxPro中不處理多對(duì)多關(guān)系,通常將多對(duì)多的關(guān)系通過一個(gè)“紐帶表”,轉(zhuǎn)換成兩個(gè)一對(duì)多的關(guān)系來實(shí)現(xiàn)。例例如,“學(xué)生信息表student”與“課程表course”之間的關(guān)系是多對(duì)多的關(guān)系,一個(gè)學(xué)生可以選修多門課程,一門課程可

51、供多名學(xué)生來選修。若要實(shí)現(xiàn)他們之間的關(guān)系,可以引入“成績表cj”來作為紐帶表。如圖3-27所示,在“成績表cj”中既有和“學(xué)生信息表student”相同的關(guān)鍵字“學(xué)號(hào)”,又有和“課程表course”相同的關(guān)鍵字“課程號(hào)”。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-76-,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-77-,2. 關(guān)聯(lián)的建立 建立關(guān)聯(lián)的兩個(gè)表,一個(gè)是父表,一個(gè)為子表,父表記錄指針移動(dòng)時(shí),子表的記錄指針將按照關(guān)聯(lián)條件相應(yīng)地移動(dòng)。關(guān)聯(lián)條件通常要求比較不同表的兩個(gè)字段或表達(dá)式值是否相等,因此在建立關(guān)聯(lián)前,應(yīng)先為子表的字段或表達(dá)式建立索引。 方法主要有兩種:菜單方

52、式和命令方式。對(duì)于建立的臨時(shí)關(guān)系,只要表關(guān)閉,則臨時(shí)關(guān)系不被保存。 (1) 菜單方式 可以在“數(shù)據(jù)工作期”窗口建立關(guān)聯(lián),其步驟如下: 打開需建立關(guān)聯(lián)的表。 按照關(guān)聯(lián)的關(guān)鍵字或表達(dá)式為子表建立索引并確定主控索引。 選定父表工作區(qū)為當(dāng)前工作區(qū),并與一個(gè)或多個(gè)子表建立關(guān)聯(lián)。默認(rèn)建立的是多對(duì)一關(guān)系,如果建立一對(duì)多關(guān)系,還要進(jìn)行一對(duì)多關(guān)系的設(shè)置。 【例3-1】 建立學(xué)生信息表student和成績表cj之間的關(guān)聯(lián),并查詢學(xué)生的學(xué)號(hào)、姓名、課程號(hào)和成績。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-78-,(2) 命令方式 SET RELATION TO INTO | , INTO |ADDITI

53、VE 該命令是將當(dāng)前工作區(qū)的表文件與或指定的工作區(qū)中打開的表文件按建立多對(duì)一關(guān)聯(lián)。當(dāng)前工作區(qū)中的表作為父表,|指定的工作區(qū)中的表作為子表。如果子表中沒有與關(guān)鍵字段值相同的記錄,則記錄指針指向文件尾??梢酝瑫r(shí)建立一個(gè)父表與多個(gè)子表之間的多對(duì)一關(guān)聯(lián)。 :表示建立關(guān)聯(lián)的依據(jù)。子表應(yīng)已依此建立主控索引。 |指定子表,可以用表的別名,也可用工作區(qū)的別名或工作區(qū)號(hào);ADDITIVE表示當(dāng)前表與其他工作區(qū)中的表已有的關(guān)聯(lián)仍有效,缺省時(shí),將取消當(dāng)前表與其他表已有的關(guān)聯(lián)。 【例3-2】 通過“學(xué)號(hào)”建立成績表cj與學(xué)生信息表student之間的多對(duì)一關(guān)聯(lián),并查詢學(xué)生的學(xué)號(hào)、姓名、課程號(hào)和成績。,Visual F

54、oxPro 6.0 程序設(shè)計(jì).課件,-79-,3. 關(guān)聯(lián)的取消 當(dāng)關(guān)聯(lián)不需要時(shí),可以用命令取消關(guān)聯(lián)。 可以用命令“SET RELATION TO”取消當(dāng)前表與其他表之間的所有關(guān)聯(lián),也可以用SET RELATION OFF INTO |,取消當(dāng)前表與指定工作區(qū)中的表之間的關(guān)聯(lián)。當(dāng)關(guān)閉表文件時(shí),該表的所有關(guān)聯(lián)也將被全部取消。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-80-,3.6 數(shù)據(jù)庫的基本操作,3.6.1 數(shù)據(jù)庫的創(chuàng)建 3.6.2 自由表與數(shù)據(jù)庫表 3.6.3 向數(shù)據(jù)庫中添加或移除表 3.6.4 數(shù)據(jù)詞典的使用,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-81-,3.6

55、.1數(shù)據(jù)庫的創(chuàng)建,在Visual FoxPro中,通過數(shù)據(jù)庫文件將相互聯(lián)系的數(shù)據(jù)庫表及相關(guān)的數(shù)據(jù)庫對(duì)象進(jìn)行統(tǒng)一組織和管理。數(shù)據(jù)庫文件實(shí)質(zhì)上也是一種表文件,其中記錄了它所包含的各種類型文件的信息。 一般先創(chuàng)建一個(gè)數(shù)據(jù)庫,然后才創(chuàng)建內(nèi)含于此數(shù)據(jù)庫的各個(gè)表。數(shù)據(jù)庫的創(chuàng)建方法常用的有兩種:菜單方式與命令方式。 1. 菜單方式 (1)單擊“文件”|“新建”命令,或者是單擊工具欄中的“新建”按鈕,打開“新建”對(duì)話框,按如圖3-34所示,選擇文件類型為“數(shù)據(jù)庫”,然后單擊“新建文件”按鈕,打開“創(chuàng)建”對(duì)話框。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-82-,圖3-34 “新建”對(duì)話框,圖3-3

56、5 “創(chuàng)建”對(duì)話框,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-83-,(2)在“創(chuàng)建”對(duì)話框中,選擇好保存路徑后,輸入要保存的數(shù)據(jù)庫文件的名稱,如圖3-35所示,默認(rèn)的保存類型為“數(shù)據(jù)庫”,擴(kuò)展名為.dbc,然后單擊“保存”按鈕,打開“數(shù)據(jù)庫設(shè)計(jì)器”窗口。此時(shí)Visual FoxPro系統(tǒng)菜單中多了“數(shù)據(jù)庫”菜單項(xiàng),同時(shí)在“數(shù)據(jù)庫設(shè)計(jì)器”窗口中還會(huì)彈出一個(gè)用來創(chuàng)建各項(xiàng)數(shù)據(jù)庫對(duì)象的“數(shù)據(jù)庫設(shè)計(jì)器”工具欄,方便用戶對(duì)數(shù)據(jù)庫的操作。 至此,數(shù)據(jù)庫文件建立完畢,與此相關(guān)的庫索引文件.dcx和備注文件.dct也一同自動(dòng)生成。這時(shí)新建的數(shù)據(jù)庫文件已經(jīng)被打開,但此時(shí)的數(shù)據(jù)庫中仍是一個(gè)空的數(shù)據(jù)庫,

57、沒有包含其他的文件。 2.命令方式 CREATE DATABASE 指定數(shù)據(jù)庫名,則會(huì)在系統(tǒng)默認(rèn)路徑下生成相應(yīng)的數(shù)據(jù)庫文件,如果不指定數(shù)據(jù)庫名,則會(huì)彈出“創(chuàng)建”對(duì)話框(見圖3-35),后續(xù)操作同菜單方式。使用命令建立數(shù)據(jù)庫后沒有打開數(shù)據(jù)庫設(shè)計(jì)器,但此時(shí)數(shù)據(jù)庫處于打開狀態(tài)。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-84-,3.6.2自由表與數(shù)據(jù)庫表,表是關(guān)系型數(shù)據(jù)庫系統(tǒng)中存儲(chǔ)數(shù)據(jù)的最基本單元,對(duì)表的操作也是最基本的操作。表文件可以在數(shù)據(jù)庫中創(chuàng)建,也可以單獨(dú)創(chuàng)建之后再添加到數(shù)據(jù)庫中,也可將數(shù)據(jù)庫中的表文件移出數(shù)據(jù)庫。根據(jù)表文件是否添加到數(shù)據(jù)庫中,將表分成了兩類:數(shù)據(jù)庫表和自由表。數(shù)據(jù)

58、庫表又稱為庫表,是屬于某個(gè)數(shù)據(jù)庫的表文件,而且只能屬于某一個(gè)數(shù)據(jù)庫;自由表是不屬于任何一個(gè)數(shù)據(jù)庫的表文件。在Visual FoxPro中創(chuàng)建表時(shí),如果當(dāng)前沒有打開數(shù)據(jù)庫,則創(chuàng)建的表是自由表,可以隨時(shí)將數(shù)據(jù)庫表移出數(shù)據(jù)庫,成為自由表,也可以將自由表添加到數(shù)據(jù)庫中,成為數(shù)據(jù)庫表。 數(shù)據(jù)庫表和自由表的基本結(jié)構(gòu)都是二維表,處理的方法基本相同。但通常為了建立表文件之間的關(guān)聯(lián),更好的管理表文件及表文件中的數(shù)據(jù),多數(shù)表文件都會(huì)建成庫表。 注意:在建立或使用數(shù)據(jù)庫中的表時(shí),都必須先打開數(shù)據(jù)庫,才能進(jìn)行相應(yīng)的操作。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-85-,3.6.3 向數(shù)據(jù)庫中添加表或從數(shù)

59、據(jù)庫移除表,1. 向數(shù)據(jù)庫中添加表 建立數(shù)據(jù)庫后,就可以向數(shù)據(jù)庫中添加表了,可以將自由表添加到數(shù)據(jù)庫中成為數(shù)據(jù)庫表。添加表主要有兩種方法:菜單方式和命令方式 (1) 菜單方式 單擊“文件”|“打開”命令,或者是單擊工具欄中的“打開”按鈕,打開“打開”對(duì)話框,在“文件類型”后的下拉列表框中選擇“數(shù)據(jù)庫(*.dbc)”,選擇要打開的數(shù)據(jù)庫文件,單擊“打開”按鈕,將打開該數(shù)據(jù)庫,同時(shí)“數(shù)據(jù)庫設(shè)計(jì)器”的窗口也將被打開。 選擇“數(shù)據(jù)庫”|“添加表”命令,或者單擊“數(shù)據(jù)庫設(shè)計(jì)器”工具欄中的“添加表”按鈕,或者在“數(shù)據(jù)庫設(shè)計(jì)器”的窗口中右擊,在彈出的快捷菜單中選擇“添加表”命令,打開“打開”對(duì)話框。 在“打開”對(duì)話框中,選擇要添加到數(shù)據(jù)庫中的表文件,單擊“確定”按鈕。如圖3-36所示,所要添加的表已被添加到數(shù)據(jù)庫中,成為數(shù)據(jù)庫表。,Visual FoxPro 6.0 程序設(shè)計(jì).課件,-86-,(2) 命令方式 ADD TABLE 指定表名,則將系統(tǒng)默認(rèn)路徑下相應(yīng)的表文件添加到當(dāng)前數(shù)據(jù)庫中,如不指定表名,則彈出“添加”對(duì)話框,在對(duì)話框中選擇要添加的表文件后,單擊“確定”按鈕即可。 注意:因?yàn)橐粋€(gè)表同一時(shí)間內(nèi)只能屬于一個(gè)數(shù)據(jù)庫,若想將一個(gè)數(shù)據(jù)庫表移到另一數(shù)據(jù)庫中,應(yīng)先將該表

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論