中職2022-2023學(xué)年第2章 數(shù)據(jù)庫(kù)和表的管理課件_第1頁(yè)
中職2022-2023學(xué)年第2章 數(shù)據(jù)庫(kù)和表的管理課件_第2頁(yè)
中職2022-2023學(xué)年第2章 數(shù)據(jù)庫(kù)和表的管理課件_第3頁(yè)
中職2022-2023學(xué)年第2章 數(shù)據(jù)庫(kù)和表的管理課件_第4頁(yè)
中職2022-2023學(xué)年第2章 數(shù)據(jù)庫(kù)和表的管理課件_第5頁(yè)
已閱讀5頁(yè),還剩42頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、(中職)2022-2023學(xué)年第2章 數(shù)據(jù)庫(kù)和表的管理ppt課件2.1第 2 章數(shù)據(jù)庫(kù)和表的管理在 Visual FoxPro 6.0 中,數(shù)據(jù)庫(kù)文件是表、視圖、連接、關(guān)系和存儲(chǔ)過(guò)程等文件的集合。數(shù)據(jù)庫(kù)類(lèi)似一個(gè)容器,記錄了其他各種類(lèi)型文件的信息,例如文件名、保存位置等??梢园堰壿嬒嚓P(guān)的表文件、本地視圖文件、遠(yuǎn)程視圖文件和存儲(chǔ)過(guò)程等多種元素包含進(jìn)來(lái)進(jìn)行組織管理?!景咐?3】創(chuàng)建“員工”數(shù)據(jù)庫(kù)案例描述數(shù)據(jù)庫(kù)文件實(shí)質(zhì)就是 Visual FoxPro 6.0 的一種表文件,記錄了其他各種類(lèi)型文件的信息。表文件可以在數(shù)據(jù)庫(kù)中創(chuàng)建,也可以單獨(dú)創(chuàng)建之后再添加到數(shù)據(jù)庫(kù)中。數(shù)據(jù)庫(kù)文件的擴(kuò)展名是.dbc,與此數(shù)據(jù)

2、庫(kù)關(guān)聯(lián)的同名備注文件的擴(kuò)展名是.dct,同名索引文件的擴(kuò)展名是.dcx。本案例以創(chuàng)建“員工”數(shù)據(jù)庫(kù)為基礎(chǔ),維護(hù)員工數(shù)據(jù)庫(kù)。相關(guān)知識(shí)1數(shù)據(jù)庫(kù)設(shè)計(jì)器的使用在數(shù)據(jù)庫(kù)設(shè)計(jì)器中可控制字段怎樣顯示或鍵入字段中的值,還可以添加視圖并連接到一個(gè)數(shù)據(jù)庫(kù)中,用來(lái)更新記錄或者擴(kuò)充訪問(wèn)遠(yuǎn)程數(shù)據(jù)的能力,如圖 2-1-7 所示。圖 2-1-7“數(shù)據(jù)庫(kù)設(shè)計(jì)器”窗口在“數(shù)據(jù)庫(kù)設(shè)計(jì)器”工具欄中,各個(gè)按鈕作用如表 2-1-1 所示。2使用“項(xiàng)目管理器”管理數(shù)據(jù)庫(kù)(1)添加和刪除數(shù)據(jù)庫(kù)可以使用“項(xiàng)目管理器”添加已有的文件或者用它來(lái)創(chuàng)建新的文件。例如,想把一些已有的擴(kuò)展名為“.dbf”的表添加到項(xiàng)目中,只需要在“數(shù)據(jù)”選項(xiàng)卡中選擇“

3、自由表”選項(xiàng),然后單擊“添加”按鈕把它們添加到項(xiàng)目中。如果要從項(xiàng)目中移去文件,可先選定要移去的內(nèi)容,然后單擊“移去”按鈕,打開(kāi)刪除提示框,并在提示框中單擊“移去”按鈕,如圖 2-1-8 所示。移去只是將數(shù)據(jù)從項(xiàng)目中移動(dòng)到項(xiàng)目外,文件依然存在,如果要徹底刪除該文件,應(yīng)在提示框中單擊“刪除”按鈕。(2)修改數(shù)據(jù)庫(kù)圖 2-1-8刪除數(shù)據(jù)庫(kù)“項(xiàng)目管理器”簡(jiǎn)化了創(chuàng)建和修改文件的過(guò)程。用戶(hù)只需選定要?jiǎng)?chuàng)建或修改的文件類(lèi)型,然后單擊“新建”或“修改”按鈕,Visual FoxPro 6.0 將顯示與所選文件類(lèi)型相應(yīng)的設(shè)計(jì)工具。如果要?jiǎng)?chuàng)建添加到“項(xiàng)目管理器”中的文件,可以先選定要?jiǎng)?chuàng)建的文件類(lèi)型,然后單擊“新建文

4、件”按鈕。對(duì)于某些項(xiàng),可以利用向?qū)?lái)創(chuàng)建文件。如果要修改文件,可以先選定一個(gè)已有的文件,然后單擊“修改”按鈕。例如,要修改一個(gè)表,先選定表的名稱(chēng),然后單擊“修改”按鈕,該表便顯示在“表設(shè)計(jì)器”中。(3)為文件添加說(shuō)明創(chuàng)建或添加新的文件時(shí),可以為文件加上說(shuō)明。文件被選定時(shí),其說(shuō)明將顯示在“項(xiàng)目管理器”的底部。如果要為文件添加說(shuō)明,可以先在“項(xiàng)目管理器”中選定文件,然后單擊“項(xiàng)目”菜單,在項(xiàng)目列表中單擊“編輯說(shuō)明”命令,在打開(kāi)的“說(shuō)明”對(duì)話框中鍵入該文件的說(shuō)明,如圖 2-1-9 所示,最后單擊“確定”按鈕。圖 2-1-9添加說(shuō)明3創(chuàng)建和管理數(shù)據(jù)庫(kù)的相關(guān)命令(1)創(chuàng)建數(shù)據(jù)庫(kù)CREATE DATABA

5、SE |?其中,用于指定創(chuàng)建數(shù)據(jù)庫(kù)的位置、文件名。如果不指定數(shù)據(jù)庫(kù)名或者在命令后加“?”,則會(huì)打開(kāi)“創(chuàng)建”對(duì)話框。(2)打開(kāi)數(shù)據(jù)庫(kù)OPEN DATABASE |?EXCLUSIVE|SHAREDNOUPDATE打開(kāi)一個(gè)數(shù)據(jù)庫(kù),如果不指定文件名或者在命令后加“?”,則會(huì)打開(kāi)“打開(kāi)”對(duì)話框。EXCLUSIVE表示以獨(dú)占的方式打開(kāi)數(shù)據(jù)庫(kù);SHARED 表示以共享的方式打開(kāi)數(shù)據(jù)庫(kù);NOUPDATE 表示不能對(duì)數(shù)據(jù)庫(kù)進(jìn)行任何修改。(3)修改數(shù)據(jù)庫(kù)MODIFY DATABASE |?NOWAITNOEDIT打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器,交互地修改當(dāng)前數(shù)據(jù)庫(kù),如果不指定數(shù)據(jù)庫(kù)名或者在命令后加“?”,則會(huì)打開(kāi)“創(chuàng)建”對(duì)話

6、框。NOWAIT 表示在打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器后繼續(xù)程序的執(zhí)行,不必等待數(shù)據(jù)庫(kù)設(shè)計(jì)器關(guān)閉;NOEDIT 表示禁止修改數(shù)據(jù)庫(kù)。(4)關(guān)閉數(shù)據(jù)庫(kù)CLOSEDATABASES關(guān)閉當(dāng)前的數(shù)據(jù)庫(kù)和表,如果沒(méi)有當(dāng)前數(shù)據(jù)庫(kù),則關(guān)閉所有打開(kāi)的自由表。(5)刪除數(shù)據(jù)庫(kù)DELETE DATABASE |?DELETETABLESRECYCLE從磁盤(pán)上刪除數(shù)據(jù)庫(kù),如果不指定數(shù)據(jù)庫(kù)名或者在命令后加“?”,則會(huì)打開(kāi)“打開(kāi)”對(duì)話框。DELETETABLES 表示從磁盤(pán)上刪除包含在數(shù)據(jù)庫(kù)中的表;RECYCLE 表示將刪除的數(shù)據(jù)庫(kù)放入回收站。(6)查看和設(shè)置數(shù)據(jù)庫(kù)的屬性DBGETPROP(cName,cType,cPcoperty

7、)DBSETPROP(cName,Ctype,cProperty,eProperty Value)其中,cName 指定想要查看或設(shè)置屬性的數(shù)據(jù)庫(kù)、表、視圖、字段或命名連接的名字;cType指定 cName 所代表的類(lèi)型(是數(shù)據(jù)庫(kù)、表、視圖、字段還是命名連接);cProperty 指定想要查看或設(shè)置的屬性;eProperty Value 指定想要設(shè)置的屬性值。例如,下面的代碼顯示“工資”的版本號(hào)。?DBGETPROP(工資,database,version)2.2返回值表示 Visual FoxPro 6.0 中數(shù)據(jù)庫(kù)(.dbc)的版本號(hào),它是只讀的。如果數(shù)據(jù)有注釋?zhuān)捎猛瑯拥暮瘮?shù)查看:?DB

8、GETPROP(工資,database,comment)與 version 屬性不同,comment 屬性即可讀又可寫(xiě)。用 DBGETPROP()函數(shù)可以輸入描述或其他要存儲(chǔ)在數(shù)據(jù)庫(kù)中的文本:?DBGETPROP(工資,database,comment,本數(shù)據(jù)庫(kù)用于工資管理系統(tǒng))【案例 4】創(chuàng)建“在職職工”表案例描述表是處理數(shù)據(jù)和建立關(guān)系型數(shù)據(jù)庫(kù)及應(yīng)用程序的基本單元。表的操作包括處理當(dāng)前存儲(chǔ)于表中的信息、定制已有的表或者創(chuàng)建自定義的表來(lái)存儲(chǔ)數(shù)據(jù)。在 Visual FoxPro 6.0 中有兩種表:數(shù)據(jù)庫(kù)表和自由表。數(shù)據(jù)庫(kù)表是數(shù)據(jù)庫(kù)的一部分,而自由表是獨(dú)立存在于任何數(shù)據(jù)庫(kù)之外的。接下來(lái)以創(chuàng)建“在

9、職職工”表為基礎(chǔ)新建表。相關(guān)知識(shí)如果把若干個(gè)表放入數(shù)據(jù)庫(kù),可減少冗余數(shù)據(jù)的存儲(chǔ),保護(hù)數(shù)據(jù)的完整性。表文件可以在數(shù)據(jù)庫(kù)中創(chuàng)建,也可以單獨(dú)創(chuàng)建之后再添加到數(shù)據(jù)庫(kù)中。當(dāng)然,也可以不把表文件添加到數(shù)據(jù)庫(kù)中或?qū)?shù)據(jù)庫(kù)中的表文件移出。根據(jù)表文件是否被添加到數(shù)據(jù)庫(kù)中,將表分為兩類(lèi):數(shù)據(jù)庫(kù)表和自由表。1查看數(shù)據(jù)庫(kù)中的表“項(xiàng)目管理器”使用類(lèi)似于 Windows 的“資源管理器”的方法來(lái)組織和管理文件,以目錄樹(shù)的方式分層列出各類(lèi)文件,在每類(lèi)文件名的左邊都有一個(gè)圖標(biāo)標(biāo)識(shí)文件類(lèi)型。如果某項(xiàng)前有加號(hào)標(biāo)志,說(shuō)明它還包含下一級(jí)內(nèi)容,可以將其展開(kāi)或折疊,以便查看不同層次中的詳細(xì)內(nèi)容。如果項(xiàng)目中具有一個(gè)以上某一類(lèi)型的項(xiàng),其類(lèi)型

10、符號(hào)旁邊會(huì)出現(xiàn)一個(gè)“ ”。單擊該“ ”可以顯示項(xiàng)目中該類(lèi)型項(xiàng)的名稱(chēng),單擊項(xiàng)目旁邊的“ ”可以看到該項(xiàng)的組件。例如,單擊“員工”符號(hào)旁邊的“ ”,可以看到項(xiàng)目中員工數(shù)據(jù)庫(kù)中的表、本地視圖、遠(yuǎn)程視圖、連接和存儲(chǔ)過(guò)程,如圖 2-2-5 所示。(a)展開(kāi)前2管理表的相關(guān)命令(1)創(chuàng)建表CREATE |?圖 2-2-5查看數(shù)據(jù)庫(kù)(b)展開(kāi)后ADD生成一個(gè)新表。如果不指定文件名或者在命令后加“?”,則會(huì)打開(kāi)“創(chuàng)建”對(duì)話框,提示為正在創(chuàng)建的表命名。(2)向數(shù)據(jù)庫(kù)中添加表TABLE |?NAME 長(zhǎng)表名向當(dāng)前數(shù)據(jù)庫(kù)中添加表。(3)從表中移去相應(yīng)的數(shù)據(jù)庫(kù)信息FREE TABALE 表名如果偶然從磁盤(pán)上刪除了一個(gè)

11、數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)中的表仍然保留著對(duì)該數(shù)據(jù)庫(kù)的引用。使用該命令可以從一個(gè)表中刪除對(duì)數(shù)據(jù)庫(kù)的引用,然后就可以打開(kāi)該表或者將該表添加到其他數(shù)據(jù)庫(kù)中。注意,如果數(shù)據(jù)庫(kù)還存在,不能使用該命令,那樣會(huì)導(dǎo)致數(shù)據(jù)庫(kù)不能使用。(4)將數(shù)據(jù)庫(kù)中的表刪除REMOVE TABLE2.3將當(dāng)前數(shù)據(jù)庫(kù)中的表刪除,一旦表被移出數(shù)據(jù)庫(kù)長(zhǎng)表名和長(zhǎng)字段就不能被用于索引或者程序?!景咐?5】定制“在職職工”表案例描述要?jiǎng)?chuàng)建表首先要?jiǎng)?chuàng)建該表的結(jié)構(gòu),然后才可以向表中輸入數(shù)據(jù)信息。定制表需要注意三點(diǎn),首先,字段的數(shù)據(jù)類(lèi)型應(yīng)與將要存儲(chǔ)在其中的信息類(lèi)型相匹配;其次,使字段的寬度足夠容納將要顯示的信息內(nèi)容;最后,為“數(shù)值型”或者“浮點(diǎn)型”字段

12、設(shè)置正確的小數(shù)點(diǎn)。接下來(lái)按照職工表的需要,為表設(shè)置字段類(lèi)型并輸入相應(yīng)數(shù)據(jù)記錄。相關(guān)知識(shí)1表的結(jié)構(gòu)表文件由表結(jié)構(gòu)和記錄兩部分組成,每行稱(chēng)為一條記錄,每列稱(chēng)為一個(gè)字段,如圖 2-3-12所示。表結(jié)構(gòu)是表文件必不可少的部分;記錄可多可少,沒(méi)有記錄只有表結(jié)構(gòu)的表文件稱(chēng)為空表。表文件的擴(kuò)展名為.dbf。圖 2-3-12表的組成2表設(shè)計(jì)器的使用在字段中可以設(shè)計(jì)表文件的結(jié)構(gòu),包括字段名、字段類(lèi)型、字段寬度和小數(shù)位數(shù)等屬性。另外,還包括是否對(duì)該字段建立索引、該字段是否可以包含空值的選項(xiàng)。在“表設(shè)計(jì)器”對(duì)話框中包括字段、索引和表 3 張選項(xiàng)卡,默認(rèn)打開(kāi)的是“字段”選項(xiàng)卡。通過(guò)單擊“類(lèi)型”下拉列表可選擇所需類(lèi)型,

13、如圖 2-3-13 所示。圖 2-3-13“字段”選項(xiàng)卡字段名是一種字段變量,它以字母或漢字開(kāi)頭,后面可以用字母、數(shù)字、漢字和下畫(huà)線等符號(hào)。字段名總長(zhǎng)度不超過(guò) 10 個(gè)字符,不能用空格。字段類(lèi)型指定了數(shù)據(jù)的類(lèi)型,字段寬度指定了被存儲(chǔ)數(shù)據(jù)的最大長(zhǎng)度。有些字段的寬度可由用戶(hù)按需要設(shè)定,有些則由系統(tǒng)默認(rèn)指定。各種字段類(lèi)型及其相應(yīng)寬度如表 2-3-2 所示。只有將字段類(lèi)型設(shè)置為數(shù)值型、浮點(diǎn)型、雙精度型才需要設(shè)置小數(shù)點(diǎn)位數(shù)。小數(shù)位數(shù)一列才為可用狀態(tài)。索引是一種邏輯排序方式,如果希望輸出記錄時(shí)按照某個(gè)字段的升序或降序,可以單擊“索引”的下拉箭頭,選擇排序方式。控制在數(shù)據(jù)庫(kù)中有特殊的作用,他既不是“0”和“

14、空格”,也不是空字符串,他等同于沒(méi)有任何值,控制可以作為某些函數(shù)的判斷依據(jù),但主關(guān)鍵字段不允許有空值。3管理數(shù)據(jù)的相關(guān)命令(1)打開(kāi)表USE EXCLUSIVE|SHARED打開(kāi)一個(gè)表,EXCLUSIVE 表示以獨(dú)占的方式打開(kāi)表;SHARED 表示以共享的方式打開(kāi)表。如果不加表名執(zhí)行 USE 命令,并且現(xiàn)在工作區(qū)中已打開(kāi)了一個(gè)文件,表示關(guān)閉表。(2)瀏覽表BROWSE FIELDS字段列表打開(kāi)瀏覽窗口,顯示當(dāng)前或選定表的記錄,選擇了 FIELDS 可以選擇表中的字段。(3)追加記錄APPENDBLANK在表的末尾添加一個(gè)或者多個(gè)新記錄,如果選擇了 BLANK,表示在當(dāng)前表的末尾添加一個(gè)空記錄。

15、(4)刪除記錄DELETE SCOPEFOR 1Expressionl2.4給要?jiǎng)h除的記錄做標(biāo)記,默認(rèn)的范圍是當(dāng)前記錄。其中 FOR 語(yǔ)句表示指定滿足邏輯條件的記錄,在“命令”窗口中繼續(xù)輸入如下命令:PACK從當(dāng)前表中永久刪除標(biāo)有刪除標(biāo)記的記錄?!景咐?6】修改“工資”表的結(jié)構(gòu)案例描述輸入了工資記錄后,可以在 Visual FoxPro 6.0 中查看和編輯表中的數(shù)據(jù),當(dāng)打開(kāi)表后,會(huì)在系統(tǒng)菜單中增加“表”菜單,利用該菜單,可以方便地進(jìn)行表中的數(shù)據(jù)編輯和處理。用戶(hù)還可以按照不同的需求定制“瀏覽”窗口,可以進(jìn)行重新安排列的位置、改變顯示格式、設(shè)置驗(yàn)證信息等相關(guān)操作。接下來(lái)按照工資表的瀏覽需要,修改

16、表的結(jié)構(gòu)及顯示的方式。相關(guān)知識(shí)1設(shè)置顯示方式(1)調(diào)整字段的顯示大小在瀏覽表時(shí),可以重新安排“瀏覽”窗口中的列,使它們按照需要的順序進(jìn)行排列,這種排列并不影響表的實(shí)際結(jié)構(gòu)。也可以在“瀏覽”窗口中改變列的寬度,這種尺寸調(diào)整只改變顯示格式,不會(huì)影響到字段的長(zhǎng)度或表的結(jié)構(gòu)。還可以拆分“瀏覽”窗口,很方便地查看同一表中的兩個(gè)不同區(qū)域,或者同時(shí)在“瀏覽”和“編輯”方式下查看同一記錄。將鼠標(biāo)指針指向兩個(gè)字段之間的結(jié)合點(diǎn),拖動(dòng)鼠標(biāo)可調(diào)整行、列的寬度和高度。調(diào)整列的寬度如圖 2-4-17 所示。圖 2-4-17調(diào)整表中列的顯示格式(2)取消網(wǎng)格線的顯示單擊“顯示”“網(wǎng)格線”菜單命令,使該命令項(xiàng)前面沒(méi)有“ ”顯

17、示,這樣就取消了網(wǎng)格線的顯示,如圖 2-4-18 所示。圖 2-4-18取消網(wǎng)格線顯示的表(3)拆分編輯窗口顯示將鼠標(biāo)指針指向拆分條,向左或向右拖動(dòng)拆分條,可改變窗格的相對(duì)大小,如圖 2-4-19 所示。如果窗口比較小,可以調(diào)整窗口的大小。圖 2-4-19使用拆分條拆分窗口2設(shè)置顯示格式對(duì)字段設(shè)置顯示格式只能對(duì)數(shù)據(jù)庫(kù)表進(jìn)行,此時(shí)在“表設(shè)計(jì)器”中,可以看到一個(gè)“顯示”區(qū)域,其中包含三個(gè)內(nèi)容,即“格式”、“輸入掩碼”和“標(biāo)題”。(1)設(shè)置格式用戶(hù)可以對(duì)顯示格式進(jìn)行設(shè)置,設(shè)置格式實(shí)質(zhì)上是對(duì)字段的顯示定義了一個(gè)輸入掩碼,它決定了字段在表單、“瀏覽”窗口或報(bào)表中的顯示風(fēng)格。如果要提供格式,可以在“表設(shè)計(jì)

18、器”“顯示”區(qū)的“格式”框中鍵入掩碼。表 2-4-1 中列出了一些常用的掩碼。(2)設(shè)置輸入掩碼指定輸入掩碼就是定義字段中的值必須遵守的標(biāo)點(diǎn)、空格和其他格式要求。這樣字段中的值就有了統(tǒng)一的風(fēng)格,從而可以減少數(shù)據(jù)輸入錯(cuò)誤,提高輸入效率。改變輸入掩碼的設(shè)置會(huì)影響新數(shù)據(jù)的輸入但不影響現(xiàn)存數(shù)據(jù)。如要提供輸入掩碼,可在“表設(shè)計(jì)器”“顯示”區(qū)中輸入掩碼,或者用 DBSETPROP()函數(shù)設(shè)置InputMask 屬性。表 2-4-2 定義了一些常用的輸入掩碼。(3)設(shè)置標(biāo)題可以為數(shù)據(jù)庫(kù)表中的每個(gè)字段創(chuàng)建一個(gè)標(biāo)題。Visual FoxPro 6.0 將顯示字段的標(biāo)題文字,并以此作為該字段在“瀏覽”窗口中的列標(biāo)

19、題(缺省時(shí)列標(biāo)題顯示為字段名)以及表格中的默認(rèn)標(biāo)題名稱(chēng)。3設(shè)置驗(yàn)證規(guī)則表設(shè)計(jì)器的“表”選項(xiàng)卡中還有一個(gè)區(qū)是“字段有效性”區(qū),在這個(gè)區(qū)內(nèi)可以對(duì)字段的驗(yàn)證規(guī)則、驗(yàn)證信息和默認(rèn)值進(jìn)行設(shè)置。(1)有效性規(guī)則介紹為控制輸入到數(shù)據(jù)庫(kù)表字段和記錄中的數(shù)據(jù),可以創(chuàng)建字段級(jí)和記錄級(jí)規(guī)則,為數(shù)據(jù)的輸入實(shí)施規(guī)則,這些規(guī)則稱(chēng)為有效性規(guī)則。字段級(jí)和記錄級(jí)規(guī)則將把所輸入的值與所定義的規(guī)則表達(dá)式進(jìn)行比較,如果輸入的值不滿足規(guī)則要求,則拒絕該值。有效性規(guī)則只在數(shù)據(jù)庫(kù)表中存在。字段級(jí)和記錄級(jí)規(guī)則能夠控制輸入到表中的信息類(lèi)型,而不管數(shù)據(jù)是通過(guò)“瀏覽”窗口、表單,還是使用語(yǔ)言以編程方式來(lái)訪問(wèn)。如果從數(shù)據(jù)庫(kù)中移去或刪除一個(gè)表,則所有

20、屬于該表的字段級(jí)和記錄級(jí)規(guī)則都會(huì)從數(shù)據(jù)庫(kù)中刪除。這是因?yàn)橐?guī)則存儲(chǔ)在擴(kuò)展名為.dbc 的文件中,而從數(shù)據(jù)庫(kù)移去表會(huì)破壞擴(kuò)展名為.dbf 文件與.dbc 文件之間的鏈接。但是,由被移去或刪除的規(guī)則引用的存儲(chǔ)過(guò)程不會(huì)被刪除。它們不會(huì)自動(dòng)移去,因?yàn)楸A粼跀?shù)據(jù)庫(kù)中的其他表規(guī)則還在使用它們。(2)設(shè)置字段級(jí)驗(yàn)證規(guī)則可以使用字段級(jí)有效性規(guī)則來(lái)控制用戶(hù)輸入到字段中的信息類(lèi)型,或檢查一個(gè)獨(dú)立于此記錄其他字段值的字段數(shù)據(jù)。(3)表達(dá)式生成器對(duì)話框使用表達(dá)式生成器來(lái)生成驗(yàn)證表達(dá)式。表達(dá)式生成器允許創(chuàng)建并編輯表達(dá)式。一個(gè)表達(dá)式可以簡(jiǎn)單得像一個(gè)字段名,也可以像一個(gè)包括 IF()函數(shù)、級(jí)連和數(shù)據(jù)類(lèi)型轉(zhuǎn)換的計(jì)算一樣復(fù)雜。表

21、達(dá)式生成器的主要目標(biāo)是通過(guò)提供方法中每一步驟的合適選項(xiàng)的列表使創(chuàng)建表達(dá)式更容易,它為用戶(hù)提供了許多有用的工具,用戶(hù)可以從函數(shù)去選擇各種字符串、數(shù)學(xué)、邏輯和日期函數(shù),可以從字段列表中選擇所有打開(kāi)表中的字段,也可以從變量區(qū)中選擇內(nèi)存變量。用戶(hù)可以直接在上方的“有效性規(guī)則”文本框中輸入一個(gè)表達(dá)式,也可以借助生成器提供的各種工具進(jìn)行選擇。(4)設(shè)置字段驗(yàn)證信息設(shè)置了字段的驗(yàn)證規(guī)則之后瀏覽該表,如果改動(dòng)了某條記錄中學(xué)號(hào)的長(zhǎng)度,使它不為 6,或者在新添的記錄中輸入一個(gè)學(xué)號(hào)長(zhǎng)度不為 6 的記錄,則會(huì)在試圖離開(kāi)該字段時(shí)出錯(cuò),打開(kāi)警告對(duì)話框提示出錯(cuò),并要求繼續(xù)對(duì)該字段進(jìn)行編輯,直到正確為止。從警告框里我們可以知

22、道違反了字段的有效性規(guī)則,但具體錯(cuò)在什么地方卻不是很清楚。為了得到明確的信息提示,可以通過(guò)給字段添加有效性文本,來(lái)定制當(dāng)違反規(guī)則時(shí)要顯示的提示信息。用戶(hù)所輸入的文本將代替默認(rèn)的錯(cuò)誤信息并顯示出來(lái)。2.5【案例 7】管理表的相關(guān)操作案例描述有時(shí)候表中的記錄比較多而且排列沒(méi)有什么規(guī)律,使得查找所需要的內(nèi)容要花費(fèi)很多時(shí)間,如果能按照特定的順序定位、查看或者操作表中的記錄,可以讓管理更方便。用戶(hù)可以在表中設(shè)置一個(gè)過(guò)濾器來(lái)定制表,有選擇地顯示某些記錄。還可以通過(guò)設(shè)置字段過(guò)濾器,對(duì)表中的某些字段的訪問(wèn)進(jìn)行限制,這樣也可以有選擇地顯示需要的記錄信息。用戶(hù)還可以創(chuàng)建索引,利用其快速顯示、查詢(xún)或者打印記錄;可以

23、選擇記錄,控制重復(fù)字段的輸入并支持表間的關(guān)系操作。接下來(lái)按照常用的管理方式,完成刪除、篩選、排序等操作。相關(guān)知識(shí)1篩選在查看表中數(shù)據(jù)時(shí),如果只想查看某一類(lèi)型的記錄,可以通過(guò)設(shè)置過(guò)濾器對(duì)“瀏覽”窗口中顯示的記錄進(jìn)行顯示限制。在某些情況下,例如只想查看工資高于某一數(shù)值的人員,或者生日在某段時(shí)間內(nèi)的職員,篩選就顯得非常有用。首先要在表中建立過(guò)濾器,瀏覽要?jiǎng)?chuàng)建篩選的表,再單擊“表”“屬性”菜單命令,打開(kāi)“工作區(qū)屬性”對(duì)話框,可以直接在“數(shù)據(jù)過(guò)濾器”文本框內(nèi)輸入篩選表達(dá)式?;蛘邌螕簟皵?shù)據(jù)過(guò)濾器”文本框右側(cè)的 按鈕,在“表達(dá)式生成器”中創(chuàng)建一個(gè)表達(dá)式來(lái)選擇要查看的記錄,最后單擊“確定”按鈕。再次瀏覽該表時(shí)

24、,則只顯示經(jīng)篩選表達(dá)式篩選過(guò)的記錄。2限制訪問(wèn)在表單中瀏覽或使用表時(shí),若只顯示某些字段,可以設(shè)置字段篩選來(lái)限制對(duì)某些字段的訪問(wèn)。選出要顯示的字段后,剩下的字段就不可訪問(wèn)了。首先要建立字段篩選,瀏覽要限制訪問(wèn)的表,再單擊“表”“屬性”菜單命令,打開(kāi)“工作區(qū)屬性”對(duì)話框,在“允許訪問(wèn)”區(qū)內(nèi),選中“字段篩選指定的字段”單選按鈕,然后單擊“字段篩選”按鈕,打開(kāi)“字段選擇器”對(duì)話框,將所需字段移入“選定字段”欄,最后單擊“確定”按鈕。再次瀏覽表時(shí),只有在“字段篩選”中選定的字段被顯示出來(lái)。3索引利用索引,不僅可以將數(shù)據(jù)排序,而且可以提高查詢(xún)的速度。在 Visual FoxPro 6.0 中可以為一個(gè)表建

25、立多個(gè)索引,每一索引代表一種處理記錄的順序。索引保存在一個(gè)結(jié)構(gòu)復(fù)合索引文件中,在使用表時(shí),該文件被打開(kāi)并更新。復(fù)合結(jié)構(gòu)索引文件名與相關(guān)的表同名,擴(kuò)展名為.cdx。索引文件是由指針構(gòu)成的文件,這些指針邏輯上按照索引關(guān)鍵字的值進(jìn)行排序。索引文件和表的.dbf 文件分別存儲(chǔ),并且不改變表中記錄的物理順序。實(shí)際上,創(chuàng)建索引是創(chuàng)建一個(gè)由指向.dbf 文件記錄的指針構(gòu)成的文件。索引關(guān)鍵字(IndexKey)用來(lái)作為建立索引的標(biāo)準(zhǔn)。記錄出現(xiàn)的順序是由索引關(guān)鍵字的“大小”決定的。索引關(guān)鍵字通常是一個(gè)字段或字段表達(dá)式,表達(dá)式中可以出現(xiàn)函數(shù)、內(nèi)存變量等。使用表達(dá)式時(shí),將根據(jù)計(jì)算結(jié)果排序。索引標(biāo)識(shí)(Tag)是索引關(guān)

26、鍵字的名稱(chēng)。索引標(biāo)識(shí)可以與字段同名,也可自己指定,但必須以字母、漢字或下畫(huà)線開(kāi)頭,并且長(zhǎng)度不能超過(guò) 10 字節(jié)。獨(dú)立索引文件擴(kuò)展名為.idx,其中只包含一個(gè)索引關(guān)鍵字,并且各文件相互獨(dú)立。獨(dú)立索引不需要索引標(biāo)識(shí),而直接使用索引文件名。4索引文件的類(lèi)型按照索引的方式不同,在 Visual FoxPro 6.0 中有四種類(lèi)型的索引方式。(1)主索引此類(lèi)型索引僅用于數(shù)據(jù)庫(kù)中的表,而且每個(gè)表文件只能有一個(gè)主索引。主索引的字段的值應(yīng)該具有唯一性,即組成索引的字段或者表達(dá)式在表中不允許有兩條以上的記錄具有相同的值。主索引可確保字段中輸入值的唯一性并決定了處理記錄的順序,如果某個(gè)表已經(jīng)有了一個(gè)主索引,可以繼

27、續(xù)添加候選索引。(2)候選索引此類(lèi)型索引可用于數(shù)據(jù)庫(kù)中的表和自由表,每個(gè)表可以建立多個(gè)候選索引。它像主索引一樣要求字段值的唯一性并決定了處理記錄的順序。(3)普通索引此類(lèi)型索引可用于數(shù)據(jù)庫(kù)中的表和自由表,在一個(gè)表中可以加入多個(gè)普通索引。它可以決定記錄的處理順序,但是允許字段中出現(xiàn)重復(fù)值。(4)唯一索引為了保持同早期版本的兼容性,還可以建立一個(gè)唯一索引,以指定字段的首次出現(xiàn)值為基礎(chǔ),選定一組記錄,并對(duì)記錄進(jìn)行排序。除了這四種用于字段的索引類(lèi)型外,還有一種叫做“結(jié)構(gòu)復(fù)合索引”,此類(lèi)型索引可用于數(shù)據(jù)庫(kù)中的表和自由表,每次表打開(kāi)時(shí)自動(dòng)打開(kāi),而且在表修改時(shí)自動(dòng)更新。一個(gè)結(jié)構(gòu)復(fù)合索引文件通常與表具有同樣的

28、文件名,但擴(kuò)展名為.cdx。nExpr、5管理操作的相關(guān)命令(1)移動(dòng)記錄指針SKIP nRceords使記錄指針在表中相對(duì)當(dāng)前位置向前移動(dòng)或者向后移動(dòng)。其中 nRecords 代表記錄指針需要移動(dòng)的記錄數(shù)。如果是正數(shù),表示向文件尾移動(dòng);如果是負(fù)數(shù),表示向文件頭移動(dòng)。GOTO TOP|BOTTOM|RECORDnRecordNumber將記錄指針移動(dòng)到指定位置。其中 TOP 代表將記錄指針定位到表的第一個(gè)記錄上,BOTTOM代表將記錄指針定位到表的最后一個(gè)記錄上,RECORD nRecordNumber 代表指定一個(gè)物理記錄號(hào),對(duì)該記錄進(jìn)行操作。(2)命令的作用范圍在命令的說(shuō)明中,經(jīng)常用 Sc

29、ope 代表命令的作用范圍,該范圍可以有 ALL、NEXTRECORDnNumber、REST 四個(gè)子句: NEXT ALL:全部,對(duì)表或視圖中的全部記錄起作用。nExpr:后續(xù)的記錄數(shù),對(duì)某一范圍的記錄起作用,作用范圍從當(dāng)前記錄開(kāi)始,持續(xù)指定數(shù)目的記錄。鍵入 1 將只對(duì)當(dāng)前記錄起作用。 RECORDnNumber:記錄號(hào),對(duì)指定記錄號(hào)的記錄起作用。 REST:其余,對(duì)某一范圍的記錄起作用,作用范圍從當(dāng)前記錄開(kāi)始,到表的最后一條記錄為止。(3)刪除記錄DELETE ScopeFOR|Expression1給刪除的記錄做標(biāo)記,并未刪除,默認(rèn)的范圍是當(dāng)前記錄。其中 FOR 子句指定滿足邏輯條件的記

30、錄。PACK從當(dāng)前表中永久刪除標(biāo)有刪除標(biāo)記的記錄TO(4)篩選記錄SET或者FIELDSON|OFFSETFIELDSFieldName1, FieldName2 |ALLLIKE Skeleton| EXCEPTSkeleton篩選字段在數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)操作中叫做投影。指定可以訪問(wèn)表中的哪些字段。ON 表示指定只能訪問(wèn)出現(xiàn)在字段列表中的字段;OFF 表示指定可以訪問(wèn)表中的所有字段。TOFieldName1 ,FieldName2 .表示指定當(dāng)前表中可訪問(wèn)的字段的名稱(chēng);ALL 表示允許訪問(wèn)表中的所有字段;ALL LIKE Skeleton | EXCEPT Skeleton表示可以單獨(dú)或組合使用

31、LIKE 和 EXCEPT 子句,有選擇地訪問(wèn)字段。如果使用 LIKE Skeleton,可以訪問(wèn)與 Skeleton 相匹配的字段,如果使用 EXCEPTSkeleton,可以訪問(wèn)不與 Skeleton 相匹配的字段。在 Skeleton 中可以支持*和?通配符。(5)選擇記錄SET FILTER TO lExpression選擇記錄在數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn)操作中也叫做選擇。指定訪問(wèn)當(dāng)前表中記錄時(shí)必須滿足的條件。其中的 lExpression 是指定的記錄必須滿足的條件。如果使用了該命令,表中只有滿足指定條件的記錄才能被訪問(wèn)。如果使用不帶 lExpression 的 SET FILTER TO,表示關(guān)

32、閉當(dāng)前表的選擇器。(6)建立索引INDEXONeExpressionTOIDXFileName|TAGTagName OF CDXFileNameCOMPACTASCENDING|DESCENDINGUNIQUE|CANDIDATEADDITIVE創(chuàng)建一個(gè)索引文件,利用該文件可以按某種邏輯順序顯示和訪問(wèn)表記錄。其中的參數(shù)代表的功能如下: eExpression:代表指定一個(gè)索引表達(dá)式,該表達(dá)式中可以包含當(dāng)前表中的字段名。在索引文件中,按索引表達(dá)式給每個(gè)表記錄都創(chuàng)建一個(gè)索引關(guān)鍵字,Visual FoxPro 6.0 使用這些關(guān)鍵字來(lái)顯示和訪問(wèn)表中的記錄。 TO IDXFileName:創(chuàng)建 ID

33、X 索引文件。 TAG TagName OF CDXFileName:創(chuàng)建一個(gè)復(fù)合索引文件。復(fù)合索引文件是一種可包含任意數(shù)量的獨(dú)立標(biāo)識(shí)的單個(gè)索引文件,每個(gè)標(biāo)識(shí)都由其唯一標(biāo)識(shí)名確定。 COMPACT:表示創(chuàng)建一個(gè)壓縮的 IDX 文件。 ASCENDING:表示指定 CDX 文件為升序 DESCENDING:表示指定 CDX 文件為降序。 UNIQUE:對(duì)于一個(gè)索引關(guān)鍵字值,只有第一個(gè)滿足該值得記錄包含在 IDX 文件或 CDX 的標(biāo)識(shí)中。利用這個(gè)子句可以避免顯示或訪問(wèn)記錄的重復(fù)值。 CANDIDATE:創(chuàng)建候選結(jié)構(gòu)索引標(biāo)識(shí)。 ADDITIVE:所有先前已打開(kāi)的索引文件保持打開(kāi)狀態(tài)。(7)設(shè)置排序

34、在建立了索引的表上,可以依據(jù)索引進(jìn)行排序。當(dāng)需要使用索引對(duì)表進(jìn)行排序時(shí),需要指定表的主索引文件。SET ORDER TO TAG TagName OF CDXFileName ASCENDING|DESCENDING一個(gè)表可以同時(shí)打開(kāi)多個(gè)索引文件,但是只有一個(gè)單索引文件或一個(gè)來(lái)自復(fù)合索引文件的索引標(biāo)識(shí)決定表中記錄的顯示和訪問(wèn)順序。使用該命令來(lái)指定主索引文件或標(biāo)識(shí)。其中的TAGTagNameOF CDXFileName 是 指 定 CDX 索 引 中 的 一 個(gè) 標(biāo) 識(shí) 作 為 主 控 索 引 標(biāo) 識(shí) 。 ASCENDING|DESCENDING 表示以升序或降序顯示或訪問(wèn)表記錄。如果使用 SE

35、T ORDER TO 命令不帶任何參數(shù),表示不使用任何索引。另外,Visual FoxPro 6.0 還提供了一條物理排序命令,該命令可以生成按照要求排好序的新表。該命令的格式如下:SORTTOTableNameONFieldName1/A|/D/C, FieldName2/A | /D/C ASCENDING|DESCENDINGScope FOR lExpression1對(duì)當(dāng)前選定的表進(jìn)行排序,并將排過(guò)序的記錄輸出到新表中。其中的參數(shù)代表的功能如下: TableName:存放經(jīng)過(guò)排序的記錄的新表名,Visual FoxPro 6.0 中文件擴(kuò)展名為.dbf。 ON FieldName1:在

36、當(dāng)前選定的、要排序的表中指定字段,字段的內(nèi)容和數(shù)據(jù)類(lèi)型決定了記錄在新表中的順序。默認(rèn)情況時(shí)按升序排序,不能對(duì)備注或通用字段排序。 /A | /D /C:對(duì)于排序中包含的每個(gè)字段,可以指定排序順序。/A 為字段指定了升序。/D 指定了降序。/C 表示忽略大小寫(xiě),默認(rèn)情況下區(qū)分大小寫(xiě)。2.6【案例 8】管理表之間的關(guān)系案例描述由于一個(gè)表中不可能包含所要使用的所有數(shù)據(jù),因此在很多時(shí)候,我們必須打開(kāi)多個(gè)表。而對(duì)于每個(gè)表,都是在它自己的工作區(qū)里打開(kāi)的,要訪問(wèn)多個(gè)表,就必須使用多個(gè)工作區(qū)。多個(gè)表中的數(shù)據(jù)整合在一起描述數(shù)據(jù)庫(kù)的內(nèi)容,因此表之間的關(guān)聯(lián)關(guān)系是非常重要的,需要具有數(shù)據(jù)聯(lián)動(dòng)性。接下來(lái)按照表的內(nèi)容,完

37、成表關(guān)系的創(chuàng)建和管理等操作。相關(guān)知識(shí)1表的相關(guān)概念(1)工作區(qū)工作區(qū)是一個(gè)編號(hào)區(qū)域,它標(biāo)識(shí)一個(gè)已打開(kāi)的表,Visual FoxPro 6.0 中一共可以在 32 767個(gè)工作區(qū)中打開(kāi)和操作表。在應(yīng)用程序中,工作區(qū)通過(guò)使用該工作區(qū)的表的別名來(lái)識(shí)別。表別名是一個(gè)名稱(chēng),它可以引用在工作區(qū)中打開(kāi)的表。(2)數(shù)據(jù)工作期單擊“窗口”“數(shù)據(jù)工作區(qū)”菜單命令,打開(kāi)“數(shù)據(jù)工作區(qū)”對(duì)話框,可查看在一個(gè) VisualFoxPro 6.0 工作期中打開(kāi)的表的列表,并顯示在當(dāng)前數(shù)據(jù)工作期中打開(kāi)表的工作區(qū)別名,如圖2-6-17 所示。一個(gè)數(shù)據(jù)工作期是指表單、表單集或報(bào)表使用的當(dāng)前狀態(tài)工作環(huán)境。每個(gè)數(shù)據(jù)工作期包含了它自己的

38、一組工作區(qū),這些工作區(qū)包括在工作區(qū)中打開(kāi)的表、表索引以及表之間的關(guān)系。VisualFoxPro 6.0 可以通過(guò)數(shù)據(jù)工作期自動(dòng)為表單或表單集的每個(gè)實(shí)例提供一個(gè)獨(dú)立的環(huán)境。圖 2-6-17“數(shù)據(jù)工作期”對(duì)話框(3)關(guān)鍵字表之間創(chuàng)建關(guān)系之前,想要關(guān)聯(lián)的表需要有一些公共的字段和索引。這樣的字段稱(chēng)為主關(guān)鍵字字段和外部關(guān)鍵字字段。主關(guān)鍵字字段標(biāo)識(shí)了表中的特定記錄。外部關(guān)鍵字字段標(biāo)識(shí)了存于數(shù)據(jù)庫(kù)里其他表中的相關(guān)記錄。還需要對(duì)主關(guān)鍵字字段做一個(gè)主索引,對(duì)外部關(guān)鍵字字段做普通索引。為準(zhǔn)備兩個(gè)關(guān)系表中的主表,需要在主表中添加主關(guān)鍵字字段。如果要在兩個(gè)表之間提供公共字段,需要在帶有關(guān)聯(lián)記錄的表中添加外部關(guān)鍵字字段

39、。外部關(guān)鍵字字段必須以相同的數(shù)據(jù)類(lèi)型與主關(guān)鍵字字段相匹配,而且一般用相同的名稱(chēng)。以主關(guān)鍵字字段和外部關(guān)鍵字字段創(chuàng)建的索引必須帶有相同的表達(dá)式。 主關(guān)鍵字:表中的一列或多列,其中的值唯一地標(biāo)識(shí)了表中的一行。 外部關(guān)鍵字:一列或多列的組合,列中的值需要與另一個(gè)表中的主關(guān)鍵字相匹配。用于連接相關(guān)表。(4)完整性約束對(duì)于數(shù)據(jù)庫(kù)中的表,只在表的內(nèi)部建立完整性約束不能完全保證數(shù)據(jù)的正確。數(shù)據(jù)庫(kù)中的表需要根據(jù)表之間的關(guān)系,建立表之間的完整性約束。在 Visual FoxPro 6.0 中,該約束表現(xiàn)在參照完整性上。參照完整性是控制數(shù)據(jù)一致性,尤其是不同表的主關(guān)鍵字和外部關(guān)鍵字之間關(guān)系的規(guī)則。Visual FoxPro 6.0 使用用戶(hù)自定義的字段級(jí)和記錄級(jí)規(guī)則完成參照完整性規(guī)則?!皡⒄胀暾陨善鳌笨梢越⒁?guī)則,控制記錄如何在相關(guān)表中被插入、更新或刪除。2表間的關(guān)聯(lián)關(guān)系通過(guò)鏈接不同表的索引,“數(shù)據(jù)庫(kù)設(shè)計(jì)器”可以很方便地建立表之間的關(guān)系。因?yàn)檫@種在數(shù)據(jù)庫(kù)中建立的關(guān)系被作為數(shù)據(jù)庫(kù)的一部分保存了起來(lái),所以稱(chēng)為永久關(guān)系。設(shè)置關(guān)系應(yīng)當(dāng)做如下操作:(1)創(chuàng)建索引字段首先決定哪個(gè)表中包含有主記錄,哪個(gè)表中包含有關(guān)聯(lián)記錄;然后對(duì)有主記錄的表,添加一個(gè)字段,再對(duì)該字段添加一個(gè)主索引;最后對(duì)包含有關(guān)聯(lián)記錄的表,添加一個(gè)與主記錄表中關(guān)鍵字匹配的字段,再對(duì)該新字段

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論