考點1 建立和使用數(shù)據(jù)庫
1數(shù)據(jù)庫的建立 (1)在項目管理器中建立數(shù)據(jù)庫。 (2)通過“新建”對話框建立數(shù)據(jù)庫。 (3)使用命令建立數(shù)據(jù)庫,格式為: CREATE DATABASE[DatabaseName |?] 2數(shù)據(jù)庫的打開 (1)在項目管理器中打開。 (2)通過“打開”對話框打開數(shù)據(jù)庫。 (3)使用命令打開數(shù)據(jù)庫,格式為: OPEN DATABASE[FileName |?][EXCLUSIVE I SHARED] [NOUPDATE] [VALIDATE]
考點2 修改和刪除數(shù)據(jù)庫
Visual FoxPro在建立數(shù)據(jù)庫時建立了擴展名分別為dbc、dct和dcx的3個文件,用戶不能直接修改這些文件。 Visual FoxPro中修改數(shù)據(jù)庫實際是打開數(shù)據(jù)庫設(shè)計器,完成數(shù)據(jù)庫中各種對象的建立、修改和刪除等操作。 可以有3種方法打開數(shù)據(jù)庫設(shè)計器。 (1)從項目管理器中打開數(shù)據(jù)庫設(shè)計器。 (2)從“打開”對話框中打開數(shù)據(jù)庫設(shè)計器。 (3)使用命令打開數(shù)據(jù)庫設(shè)計器,格式為: MODIFY DATABASE[DatabaseName|?] 在項目管理器中不管刪除還是移去數(shù)據(jù)庫文件,都不會刪除其所包含的各個對象做口數(shù)據(jù)表)。如果要在刪除數(shù)據(jù)庫的同時刪除其所包含的數(shù)據(jù)表,就必須使用命令,格式為: DELETE DATABASE DatabaseName|?[DELETETABLES][RECYCLE] 小提示: 在Visual FoxPro中,Open DataBase和Modify DataBase命令的區(qū)別在于:Open DataBase打開的只是數(shù)據(jù)庫的工作環(huán)境,并不會進入數(shù)據(jù)庫設(shè)計器;Modify DataBase是打開數(shù)據(jù)庫設(shè)計器。
4.2 建立數(shù)據(jù)庫表
考點3 在數(shù)據(jù)庫中建立表
在數(shù)據(jù)庫中建立數(shù)據(jù)表,最直接的方法就是在數(shù)據(jù)庫設(shè)計器中利用鼠標(biāo)右鍵單擊空白處,選擇“新建表”命令,在彈出的表設(shè)計器中設(shè)置數(shù)據(jù)表結(jié)構(gòu)。另外可以在命令窗口利用OPEN DATA命令先打開數(shù)據(jù)庫,然后利用CREATE命令打開表設(shè)計器進行數(shù)據(jù)表設(shè)計,如圖4-l所示。  圖4-1 表設(shè)計器 1字段名 (l)自由表字段名最長為10個字符。 (2)數(shù)據(jù)庫表字段名最長為128個字符。 (3)字段名必須以字母或漢字開頭。 (4)字段名可以由字母、漢字、數(shù)字和下劃線組成。 (5)字段名中不能包含空格。 2字段類型和寬度 (1)字符型:可以是字母、數(shù)字等各種字符型文本,如用戶名稱。 (2)貨幣型:貨幣單位,如貨物價格。 (3)數(shù)值型:整數(shù)或小數(shù),如訂貨數(shù)量。 (3)浮點型:功能類似于“數(shù)值型”,其長度在表中最長可達20位。 (4)日期型:由年、月、日構(gòu)成的數(shù)據(jù)類型,如訂貨日期。 (5)日期時間型:由年、月、日、時、分、秒構(gòu)成的數(shù)據(jù)類型,如員工上班的時間。 (6)雙精度型:雙精度數(shù)慎類型,一般用于要求精度很高的數(shù)據(jù)。 (7)整型:不帶小數(shù)點的數(shù)值類型,如訂單的行數(shù)。 (8)邏輯型:值為“真”( .T.)或假(.F.),如表示訂單是否已執(zhí)行完。 (9)備注型:不定長的字符型文本。在表中占4個字節(jié),表備注型文件的擴展名為FPT。 (10)通用型:用于標(biāo)記電子表格、文檔、圖片等OLE對象,在表中占4個字節(jié)。 (11)字符型(二進制)。 (12)備注型(二進制)。 3空值 一個字段是否允許為空值與實際應(yīng)用有關(guān),比如作為關(guān)鍵字的字段是不允許為空值的,而那些在插入記錄時允許暫缺的字段值往往允許為空值。 4字段有效性組框 在字段有效性組框中可以定義字段的有效性規(guī)則、違反規(guī)則時的提示信息和字段的默認值。 5顯示組框 在顯示組框下可以定義字段顯示的格式、輸入的掩碼和字段的標(biāo)題。輸入掩碼是字段的一種屬性,用限制或控制用戶輸入的格式。標(biāo)題用于字段顯示時的標(biāo)題,如果不指定標(biāo)題則顯示字段名。當(dāng)字段名是英文或縮寫時,則通過指定標(biāo)題可以使界面更友好。 6字段注釋 可以為每個字段添加注釋,便于日后或其他人對數(shù)據(jù)庫進行維護。
考點4 修改表結(jié)構(gòu)
在Visual FoxPro中可以對表結(jié)構(gòu)任意修改,修改表結(jié)構(gòu)和建立表結(jié)構(gòu)時,表設(shè)計器界面完全一樣。修改數(shù)據(jù)表結(jié)構(gòu)時,首先應(yīng)該用USE命令打開要修改的數(shù)據(jù)表,然后利用MODIFY STRUCTURE打開表設(shè)計器進行修改,具體操作有以下幾種。 (1)修改已有字段。 (2)添加新字段。 (3)刪除不用的字段。
4.3 表的基本操作
考點5 使用瀏覽器操作表
在交互式工作方式下,最簡單、方便的方法就是使用BROWSE瀏覽器瀏覽表,打開瀏覽器的方法有多種。在項目管理器中將數(shù)據(jù)庫展開至表,然后單擊“瀏覽”按鈕,或直接在窗口中輸入BROWSE命令(首先應(yīng)該打開表文件)。 1瀏覽器操作 (1)下一記錄(下箭頭鍵)。 (2)前一記錄(上箭頭鍵)。 (3)下一頁(PageDown鍵)。 (4)上一頁(PageUp鍵)。 (5)下一字段(Tab鍵)。 (6)前一字段(Shift+Tab鍵)。 2修改記錄 只需將光標(biāo)定位到要修改的記錄和字段上,就可以進行修改了。 3刪除記錄 Visual FoxPro中刪除記錄有邏輯刪除和物理刪除兩種,邏輯刪除只在記錄旁做刪除標(biāo)記(如圖4-2所示),必要時可以進行恢復(fù)物理刪除是在邏輯刪除的基礎(chǔ)上真正地將記錄從表中刪除。要在瀏覽器中刪除有刪除標(biāo)記的記錄,可選擇“表/徹底刪除”菜單命令。 圖4-2 增加和刪除記錄

考點6 增加、刪除、修改和顯示記錄的命令
1增加記錄 APPEND命令是在表的尾部增加記錄,格式有如下兩種。 格式1:APPEND 格式2:APPEND BLANK 2插入記錄 格式:INSERT [BEFORE][BLANK] 3刪除記錄 刪除記錄有物理刪除和邏輯刪除兩種,Visual FoxPro用來刪除記錄的命令如下。 (1)設(shè)置刪除標(biāo)記的命令 格式:DELETE [FOR lExpressionl] 說明:如果不使用FOR短語指定邏輯條件,則只刪除當(dāng)前記錄,否則邏輯刪除滿足條件的所有記錄。 (2)恢復(fù)記錄的命令。 格式:RECALL [FOR lExpressionl] 說明:使用該命令恢復(fù)表中邏輯刪除的記錄,短語FOR的功能同上。 (3)物理刪除有刪除標(biāo)記的記錄 格式:PACK 說明:此命令用來物理刪除當(dāng)前表中所有帶刪除標(biāo)記的記錄。 (4)物理刪除表中的全部記錄 格式:ZAP 說明:不管表中記錄是否帶有刪除標(biāo)記,此命令可以一次性將當(dāng)前表中的記錄全部物理刪除,但表結(jié)構(gòu)仍保留使用此命令相當(dāng)于DELETE ALL與 PACK的連用。 4修改記錄 在Visual FoxPro中可以交互修改記錄,也可以用指定值直接修改記錄。 (1)用EDIT或CHANGE命令交互式修改。 (2)用REPLACE命令直接修改。 5顯示記錄 格式:LIST/DISPLAY [[FIELDS]FieldList][FOR LExpressionl][OFF] [TO PRINTER[PROMPT]|TO FILE FileName]
考點7 查詢定位的命令
(1)用GOTO命令直接定位 (2)SKIP命令 (3)用LOCATE命令定位。 LOCATE命令是按條件定位記錄位置,格式為: LOCATE FOR IExpressionl LOCATE命令常用結(jié)構(gòu)如下。 LOCATE FOR IExpression1 DO WHILE FOUND() ****處理數(shù)據(jù)*** CONTINUE ENDDO 小提示: 連續(xù)使用DELETE ALL和PACK命令,其操作結(jié)果與ZAP命令一樣,都可以將表中的所有記錄一次性物理刪除。
4.4 索引與排序
考點8 索引的基本概念
索引是對表中的記錄按照某種邏輯順序重新排列。 (l)主索引:在指定的字段或表達式中不允許出現(xiàn)重復(fù)值的索引,且一個表只能創(chuàng)建一個主索引。 (2)候選索引:具有與主索引相同的性質(zhì)和功能,但一個表中可以創(chuàng)建多個候選索引,其指定的字段或表達式中也不允許出現(xiàn)重復(fù)值。 (3)唯一索引:它的“唯一性”是指索引項的唯一,而不是字段值的唯一。但在使用該索引時,重復(fù)的索引段值只有唯一一個值出現(xiàn)在索引項中。 (4)普通索引:不僅允許字段中出現(xiàn)重復(fù)值,并且索引項中也允許出現(xiàn)重復(fù)值。
考點9 索引的建立
1單項索引 在表設(shè)計器界面中有“字段”、“索引”和“表"3個選項卡,在“字段”選項卡中定義字段時就可以直接指定某些字段是否為索引項,用鼠標(biāo)單擊定義索引的下拉列表框可以看到3個選項:無、升序和降序(默認是無)。如果選定升序或降序,則在對應(yīng)的字段上建立一個普通索引,索引名與字段名同名,索引表達式就是對應(yīng)的字段。 2復(fù)合字段索引 (1)在“索引”選項卡中的索引名欄目中輸入索引名。 (2)在索引類型的下拉框中選擇索引類型。 (3)單擊表達式欄右側(cè)的按鈕,打開表達式生成器。 (4)在“表達式”文本框中輸入索引表達式(如圖4-3所示),最后單擊“確定”按鈕。  圖4-3 表達式生成器界面
3使用命令建立索引 格式:INDEX ON eExpression TO IDXFileName | TAG TagName[OF CDXFileName] [FOR lExpression][COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] 從索引的組織方式來講,索引共有3種類型。 (1)單獨的IDX索引,是一種非結(jié)構(gòu)索引。 (2)采用非默認名的CDX索引,也是一種非結(jié)構(gòu)復(fù)合索引。 (3)與表同名的CDX索引,是結(jié)構(gòu)復(fù)合索引。 結(jié)構(gòu)復(fù)合索引文件可隨表的打開而打開,在同一個索引文件中能包含多個索引方案或索引關(guān)鍵字,在添加、更改或刪除記錄時自動維護索引。
考點10 索引的使用
(l)打開索引文件,格式為: SET INDEX TO Indexfilelist (2)設(shè)置當(dāng)前索引,格式為: SET ORDER TO[nIndexNumber |[TAG]TagName][ASCENDING|DESCENDING] (3)使用索引快速定位,格式為: SEEK eExpression[ORDER nIndexNumber|[TAG]TagName][ASCENDING| DESCENDING] (4)刪除索引,格式為: DELETE TAG TagNamel &&TagName1為索引名 要刪除全部索引,可使用命令:DELETE TAG ALL
考點11 排序
索引可以使用戶按照某種順序瀏覽或查找表中的記錄,這種順序是邏輯的,如要對表中的記錄按物理順序重新排列,可使用SORT命令,格式為: SORT TO TableName ON FieldNainel[/A}/D][/C][,F(xiàn)ieldName2[/A|/D][/C]…][ASCEND ING | DESCENDING][FOR lExpressionl][FIELDS FieldNameList]
小提示: 在數(shù)據(jù)庫表中只能有一個主索引,且只能在表設(shè)計器中建立。其他3種索引可以建立多個,既能在表設(shè)計器中建立,也能以命令方式建立,但在自由表中不能為其創(chuàng)建主索引,只能創(chuàng)建后3種索引,同樣也可以建立多個。
4.5 數(shù)據(jù)完整性
考點12 實體完整性與主關(guān)鍵字
(1)實體完整性是保證表中記錄唯一的特性,即在同一個表中不允許有重復(fù)的記錄出現(xiàn)。在Visual Pro中通過主索引和候選索引來保證數(shù)據(jù)的實體完整性。 (2)如果一個字段的值或幾個字段的值能夠唯一標(biāo)志表中的一條記錄,則稱這個字段為候選關(guān)鍵字。在Visual FoxPro中將主關(guān)鍵字稱做主索引,將候選關(guān)鍵字稱為候選索引。
考點13 參照完整性與表之間的關(guān)聯(lián)
1建立表之間的聯(lián)系 參照完整性與表之間的聯(lián)系有關(guān),其含義大致是:當(dāng)插入、刪除或修改一個表中的數(shù)據(jù)時,通過參照引用相互關(guān)聯(lián)的另一個表中的數(shù)據(jù),檢查對表的數(shù)據(jù)操作是否正確。 在數(shù)據(jù)庫設(shè)計器中設(shè)計表之間的聯(lián)系時,要在父表中建立主索引,在子表中建立普通索引,然后通過父表主索引和子表的普通索引建立起兩個表之間的聯(lián)系。 2設(shè)置參照完整性約束 建立參照完整性之前,首先必須清理數(shù)據(jù)庫,即物理刪除表中被邏輯刪除的記錄,然后選擇兩個關(guān)聯(lián)表之間的連線并選擇“數(shù)據(jù)庫”、“編輯參照完整性”菜單命令,打開如圖4-4所示的“參照完整性生成器”對話框。  圖4-4 “參照完整性生成器”對話框
小提示: 欲建立兩表之間的聯(lián)系,首先用鼠標(biāo)選中一個表的主索引,按住鼠標(biāo)左鍵不放,并拖動鼠標(biāo)到另一個表的索引上,這時鼠標(biāo)箭頭變成小矩形狀,最后釋放鼠標(biāo)。
4.6 自由表
考點14 數(shù)據(jù)庫表與自由表 自由表是不屬于任何數(shù)據(jù)庫的表。在沒有打開數(shù)據(jù)庫時,所建立的表就是自由表。數(shù)據(jù)庫表與自由表之間可以相互轉(zhuǎn)化。 1建立自由表的方法 (1)在項目的“數(shù)據(jù)”選項卡中選擇“自由表”,單擊“新建”按鈕。 (2)在沒有打開數(shù)據(jù)庫的情況下,通過“新建”對話框,選擇“表”并單擊“新建文件”按鈕。 (3)在沒有打開數(shù)據(jù)庫的情況下,在命令窗口輸入CREATE命令,新建自由表。 2數(shù)據(jù)庫表相對于自由表的特點 (l)數(shù)據(jù)庫表可以使用長表名,在表中可以使用長字段名。 (2)可以為數(shù)據(jù)庫表中的字段指定標(biāo)題和添加注釋。 (3)可以為數(shù)據(jù)庫表中的字段指定默認值和輸入掩碼。 (4)數(shù)據(jù)庫表的字段有默認的控件類。 (5)可以為數(shù)據(jù)庫表規(guī)定字段級規(guī)則和記錄級規(guī)則。 (6)數(shù)據(jù)庫表支持主關(guān)鍵字、參照完整性和表之間的聯(lián)系。 (7)支持INSERT,UPDATE和DELETE事件的觸發(fā)器。
考點15 將自由表添加到數(shù)據(jù)庫中 (1)在數(shù)據(jù)庫設(shè)計器中可利用“數(shù)據(jù)庫”→“添加表”菜單命令,在“打開”對話框中選擇自由表文件,將其添加到數(shù)據(jù)庫中。 (2)直接用命令方式將自由表添加到當(dāng)前數(shù)據(jù)庫中,格式為: ADD TABLE TableName|?[NAME LongTableName]
考點16 從數(shù)據(jù)庫中移出表
(1)直接利用命令移出數(shù)據(jù)庫表,格式為: REMOVE TABLE TableName |?[DELETE][RECYCLE] (2)從項目管理器中移出數(shù)據(jù)庫。 (3)從數(shù)據(jù)庫設(shè)計器中移出數(shù)據(jù)庫。
4.7 多個表的同時使用 在Visual FoxPro中,一次可以打開多個數(shù)據(jù)庫,每個數(shù)據(jù)庫都可以打開多個數(shù)據(jù)表。
考點17 多工作區(qū)的概念
指定工作區(qū)的命令格式為SELECT nWorkArea | cTableAlias,每個表打開后都有兩個默認別名,一個是表的自身名,另一個是工作區(qū)所對應(yīng)的別名。在前10個工作區(qū)中指定的默認別名是工作區(qū)字母A~J,其后面的工作區(qū)所對應(yīng)的別名為W11~W32767。 另外還可以在USE命令中通過ALIAS短語指定表別名。 例如:USE學(xué)生表IN 1 ALIAS student,為學(xué)生表指定了別名student。
考點18 使用不同工作區(qū)的表
除了使用SELECT命令切換不同的工作區(qū)之外,也可以在一個工作區(qū)使用其他工作區(qū)的數(shù)據(jù)表。即通過短語:IN nWorkArea|cTableAlias。在表別名后加上“.”或“->”操作符,可在一個工作區(qū)中直接調(diào)用其他工作區(qū)中數(shù)據(jù)表的記錄。例如當(dāng)前工作區(qū)號為2,要調(diào)用1區(qū)上學(xué)生表中的班級號的相關(guān)字段,可使用命令: 學(xué)生表.班級號 或?qū)W生表->班級號或A.班級號或A ->班級號
考點19 表之間的關(guān)聯(lián)
使用SET RELATION命令建立表間記錄指針的臨時聯(lián)系(關(guān)聯(lián))。 格式:SET RELATION TO eExpressionl INTO nWorkAreal I cTableAliasl。 說明:eExpressionl是指建立臨時聯(lián)系的索引關(guān)鍵字,一般是父表的主索引,子表的普通索引。用工作區(qū)號 nWorkAreal或表的別名cTableAlias I說明臨時聯(lián)系是由當(dāng)前工作區(qū)的表到哪個表。 利用SET RELATION TO命令將取消當(dāng)前表到所有表的臨時聯(lián)系。 |