




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Visual FoxPro程序設(shè)計(jì)教程教師:馮偉E-mail:26134019第2章 數(shù)據(jù)庫及其操作數(shù)據(jù)庫的基本概念Visual FoxPro中數(shù)據(jù)庫的概念是一個(gè)邏輯上的概念,通過一組系統(tǒng)文件將相互關(guān)系的數(shù)據(jù)庫表及其相關(guān)的數(shù)據(jù)庫對(duì)象統(tǒng)一組織和管理,所以在Visual FoxPro中應(yīng)該將.dbf文件稱為數(shù)據(jù)庫表或表,而不再稱之為數(shù)據(jù)庫。在建立數(shù)據(jù)庫時(shí),相應(yīng)的數(shù)據(jù)庫名稱實(shí)際是擴(kuò)展名為DBC的文件名,與之相關(guān)的還會(huì)自動(dòng)建立一個(gè)擴(kuò)展名為DCT的數(shù)據(jù)文件和一個(gè)擴(kuò)展名為DCX的索引文件。這三個(gè)文件是提供Visual FoxPro管理數(shù)據(jù)庫時(shí)使用的。數(shù)據(jù)庫建立后是一個(gè)空的數(shù)據(jù)庫,沒有任何數(shù)據(jù),也不能輸入數(shù)
2、據(jù),接著還需要建立數(shù)據(jù)庫表和其它數(shù)據(jù)庫對(duì)象然后才能夠輸入數(shù)據(jù)和實(shí)施數(shù)據(jù)庫操作。2.1 數(shù)據(jù)庫建立的三種方式 在Visual FoxPro中數(shù)據(jù)庫建立的方式可以分為三種,分別是:使用項(xiàng)目管理器建立數(shù)據(jù)庫通過新建對(duì)話框建立數(shù)據(jù)庫使用命令交互方式建立數(shù)據(jù)庫命令:CREATE DATABASE 數(shù)據(jù)庫名稱2.2 打開數(shù)據(jù)庫的三種方式打開數(shù)據(jù)庫的方式和建立數(shù)據(jù)庫的方式類似,也有三種通過項(xiàng)目管理器打開數(shù)據(jù)庫通過打開對(duì)話框打開數(shù)據(jù)庫通過命令交互方式打開數(shù)據(jù)庫命令:OPEN DATABASE FileName|?EXCLUSIVE|SHAREDNOUPDATEVALIDATE 2.3 修改數(shù)據(jù)庫在Visual
3、 FoxPro中修改數(shù)據(jù)庫實(shí)際上是在數(shù)據(jù)庫設(shè)計(jì)器中完成的,數(shù)據(jù)庫設(shè)計(jì)器顯示數(shù)據(jù)庫包含的所有表,視圖和聯(lián)系。修改數(shù)據(jù)庫的三種方式:從項(xiàng)目管理器中修改數(shù)據(jù)庫從打開對(duì)話框中打開數(shù)據(jù)庫進(jìn)行修改用命令方式打開數(shù)據(jù)庫進(jìn)行修改命令:MODIFY DATABASE DATABASENAME|?NOWAITNOEDIT2.4 數(shù)據(jù)庫表的建立在關(guān)系數(shù)據(jù)庫中的關(guān)系就叫做表,在一個(gè)數(shù)據(jù)庫中的數(shù)據(jù)是由表的集合夠成的,表的擴(kuò)展名為DBF。數(shù)據(jù)庫的管理最終是對(duì)表的管理。表是對(duì)數(shù)據(jù)進(jìn)行有效的加工、管理、使數(shù)據(jù)更能顯示出它的價(jià)值,由于表可以獨(dú)立于程序,因而表使得數(shù)據(jù)得以共享,同時(shí)使數(shù)據(jù)得到充分的利用。表可以分為自由表和數(shù)據(jù)庫表
4、兩種1、建表(1)用界面建表 1)用菜單打開表設(shè)計(jì)器 2)用命令打開表設(shè)計(jì)器格式:CREATE 功能:打開表設(shè)計(jì)器創(chuàng)建表 3)用向?qū)?chuàng)建表2、 表的打開、關(guān)閉及相關(guān)操作1、表的打開(1)用界面打開表(2)用命令打開表格式:USE 功能:打開表2、瀏覽表(1)在項(xiàng)目管理器中瀏覽表(2)用命令瀏覽表 格式:browse 功能:瀏覽表3、關(guān)閉表(1)用界面關(guān)閉表(2)用命令關(guān)閉表格式:USE功能:關(guān)閉當(dāng)前表4、給表添加記錄首選選擇瀏覽你要添加記錄的表使用命令添加記錄格式:APPEND或APPEND BLANK功能:APPEND是用交互式方式添加表的記錄,而APPEND BLANK是在表設(shè)計(jì)器中給表添
5、加一行空格的部分可以供用戶直接輸入數(shù)據(jù)使用表菜單中的“追加新紀(jì)錄”可以給表添加一條新的記錄 快捷鍵:CTRL+Y使用INSERTBEFOREBLANK命令功能:在表的任意位置插入一條記錄,如果不使用BEFORE,則是在當(dāng)前記錄的后面插入一條新紀(jì)錄。如果使用,則是當(dāng)前記錄的前面插入一條新紀(jì)錄。BLANK:是否插入一條空白記錄。5、刪除表中記錄 刪除表中的記錄:1、邏輯刪除:只是將記錄加了刪除標(biāo)記2、物理刪除:將具有刪除標(biāo)記的記錄真正從表中刪除(1)邏輯刪除與恢復(fù)1)用界面為記錄加刪除標(biāo)記或去掉刪除標(biāo)記2)用命令為記錄加刪除標(biāo)記與去掉刪除標(biāo)記邏輯刪除命令格式: DELETE FOR 功能:對(duì)滿足條
6、件的記錄加刪除標(biāo)記,若范圍省略,默認(rèn)范圍為當(dāng)前記錄即NEXT 1.記錄恢復(fù)命令格式:RECALL FOR 功能:為符合條件的記錄去掉刪除標(biāo)記,若范圍省略,默認(rèn)范圍為當(dāng)前記錄即NEXT 1.(2)物理刪除記錄:1)用界面進(jìn)行物理刪除2)用命令進(jìn)行物理刪除格式:PACK功能:將帶有刪除標(biāo)記的記錄,從表中真正刪除3)物理刪除表中所有記錄格式:ZAP功能:將表中所有記錄刪除,只保留表的結(jié)構(gòu)6、修改記錄(1)用界面修改記錄1)顯示-瀏覽2)在命令窗口上用命令EDIT或CHANGE(2)用命令修改記錄格式:REPLACE FILENAME1 WITH eExpression1,FILENAME2 WITH
7、 eExpression2FOR Expression功能:在指定范圍內(nèi)將符合條件的記錄中的相關(guān)字段用相關(guān)表達(dá)式來替換。若省略范圍,默認(rèn)范圍為NEXT 1REPALCE ALL FILENAME WITH eExpression功能:將所有記錄的值用相關(guān)表達(dá)式來替換7、顯示表中記錄的命令格式:LISTFILEFieldListFORExpressionOFFTO PRINTER PROMRT |TO FILE FileNameDISPLAYFILEFieldListFORExpressionOFFTO PRINTERPROMRT| TO FILE FileName功能:FieldList這個(gè)參
8、數(shù)是將要顯示的字段用逗號(hào)隔開,如果不加這個(gè)參數(shù),默認(rèn)顯示所有字段,Expression是條件表達(dá)式,TO PRINTER是將結(jié)果輸出到打印機(jī),如果加上PROMRT是打印之前對(duì)打印機(jī)進(jìn)行設(shè)置,TO FILE是將結(jié)果用文件保存 LIST和DISPLAY的區(qū)別在于LIST顯示全部記錄,而DISPLAY只顯示當(dāng)前記錄8、 記錄指針的移動(dòng)1、用界面方式移動(dòng)記錄指針2、用命令方式移動(dòng)記錄指針1)絕對(duì)移動(dòng):格式:GO |功能:實(shí)現(xiàn)記錄指針的絕對(duì)移動(dòng)。當(dāng)用TOP子句時(shí)指針指向第一條記錄;當(dāng)用BOTTOM子句時(shí)指針指向最后一條記錄。當(dāng)用記錄號(hào)子句時(shí)指針指向記錄號(hào)確定的記錄2)相對(duì)移動(dòng):格式:SKIP +|-N功
9、能:N可為正、負(fù)整數(shù),當(dāng)N為正數(shù)時(shí)指針從當(dāng)前記錄向表尾方向移動(dòng)N條記錄。當(dāng)N為負(fù)數(shù)時(shí),指針從當(dāng)前記錄向表頭方向移動(dòng)N條記錄,當(dāng)省略N時(shí),默認(rèn)N為1.3)條件移動(dòng) 格式:LOCATE FOR Expression 功能:將記錄定位到滿足條件的記錄的第一條位置9、索引若要按特定的順序定位、查看或操作表中記錄,可以使用索引。在VF中可以使用索引對(duì)表中的記錄進(jìn)行排序,在檢索的時(shí)候按照某一個(gè)規(guī)則去檢索,比如在一個(gè)學(xué)生表中,有成績字段,我們可以按照成績字段的值由高到低進(jìn)行檢索1、主索引在指定字段或表達(dá)式中不允許出現(xiàn)重復(fù)值的索引。建立主索引的字段可以看做是主關(guān)鍵字。一個(gè)表只能有一個(gè)主關(guān)鍵字,所以一個(gè)表只能創(chuàng)
10、建一個(gè)主索引。2、候選索引一個(gè)表當(dāng)中可以有多個(gè)候選索引,這是候選索引和主索引最大的區(qū)別,建立候選索引的字段叫做候選關(guān)鍵字3、唯一索引唯一索引是為了保持同早期版本的兼容性,它的“唯一性”是指索引項(xiàng)的唯一,而不是字段值的唯一。也就是說如果一個(gè)表中某個(gè)字段建立了唯一索引,如果這個(gè)字段當(dāng)中有相同的值,唯一索引只會(huì)檢索出第一個(gè)值,后面的值不會(huì)再檢索表中出現(xiàn)4、普通索引普通索引不僅允許字段中出現(xiàn)重復(fù)值,并且索引項(xiàng)中也允許出現(xiàn)重復(fù)值。在一個(gè)表中可以建立多個(gè)普通索引。單項(xiàng)索引和復(fù)合索引單項(xiàng)索引基于一個(gè)字段的索引稱為單項(xiàng)索引復(fù)合索引基于多個(gè)字段的索引稱為復(fù)合索引用命令建立索引格式:INDEX ON eExpre
11、ssion TO IDXFileName|TAG TagName OF CDXFileName FOR lExpression COMPACT ASCENDING DESCENDING UNIQUE|CANDIDATEADDITIVE功能:eExpression是索引表達(dá)式,它可以是字段名,或包含字段名的表達(dá)式TO eExpression建立一個(gè)單獨(dú)的索引文件,擴(kuò)展名為.idx。該項(xiàng)是為了和早期版本兼容,現(xiàn)在一般只是建立一些臨時(shí)的索引時(shí)才使用TAG TagNameOF CDXFileName中的TagName給出索引名,CDXFileName指定索引文件名,默認(rèn)的索引文件名與表同名,但擴(kuò)展名不
12、一樣FOR lExpression 給出索引過濾條件,該短語一般不使用COMPACT 指明當(dāng)使用TO IDXFileName建立一個(gè)壓縮的.idx文件時(shí)復(fù)合索引總是壓縮的;ASCENDING或DESCENDING指明建立升序或降序索引,默認(rèn)是升序的;UNIQUE 指定建立唯一索引CANDIDATE 指明建立候選索引ADDITIVE與建立索引本身無關(guān),說明現(xiàn)在建立索引時(shí)是否關(guān)閉以前的索引,默認(rèn)是關(guān)閉已經(jīng)使用的索引,使新建立的索引稱為當(dāng)前索引。打開索引列表和使用索引格式:SET INDEX TO indexFileList功能:打開非結(jié)構(gòu)復(fù)合索引,可以一次性打開多個(gè)格式:SET ORDER TO
13、nIndexNumber|TAG TagName功能:使用某個(gè)特定索引時(shí)用命令進(jìn)行打開,nIndexNumber是使用索引序號(hào)打開,既創(chuàng)建索引的先后順序,TagName是使用索引名進(jìn)行打開,推薦使用索引名打開10、數(shù)據(jù)完整性1、實(shí)體完整性與主關(guān)鍵字實(shí)體完整性是保證表中記錄唯一的特性,即在一個(gè)表中不允許有重復(fù)的記錄。在VF中利用主關(guān)鍵字或候選關(guān)鍵字來保證表中記錄唯一,既保證實(shí)體唯一性。VF中將主關(guān)鍵字稱為主索引,將候選關(guān)鍵字稱作候選索引。2、域完整性域完整性就是通過數(shù)據(jù)類型和取值范圍去定義某個(gè)字段的有效性。3、約束規(guī)則約束規(guī)則又稱為字段有限性規(guī)則,在插入或修改字段值時(shí)被激活,主要用于數(shù)據(jù)輸入正確
14、性的檢驗(yàn)。注意:“規(guī)則”是邏輯表達(dá)式,“信息”是字符串表達(dá)式,“默認(rèn)值”的類型則視字段的類型而定。參照完整性和表之間的關(guān)聯(lián)當(dāng)插入、刪除或修改一個(gè)表中的數(shù)據(jù)時(shí),通過參照引用相互關(guān)聯(lián)的另一個(gè)表中的數(shù)據(jù),來檢查對(duì)表的數(shù)據(jù)操作是否正確,以保證插入的新的記錄的合法性更新規(guī)則、刪除規(guī)則和插入規(guī)則更新規(guī)則級(jí)聯(lián):用新的連接字段值自動(dòng)修改子表中的所有相關(guān)記錄限制:若子表中有相關(guān)的記錄,則禁止修改父表中連接字段的值忽略:不作參照完整性檢查,既可以隨意更新父記錄的連接字段的值刪除規(guī)則級(jí)聯(lián):自動(dòng)刪除子表中的所有相關(guān)記錄限制:若子表中有相關(guān)的記錄,則禁止刪除父表中的記錄忽略:不作參照完整性檢查,即刪除父表的記錄時(shí)與子表
15、無關(guān)插入規(guī)則限制:若父表中沒有相匹配的連接字段值則禁止插入子記錄忽略:不作參照完整性檢查,即可以隨意插入子記錄9、自由表的操作自由表就是不屬于任何數(shù)據(jù)庫的表,自由表可以添加進(jìn)數(shù)據(jù)庫,也可以從數(shù)據(jù)庫中將表移除產(chǎn)生自由表自由表創(chuàng)建的方式1)通過項(xiàng)目管理器添加自由表2)通過文件菜單或工具欄添加自由表3)通過命令添加自由表(不能打開數(shù)據(jù)庫)CREATE 表名將自由表添加到當(dāng)前數(shù)據(jù)庫中格式:ADD TABLE TableName|?NAME LongTableName從數(shù)據(jù)庫中將表移除格式:REMOVE TABLE TableName|?DELETERECYCLE10、選擇工作區(qū)Visual FoxPr
16、o中可以同時(shí)對(duì)多個(gè)數(shù)據(jù)庫進(jìn)行操作,也可以同時(shí)對(duì)一個(gè)數(shù)據(jù)庫中的多個(gè)表進(jìn)行操作,平時(shí)我們系統(tǒng)默認(rèn)的工作區(qū)是第一個(gè)工作區(qū),我們只需要將表分放到不同的工作區(qū)便能同時(shí)對(duì)這些表進(jìn)行操作格式:SELECT nWorkArea | cTableAlias 功能:nWorkAre是一個(gè)大于0的數(shù)字,用于指定工作區(qū)號(hào),最小的工作區(qū)號(hào)是1,最大的工作區(qū)號(hào)是32767,如果指定為0,選擇的是編號(hào)最小的工作區(qū)。cTableAlias是用來指定工作區(qū)中的一個(gè)表11、表的別名每個(gè)表打開之后會(huì)有兩個(gè)默認(rèn)的別名,一個(gè)是表名自身,另一個(gè)工作區(qū)所對(duì)應(yīng)的別名。在前10個(gè)工作區(qū)指定的默認(rèn)別名是工作區(qū)字母A到J,工作區(qū)11到32767的別名是W11到W32767。USE命令中用ALIAS短語指定別名格式:USE 表名 IN 工作區(qū) ALIAS 別名12、表之間的關(guān)聯(lián)前面我們講過利用索引建立兩個(gè)表之間的“永久聯(lián)系”?!坝谰寐?lián)系”在數(shù)據(jù)庫設(shè)計(jì)器中顯示為表索引間的連接線但是“永久聯(lián)系”
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年自治區(qū)科技廳直屬事業(yè)單位引進(jìn)考試真題
- 修繕采購協(xié)議合同范本
- 兼職輔導(dǎo)老師合同范例
- 新能源汽車動(dòng)力蓄電池系統(tǒng)構(gòu)造與檢修 項(xiàng)目三-課后習(xí)題帶答案
- 勞務(wù)分包用工合同范本
- 公司銷售渠道合同范本
- 農(nóng)民玉米出售合同范本
- 2024年杭州銀行招聘考試真題
- 2024年江西省人才服務(wù)有限公司招聘筆試真題
- 企業(yè)雇傭貨車合同范本
- 工會(huì)經(jīng)費(fèi)列支范圍及工會(huì)經(jīng)費(fèi)支出范圍
- 成人高考課件
- 村委會(huì)會(huì)議簽到表
- 哲學(xué)與人生全套課件146P
- 中考物理復(fù)習(xí)交流
- 敬老院設(shè)備采購?fù)稑?biāo)方案(技術(shù)方案)
- 充電樁采購安裝售后服務(wù)方案
- 《旅行社條例》和《旅行社管理?xiàng)l例》對(duì)比解讀
- 柳宗元抑郁而堅(jiān)貞的一生
- 鄉(xiāng)鎮(zhèn)人大代表選舉結(jié)果情況報(bào)告單
- BOPP雙向拉伸薄膜及膠帶生產(chǎn)項(xiàng)目環(huán)境影響報(bào)告
評(píng)論
0/150
提交評(píng)論