




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章VisualFoxPro數(shù)據(jù)庫及其操作主要內(nèi)容VisualFoxPro數(shù)據(jù)庫及其建立建立數(shù)據(jù)庫表表的基本操作索引數(shù)據(jù)完整性自由表多個(gè)表的同時(shí)使用排序3.1VisualFoxPro數(shù)據(jù)庫及其建立幾個(gè)基本概念數(shù)據(jù)庫文件(.dbc)數(shù)據(jù)表文件(.dbf)數(shù)據(jù)庫備注文件(.dct)數(shù)據(jù)庫索引文件(.dcx)新建數(shù)據(jù)庫在項(xiàng)目管理器中新建用新建對(duì)話框建立用命令創(chuàng)建createdatabase[數(shù)據(jù)庫名|?]區(qū)別:后兩種方法建立的數(shù)據(jù)庫游離于項(xiàng)目之外最后一種方法建立的數(shù)據(jù)庫不會(huì)打開數(shù)據(jù)庫設(shè)計(jì)器打開數(shù)據(jù)庫在項(xiàng)目管理器中打開用打開對(duì)話框菜單:文件-打開工具欄上的“打開”按鈕用命令打開(在程序中用)命令方式OPENDATABASE[FileName|?]注意點(diǎn)P96可以同時(shí)打開多個(gè)數(shù)據(jù)庫但當(dāng)前數(shù)據(jù)庫只有一個(gè)常用工具欄的數(shù)據(jù)庫下拉列表選擇切換數(shù)據(jù)庫命令
SETDATABASETO[databasename]修改數(shù)據(jù)庫三種方式P97項(xiàng)目管理器打開對(duì)話框菜單:文件-打開(不同方式)工具欄上的”打開”按鈕使用命令方式使用命令打開數(shù)據(jù)庫格式:MODIFYDATABASE[DatabaseName/?][NOWAIT][NOEDIT]功能:打開數(shù)據(jù)庫設(shè)計(jì)器[NOWAIT]:在程序中有效。即打開數(shù)據(jù)庫設(shè)計(jì)器后繼續(xù)運(yùn)行程序。[NOEDIT]:只是打開數(shù)據(jù)庫設(shè)計(jì)器,而禁止對(duì)數(shù)據(jù)庫進(jìn)行修改。刪除數(shù)據(jù)庫從項(xiàng)目管理器中選擇要?jiǎng)h除的數(shù)據(jù)庫,然后單擊‘移去’按鈕。
注意:不管是移去還是刪除,都沒有刪除數(shù)據(jù)庫中的表文件。若要?jiǎng)h除數(shù)據(jù)庫的同時(shí)刪除數(shù)據(jù)庫所包含的表,需要使用命令方式。
DELETEDATABASEDatabasename/?[DELETETABLES][RECYCLE]選擇[DELETETABLES]表示刪除其中的表文件。選擇[RECYCLE]表示把刪除的庫文件和表文件放到回收站。關(guān)閉當(dāng)前數(shù)據(jù)庫Closedatabase3.2建立數(shù)據(jù)庫表
在數(shù)據(jù)庫中建立表最簡(jiǎn)單和直接的方法是使用數(shù)據(jù)庫設(shè)計(jì)器。建立并打開數(shù)據(jù)庫設(shè)計(jì)器,在其空白處單擊鼠標(biāo)右鍵彈出“數(shù)據(jù)庫”快捷菜單,從中選擇“新建表”。3.2建立數(shù)據(jù)庫表新建表的方式數(shù)據(jù)庫菜單中的新建表選項(xiàng)文件的新建菜單Create表名命令字段的命名規(guī)則自由表字段名最長為10個(gè)字符。數(shù)據(jù)庫表字段名最長為128個(gè)字符。字段名必須以字母或漢字開頭。字段名可以由字母、漢字、數(shù)字和下劃線組成。字段名中不能包含空格。字段類型:l
字符型當(dāng)字段存儲(chǔ)內(nèi)容為由字母、數(shù)字、特殊符號(hào)以及標(biāo)點(diǎn)組成的字符串時(shí),可將字段設(shè)置為字符型。字符型字段存儲(chǔ)的字符長度最多可達(dá)254個(gè)字符,可以保存儲(chǔ)如姓名、地址、籍貫以及無需計(jì)算的數(shù)字(如郵政編碼、電話號(hào)碼)等文本信息。貨幣型用于保存貨幣類型的數(shù)值。它占用8個(gè)字節(jié)。日期型日期型字段用于保存不帶時(shí)間的日期值,包含年、月、日三項(xiàng),取值范圍從公元零年1月1日至公元9999年12月31日。日期時(shí)間型與日期型字段不同的是,日期時(shí)間型字段除了包含有年、月、日外,還包含了時(shí)、分、秒。日期時(shí)間值存儲(chǔ)在兩個(gè)四字節(jié)整數(shù)的8個(gè)字節(jié)中,第一個(gè)四字節(jié)的整數(shù)保存日期,剩下的四字節(jié)整數(shù)保存時(shí)間。時(shí)間的最小計(jì)時(shí)單位為百分之一秒。邏輯型當(dāng)字段內(nèi)容只能選取兩種值時(shí),可以采用邏輯型,它只含有兩個(gè)值:真(.T.)和假(.F.)。數(shù)值型數(shù)值型用于表示整數(shù)或小數(shù),它的長度在表中最長可達(dá)20位,它的表示范圍并不確定。例如,當(dāng)定義數(shù)值長度為8,其中小數(shù)位為4時(shí),它所表示的最大值為999.9999。小數(shù)點(diǎn)要占一位。雙精度型當(dāng)所存儲(chǔ)的數(shù)值精度要求很高或要求采用浮點(diǎn)數(shù)時(shí),采用雙精度型。它所表示的數(shù)值范圍要比數(shù)值型的范圍精確一些,最多可精確到小數(shù)點(diǎn)后7位。浮點(diǎn)型浮動(dòng)型在功能上等價(jià)于數(shù)值型,其長度在表中最長可達(dá)20位。整型當(dāng)對(duì)表的存儲(chǔ)空間和性能要求嚴(yán)格時(shí),可以使用整型字段保存整數(shù)信息。整型字段占用4個(gè)字節(jié)的空間,并且在表中以二進(jìn)制存儲(chǔ)。因此比其他數(shù)據(jù)類型占用的內(nèi)存更少,而且計(jì)算的速度也要快一些。它的數(shù)值范圍從-2147483648至2147483647。通用型通用型字段用于存儲(chǔ)電子表格、文檔、圖片等OLE信息,通用字段大小取決于OLE對(duì)象的大小以及OLE對(duì)象是以嵌入方式還是鏈接方式存入該字段。如果是嵌入方式,它所占用的空間要大一些。一般來說,通用型字段的實(shí)際存儲(chǔ)空間只受磁盤空間的限制,可以很大。但通用型字段在表中僅占4個(gè)字節(jié)。備注型備注型用于存儲(chǔ)長度難于確定的數(shù)據(jù)塊,它在表中占用4個(gè)字節(jié)。備注型不同于其他數(shù)據(jù)類型,它所保存的數(shù)據(jù)信息是存儲(chǔ)在單獨(dú)的文件中??罩担涸诙x表的字段時(shí),可以把‘NULL’選項(xiàng)選中,表示此字段可以為空值??罩当硎旧形磧?chǔ)存數(shù)據(jù)的字段,不同于空白字符串和‘0’值。作為關(guān)鍵字的字段是不允許為空值的。字段有效性:在“字段有效性”字段屬性組中,包含有三個(gè)字段屬性,分別是:“規(guī)則”:指定實(shí)施數(shù)據(jù)字段級(jí)有效性檢查的規(guī)則。這是字段避免輸入錯(cuò)誤內(nèi)容的一個(gè)重要措施?!靶畔ⅰ保褐付ó?dāng)輸入違反字段級(jí)有效性規(guī)則時(shí),顯示的錯(cuò)誤信息。“默認(rèn)值”:是指字段在沒有輸入數(shù)據(jù)的情況下,系統(tǒng)給定的值。打開表與修改表打開表USE表名修改表結(jié)構(gòu)MODIFYSTRUTURE修改已有字段增加新字段刪除不用字段關(guān)閉當(dāng)前表use將自由表添加到數(shù)據(jù)庫三種方法1)項(xiàng)目管理器2)數(shù)據(jù)庫設(shè)計(jì)器3)ADDTABLE命令
ADDTABLETableName|?[NAME
LongTableName]注:一個(gè)表只能屬于一個(gè)數(shù)據(jù)庫從數(shù)據(jù)庫中移出表三種方法1)項(xiàng)目管理器2)數(shù)據(jù)庫設(shè)計(jì)器3)REMOVETABLE命令
REMOVETABLETableName|?[DELETE][RECYCLE]添加記錄刪除記錄修改記錄查看記錄3.3表的基本操作3.3表的基本操作使用“項(xiàng)目管理器”瀏覽表中的記錄:(1)首先打開“項(xiàng)目管理器”并選擇“數(shù)據(jù)”選項(xiàng)卡。(2)在“數(shù)據(jù)”選項(xiàng)卡中選擇要瀏覽的表。(3)單擊“瀏覽”按鈕,系統(tǒng)即打開該表的瀏覽窗口。在瀏覽窗口中,一行顯示一條記錄,一列顯示一個(gè)字段的數(shù)據(jù)。字段名作為瀏覽窗口的列頭顯示在瀏覽窗口的最上方。缺省情況下,瀏覽窗口中的字段顯示順序由表結(jié)構(gòu)中定義的字段順序所決定。使用BROWSE命令瀏覽記錄命令格式BROWSE[FIELDSFieldname]命令功能該命令用于打開瀏覽窗口以瀏覽表中的記錄。FIELDSFieldname子句用于指定在瀏覽窗口中顯示哪些字段。Fieldname參數(shù)可以指定一個(gè)或多個(gè)字段名,字段名之間要用逗號(hào)分隔。修改記錄:在瀏覽器中修改記錄的值,只需要將光標(biāo)定位在要修改的記錄和字段上,然后直接修改就可以了。刪除記錄:主要分為物理刪除和邏輯刪除邏輯刪除:對(duì)紀(jì)錄添加邏輯刪除標(biāo)記,但紀(jì)錄并不從表中徹底刪除,依然存在。物理刪除:將有刪除標(biāo)記的紀(jì)錄從表中物理刪除①、邏輯刪除或設(shè)置刪除標(biāo)記命令:
deletedeletefor條件
功能:對(duì)滿足條件的紀(jì)錄設(shè)置刪除標(biāo)記注:a、打開邏輯刪除紀(jì)錄的表,并設(shè)置為當(dāng)前表
b、不指定條件和范圍,只邏輯刪除當(dāng)前紀(jì)錄例:邏輯刪除當(dāng)前表中年齡為20的學(xué)生記錄。
deletefor年齡=20刪除記錄:②恢復(fù)紀(jì)錄:
recallrecallfor條件功能:取消滿足條件或指定范圍內(nèi)記錄的刪除標(biāo)記例:recallfor性別=“女”③物理刪除:pack
功能:物理刪除表中帶有邏輯刪除標(biāo)記的記錄④物理刪除表中的全部記錄:zap增加記錄1、APPEND[BLANK]命令向表的尾部添加記錄。若選用BLANK參數(shù),則向表的尾部添加一條空記錄。2、INSERT[BEFORE][BLANK]
命令向當(dāng)前記錄(或之后)位置插入一條記錄。若選用BLANK選項(xiàng),則需再用EDIT、CHANGE、BROWSE命令交互輸入記錄的值。修改記錄的命令:1、用EDIT、CHANGE命令交互式修改。此命令默認(rèn)編輯的是當(dāng)前記錄。2、用REPLACE命令直接修改。REPLACEFileName1WITHeExpression1例如:Replaceall年齡with年齡+1顯示記錄的命令:LIST|DISPLAY例如:listfor性別=“男”查詢定位命令:GOrecno/top/bottom
命令功能該命令用于將記錄指針定位到指定的記錄上,使該記錄成為當(dāng)前記錄。SKIP[nRecords]
該命令用于將記錄指針相對(duì)于當(dāng)前記錄向前或向后移動(dòng)n條記錄。默認(rèn)是1,向前(負(fù)數(shù)),向后(正數(shù))LOCATEFOR[Expression]該命令可以在指定的記錄范圍內(nèi)將記錄指針定位到滿足給定條件的首條記錄上。CONTINUE該命令與LOCATE命令搭配使用,以查找滿足給定條件的下一條記錄。查詢定位命令:練習(xí)LOCATEFOR性別=“女”CONTINUELOCATEFOR性別=“男”CONTINUE基本概念若要按特定的順序定位,查看或操作表中的記錄,可以使用索引。
VFP索引是由指針構(gòu)成的文件,這些指針邏輯上按照索引關(guān)鍵字值進(jìn)行排序。索引文件和表文件分別存儲(chǔ),并且不改變表中記錄的物理順序。實(shí)際上,創(chuàng)建索引是創(chuàng)建一個(gè)由指向.dbf文件記錄的指針構(gòu)成的文件
3.4索引3.4索引主要索引類型主索引候選索引唯一索引普通索引四種索引的概念與區(qū)別:主索引:在一個(gè)表中,指定字段或表達(dá)式不允許有重復(fù)值,而且可以起到主關(guān)鍵字的作用的索引,為主索引。一個(gè)表只能創(chuàng)建一個(gè)主索引。候選索引:同主索引具有相同的特性,要求字段的唯一性。在一個(gè)表中,可以建立多個(gè)候選索引。唯一索引:指索引項(xiàng)的唯一性,而不是字段值的唯一。一個(gè)表可以建立多個(gè)唯一索引。普通索引:建立普通索引的字段,其字段值可以重復(fù)、可以為空,一個(gè)表可建立多個(gè)普通索引。3.4.2索引的創(chuàng)建按擴(kuò)展名分:?jiǎn)嗡饕募?idx)復(fù)合索引文件(.cdx)復(fù)合索引文件包括:結(jié)構(gòu)復(fù)合索引文件(文件名與表名相同,隨著表的打開而打開,表的關(guān)閉而關(guān)閉)非結(jié)構(gòu)復(fù)合索引文件(文件名與表名不相同,不能隨著表打開而打開,表關(guān)閉而關(guān)閉)利用表設(shè)計(jì)器建立索引的兩種方法:
1、在字段選項(xiàng)卡中快速生成
2、在索引選項(xiàng)卡中建立3.4.3用命令建立索引1.命令格式:INDEXON<索引表達(dá)式>TAG<索引名>[ASCENDING|DESCENDING][UNIQUE/CANDIDATE]2.命令功能:按指定<索引表達(dá)式>為當(dāng)前表創(chuàng)建一個(gè)指定名稱的索引。①、建立單索引文件:格式:indexon字段名(關(guān)鍵字)to單索引文件名ascending
功能:按指定字段建立指定的索引文件注:擴(kuò)展名為idx
只能按字段值升序排列②、建立侯選索引、唯一索引和普通索引格式:indexon關(guān)鍵字(字段名)tag索引標(biāo)識(shí)
ascending\descending\unique\candidate
功能:按指定的字段值建立指定的索引文件注:a、ascending指定按字段值升序排列,
descending指定按字段值降序排列。
b、unique指定建立唯一索引,
candidate指定建立侯選索引1.單字段索引例:
已有一表文件工資.DBF,按基本工資排序,執(zhí)行下述命令:
INDEXON基本工資TAGJBGZLIST
11002胡一民585.003.5103.5041010宋文彬596.943.0100.5031005張小612.274.0100.5061015黃小612.2712.0100.5081031丁衛(wèi)國612.2714.01012.0071022李紅衛(wèi)623.4512.01014.6021004愛民628.3420.0100.5051011胡一民645.2615.51018.34記錄號(hào)職工號(hào)姓名基本工資工齡工資補(bǔ)貼房電費(fèi)2.多字段索引如果在索引表達(dá)式中使用多個(gè)字段,就是根據(jù)多字段來排序記錄。例5:對(duì)工資.DBF表,按實(shí)發(fā)工資索引記錄。
USE工資
INDEXON基本工資+工齡工資+補(bǔ)貼–房電費(fèi)TAGSFGZLIST記錄號(hào)職工號(hào)姓名基本工資工齡工資補(bǔ)貼房電費(fèi)
11002胡一民585.003.5103.5041010宋文彬596.943.0100.5081031丁衛(wèi)國612.2714.01012.0031005張小華612.274.0100.5071022李紅衛(wèi)623.4512.01014.6061015黃小英612.2712.0100.5051011胡一民645.2615.51018.3421004王愛民628.3420.0100.50格式:setorderto[tag]索引名ascendingsetorderto[tag]索引名descending功能:將指定的索引文件設(shè)置為當(dāng)前索引文件注:a、tag可以省落
b、a\d指定重新進(jìn)行升序\降序*也可在打開索引文件時(shí)直接指定索引文件3.4.4使用索引3.4.5使用索引快速定位例如:seek‘005’order學(xué)號(hào)
display格式:seek字段值功能:在索引文件中將記錄指針定位到字段值對(duì)應(yīng)的記錄中注:a、tag指定快速定位的索引文件
b、a\d說明按升序\降序排列3.4.6刪除索引格式:deletetag索引標(biāo)識(shí)/all
功能:刪除指定的索引文件注:只能刪除結(jié)構(gòu)索引標(biāo)識(shí)直接在表設(shè)計(jì)器中刪除:例如:deletetag學(xué)號(hào)deletetagall3.5數(shù)據(jù)完整性在數(shù)據(jù)庫中數(shù)據(jù)完整性是指保證數(shù)據(jù)正確的特性,包括:實(shí)體完整性、域完整性、參照完整性
1、實(shí)體完整性:是保證表中記錄唯一的特性即在一個(gè)表中不允許有重復(fù)的記錄。在VF中利用主關(guān)鍵字或侯選關(guān)鍵字來保證表中的記錄唯一性,即保證實(shí)體唯一性。*侯選關(guān)鍵字:如果一個(gè)字段的值或幾個(gè)字段的值能夠唯一標(biāo)識(shí)表中的一條記錄,則這樣的字段稱為侯選關(guān)鍵字。*主索引和侯選索引具有相同作用3.5數(shù)據(jù)完整性
2、域完整性:主要指一個(gè)范圍。其中字段名、類型、寬度和字段有效性規(guī)則都屬于域完整性?!耙?guī)則”是邏輯表達(dá)式,“信息”是字符串表達(dá)式,“默認(rèn)值”類型以字段的類型確定3、參照完整性與表之間的關(guān)聯(lián)注:a、參照完整性是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的一個(gè)很重要的功能,在VF中為了建立參照完整性必須首先建立表之間的聯(lián)系b、建立聯(lián)系需要用到兩個(gè)表,這兩個(gè)表要屬于同一個(gè)數(shù)據(jù)庫。一般兩個(gè)表具有相同字段,對(duì)一個(gè)表的相同字段建立主索引,此表稱為父表。對(duì)另一表的相同字段建立普通索引,此表稱為子表。①、建立表之間聯(lián)系的方法為:在父表中建立主索引,子表中建立普通索引,然后拖動(dòng)父表的主索引文件到子表的普通索引文件放開建立連線即可。②、設(shè)置參照完整性約束:建立參照完整性之前需要先清理數(shù)據(jù)庫,清理數(shù)據(jù)庫包括物理刪除數(shù)據(jù)庫各個(gè)表中所有帶有刪除標(biāo)記的記錄。參照完整性三個(gè)規(guī)則:更新(級(jí)聯(lián)、限制、忽略)、刪除(級(jí)聯(lián)、限制、忽略)、插入(限制、忽略)注意:更新、刪除和插入的區(qū)別P116設(shè)置參照完整性約束清理數(shù)據(jù)庫(數(shù)據(jù)庫菜單->清理數(shù)據(jù)庫)右擊聯(lián)系->編輯參照完整性將自由表添加到數(shù)據(jù)庫項(xiàng)目管理器打開數(shù)據(jù)庫設(shè)計(jì)器時(shí),從“數(shù)據(jù)庫”菜單命令方式add
table
tablename|?
[name長表名]建立自由表前需要關(guān)閉當(dāng)前數(shù)據(jù)庫或取消當(dāng)前數(shù)據(jù)庫。
1、將自由表(aa)添加到數(shù)據(jù)庫中:命令:addtablestudentaddtablestudentname學(xué)生表以后在數(shù)據(jù)庫中使用命令:usestudent和use學(xué)生表是等價(jià)的
2、從數(shù)據(jù)庫中移出表:removetablestudent將自由表添加到數(shù)據(jù)庫從數(shù)據(jù)庫中移
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇醫(yī)藥職業(yè)學(xué)院《硬件描述語言》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年泡茶館閱讀測(cè)試題及答案
- 2025年大學(xué)審計(jì)考試試題及答案
- 2025年編外社區(qū)考試試題及答案
- 單片機(jī)復(fù)習(xí)題練習(xí)卷含答案
- 2025年長城寬帶考試題及答案
- 2025年石家莊話劇面試題及答案
- 2025年高考數(shù)學(xué)二輪復(fù)習(xí)專練:平面向量基本定理及坐標(biāo)表示【七大題型】
- 2025年焊工(高級(jí))證考試題庫及答案
- 2025年中文填空考試題及答案
- 《小小理財(cái)家》課件PPT
- 醫(yī)院ICU消毒隔離制度
- 《相交線與平行線》復(fù)習(xí)課一等獎(jiǎng)?wù)n件
- 部編版四年級(jí)語文下冊(cè)第3單元大單元整體教學(xué)設(shè)計(jì)課件(教案配套)
- q gw2sjss.65金風(fēng)風(fēng)力發(fā)電機(jī)組防腐技術(shù)rna部分歸檔版
- 廉政建設(shè)監(jiān)理實(shí)施細(xì)則
- 健康證體檢表
- LY/T 3263-2021澳洲堅(jiān)果栽培技術(shù)規(guī)程
- GB/T 26030-2010鎳鎳合金鍛件
- GB/T 19228.2-2011不銹鋼卡壓式管件組件第2部分:連接用薄壁不銹鋼管
- GB/T 14478-2012大中型水輪機(jī)進(jìn)水閥門基本技術(shù)條件
評(píng)論
0/150
提交評(píng)論