章VFP數(shù)據(jù)庫及其操作1_第1頁
章VFP數(shù)據(jù)庫及其操作1_第2頁
章VFP數(shù)據(jù)庫及其操作1_第3頁
章VFP數(shù)據(jù)庫及其操作1_第4頁
章VFP數(shù)據(jù)庫及其操作1_第5頁
已閱讀5頁,還剩117頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第3章VFP數(shù)據(jù)庫及其操作3.1VFP數(shù)據(jù)庫及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個表同時使用掌握數(shù)據(jù)庫的建立、使用、修改、刪除方法掌握數(shù)據(jù)庫表和自由表的建立、修改表結(jié)構(gòu),輸入、瀏覽、增加、刪除、修改、顯示、查詢定位記錄的方法掌握表的索引的建立、使用、刪除的操作能夠建立表之間的聯(lián)系,并能同時使用多個表本章知識點(diǎn)與要求:第3章VFP數(shù)據(jù)庫及其操作3.1VFP數(shù)據(jù)庫及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個表同時使用數(shù)據(jù)庫(DB):答:不。數(shù)據(jù)庫主要是通過對表的操作達(dá)到組織和管理數(shù)據(jù)的目的。表是組織數(shù)據(jù)、處理數(shù)據(jù)的基本單元。數(shù)據(jù)庫直接管理數(shù)據(jù)嗎?如果把日常工作中的各個文件、資料看成一個個數(shù)據(jù)的話,那么表就是存放這些文件、資料的文件夾,數(shù)據(jù)庫就是存放文件夾的文件柜。文件夾(表)

是我們?nèi)粘9ぷ鞑僮鞯膶ο?,文件?數(shù)據(jù)庫)擔(dān)負(fù)著承載、組織和管理文件夾(表)的作用“皮之不存,毛將焉附?”,因此,我們先學(xué)習(xí)數(shù)據(jù)庫的相關(guān)知識。引言存儲在計算機(jī)存儲設(shè)備上的結(jié)構(gòu)化的數(shù)據(jù)集合。3.1.1建立數(shù)據(jù)庫【方法一:】在項目管理器中新建數(shù)據(jù)庫菜單或工具欄“新建”→選擇“數(shù)據(jù)庫”→新建文件或向?qū)А痉椒ㄈ骸棵罘绞紺reatedatabase<數(shù)據(jù)庫名>【方法二:】菜單方式前兩種方式新建數(shù)據(jù)庫后會自動打開數(shù)據(jù)庫設(shè)計器命令方式不自動打開數(shù)據(jù)庫設(shè)計器數(shù)據(jù)庫文件是以(.dbc)為擴(kuò)展名文件3.1.2打開數(shù)據(jù)庫【方法一:】項目管理器中菜單或工具欄“打開”【方法三:】命令方式opendatabase<數(shù)據(jù)庫名>[exclusive|shared]【方法二:】菜單方式選中單擊若同時打開了多個數(shù)據(jù)庫,可以指定當(dāng)前的數(shù)據(jù)庫:SETDATABASETO[數(shù)據(jù)庫名]【說明:】[數(shù)據(jù)庫名]必須為已經(jīng)打開的數(shù)據(jù)庫。如果省略數(shù)據(jù)庫名,則不指定當(dāng)前數(shù)據(jù)庫(沒有當(dāng)前數(shù)據(jù)庫)。3.1.5刪除數(shù)據(jù)庫【方法一:】在項目管理器中【方法二:】命令方式選中單擊deletedatabase<數(shù)據(jù)庫名>[deletetables]刪除指定的數(shù)據(jù)庫,如果帶deletetables子句時,連同數(shù)據(jù)庫內(nèi)的表一起刪除,否則,數(shù)據(jù)庫內(nèi)的表變?yōu)樽杂杀淼?章VFP數(shù)據(jù)庫及其操作3.1VFP數(shù)據(jù)庫及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個表同時使用引言在數(shù)據(jù)庫系統(tǒng)中也存在類似情況:一些表存放于數(shù)據(jù)庫之內(nèi)一些表存放于數(shù)據(jù)庫之外。文件夾存放在文件柜里文件夾沒有存放在文件柜里存在于某一個數(shù)據(jù)庫中,接受數(shù)據(jù)庫管理的數(shù)據(jù)表稱為數(shù)據(jù)庫表獨(dú)立存在數(shù)據(jù)庫之外,不受任何數(shù)據(jù)庫管理的數(shù)據(jù)表稱為自由表統(tǒng)稱數(shù)據(jù)表或表如果把日常工作中的各個文件、資料看成一個個數(shù)據(jù)的話,那么表就是存放這些文件、資料的文件夾,數(shù)據(jù)庫就是存放文件夾的文件柜。問題:自由表與數(shù)據(jù)庫表有何異同?兩者可以互相轉(zhuǎn)換嗎?(1)兩者都是一個以(.dbf)為擴(kuò)展名的獨(dú)立文件,使用和操作方法沒有任何區(qū)別。(2)自由表獨(dú)立存在,不與任何數(shù)據(jù)庫相關(guān)聯(lián);數(shù)據(jù)庫表存在于數(shù)據(jù)庫中,與某一個數(shù)據(jù)庫相關(guān)聯(lián)。(3)數(shù)據(jù)庫表中字段名的長度為1-128個字符,自由表中字段名的長度不超過10個字符。(4)將數(shù)據(jù)庫表從數(shù)據(jù)庫中移除,就變成自由表;把自由表添加到數(shù)據(jù)庫中就變成數(shù)據(jù)庫表,二者可以轉(zhuǎn)換3.2.1建立表菜單或工具欄按鈕“新建”→選擇“表”→新建文件或向?qū)А痉椒ㄒ唬骸宽椖抗芾砥髦小痉椒ㄈ骸棵罘绞健痉椒ㄋ模骸坎藛畏绞健痉椒ǘ骸繑?shù)據(jù)庫管理器中Create[表文件名]注意:使用方法三、四新建數(shù)據(jù)表時,如果存在已經(jīng)打開的數(shù)據(jù)庫,則新建的數(shù)據(jù)表為數(shù)據(jù)庫表,否則,為自由表。1、建立表文件2、設(shè)計表的結(jié)構(gòu)數(shù)據(jù)庫表的表設(shè)計器自由表的表設(shè)計器在VFP6.0中字段變量的數(shù)據(jù)類型有13種:數(shù)值型、字符型、貨幣型、日期型、日期時間型、邏輯型、整型、浮點(diǎn)型、雙精度型、備注型、通用型、備注型(二進(jìn)制)、通用型(二進(jìn)制)。(1)字段名:表中每一列的標(biāo)題稱為字段名,將來可以通過字段名直接引用表中的數(shù)據(jù),字段名的命名遵循變量命名規(guī)則,且同一個表中字段名不能重復(fù)。(2)類型:字段的數(shù)據(jù)類型,決定了該字段能夠存儲哪一種類型的數(shù)據(jù)。(6)NULL:設(shè)置該字段是否允許為空值(值為不確定狀態(tài))。(3)寬度:字段寬度,決定了該字段能夠放數(shù)據(jù)的最大字符數(shù)或數(shù)值位數(shù)。(4)小數(shù)位數(shù):定義數(shù)值型、浮點(diǎn)型、雙精度型數(shù)據(jù)需保留的小數(shù)位數(shù)。(5)索引:是否將當(dāng)前字段為設(shè)置索引字段。(后面章節(jié)詳細(xì)講)3、輸入表的記錄注意:(1)輸入的數(shù)據(jù)要與字段的類型、寬度、小數(shù)點(diǎn)位數(shù)一致。(2)備注型、通用型數(shù)據(jù)的輸入需要在專門文件中輸入。備注型輸入內(nèi)容后表中“memo”變?yōu)椤癕emo”字樣;通用型輸入內(nèi)容后表中“gen”變?yōu)椤癎en”字樣。如果是數(shù)據(jù)庫表,還可以設(shè)置字段有效性、格式、掩碼等。顯示組框:①格式:確定字段顯示時采用的大小寫、字體和樣式等。字符功能字符功能!字母轉(zhuǎn)換成大寫B(tài)左對齊J右對齊I居中T刪除前導(dǎo)空格和結(jié)尾空格(用括號括住負(fù)數(shù)YS使用系統(tǒng)短格式日期顯示YL使用系統(tǒng)長格式日期顯示常用格式字符及功能如下表顯示組框:②輸入掩碼:用于設(shè)置字段的輸入格式,屏蔽非法格式的輸入,減少輸入錯誤。掩碼字符及功能如下表:字符功能字符功能A只允許字母9只允許數(shù)字和+-號L只允許邏輯數(shù)據(jù)N只允許字母和數(shù)字#允許數(shù)字、+-號和空格X允許任何字符如果是數(shù)據(jù)庫表,還可以設(shè)置字段有效性、格式、掩碼等。顯示組框:③標(biāo)題:用于字段顯示時的標(biāo)題,沒有則顯示字段名。如果是數(shù)據(jù)庫表,還可以設(shè)置字段有效性、格式、掩碼等。如果是數(shù)據(jù)庫表,還可以設(shè)置字段有效性、格式、掩碼等。字段有效性組框:①規(guī)則:建立檢查字段輸入數(shù)據(jù)是否有效的規(guī)則(表達(dá)式)。定義字段有效性規(guī)則、違反規(guī)則時的提示信息和字段的默認(rèn)值。②信息:當(dāng)輸入數(shù)據(jù)違反規(guī)則時的提示信息。③默認(rèn)值:預(yù)設(shè)輸入數(shù)據(jù)的默認(rèn)值。注意:規(guī)則的結(jié)果為邏輯值。信息是字符串表達(dá)式。默認(rèn)值視字段類型而定。如果是數(shù)據(jù)庫表,還可以設(shè)置字段有效性、格式、注釋等??梢詾槊恳粋€字段添加注釋說明,便于日后或其他人對數(shù)據(jù)表進(jìn)行維護(hù)。字段注釋:3.2.2表的基本操作只有先打開表,才能對表進(jìn)行相關(guān)的操作。1、打開表菜單方式命令方式use<表文件名>[exclusive|shared]獨(dú)占方式共享方式2、主窗口顯示表結(jié)構(gòu)List|displaystructure3、復(fù)制表結(jié)構(gòu)copystructureto<新表文件名>[fields<字段名表>]

4、修改表結(jié)構(gòu)菜單方式命令方式數(shù)據(jù)庫方式項目管理器方式modifystructure5、瀏覽表的記錄菜單方式命令方式數(shù)據(jù)庫方式項目管理器方式browse[fields<字段名表>][for<條件>]……list|display[[fields]<字段名表>][for<條件>]……主窗口顯示表的形式顯示6、追加記錄菜單方式命令方式Append[blank]在文件尾追加一條或多條記錄打開表輸入窗口供用戶追加記錄。當(dāng)有[blank]選項時,在表尾追加一條空記錄,不打開表輸入窗口。命令方式insert[blank][before]【說明】(1)缺省[blank]時,彈出記錄編輯窗口,由用戶輸入插入的內(nèi)容否則,系統(tǒng)自動插入一條空記錄,而不打開記錄編輯窗口;(2)有[before]選項時,在當(dāng)前記錄前插入;否則在當(dāng)前記錄后插入(3)插入新記錄后,其后面記錄均自動順次后移。7、插入記錄在指定位置插入一條或多條新記錄8、修改記錄【功能】打開表編輯窗口供用戶修改記錄。菜單方式命令方式change|edit[fields<字段名表>][for<條件>]replace<字段1>with<表達(dá)式1>[,字段2>with<表達(dá)式2>……]

[for<條件1>]【命令二】【例】對所有少數(shù)名族的學(xué)生的成績都加上10分Replace成績with成績+10forleft(民族,2)!=“漢”Change、Edit、Replace【命令一】【功能】對滿足條件的記錄,用表達(dá)式的值直接替換字段的值不打開表編輯窗口。9、刪除記錄菜單方式命令方式Delete、recall、pack、zap邏輯刪除物理刪除給要刪除的記錄加上刪除標(biāo)記,可以恢復(fù)把加了邏輯刪除標(biāo)記的記錄從表中永久地清除掉,不可以恢復(fù)Delete[FOR<條件>]在滿足條件的記錄加上邏輯刪除標(biāo)記。Recall[FOR<條件>]撤銷被邏輯刪除的記錄。Pack

Zap

物理刪除帶邏輯刪除標(biāo)記記錄。物理刪除當(dāng)前表中所有記錄,無論是否有邏輯刪除標(biāo)記。10、記錄的查詢定位前面很多地方提到“當(dāng)前記錄”,什么是當(dāng)前記錄?數(shù)據(jù)表建立后,系統(tǒng)會為表設(shè)置一個指向記錄的指針,記錄指針?biāo)赶虻挠涗浄Q為當(dāng)前記錄。記錄的定位就是將記錄指針指向指定的記錄。跟記錄及指針位置有關(guān)的幾個函數(shù)recno()返回當(dāng)前記錄的記錄號reccount()返回當(dāng)前表的總記錄個數(shù),包括邏輯刪除的記錄BOF()判斷指針是否指向表文件頭,若指針指向文件頭,返回真,否則返回假;判斷指針是否指向表文件尾,若指針指向文件尾,返回真,否則返回假;EOF()在表第一條(首記錄top)的上面有一個文件起始標(biāo)志,稱文件頭BeginningOfFile(BOF);在表最后一條(尾記錄bottom)的下面有一個文件結(jié)束標(biāo)志,稱文件尾EndOfFile(EOF);文件起始標(biāo)志首記錄(top)第2個記錄……第i個記錄….尾記錄(bottom)文件結(jié)束標(biāo)志表文件邏輯結(jié)構(gòu)記錄指針10、記錄的查詢定位菜單方式命令方式go、skip、locate菜單“表”|“轉(zhuǎn)到記錄”go

n|top|bottom把記錄指針移動到指定記錄。絕對移動n:將記錄指針移動到第n條記錄,n為正整數(shù);top:將記錄指針移動到當(dāng)前表的第一條記錄;bottom:將記錄指針移動到當(dāng)前表的最后一條記錄;skip

n

相對于當(dāng)前記錄,記錄指針向上或向下的移動若干條記錄;相對移動n為正數(shù)時,向下移動n條記錄;n為負(fù)數(shù)時,向上移動n條記錄。文件起始標(biāo)志首記錄(top)第2個記錄……第n個記錄….尾記錄(bottom)文件結(jié)束標(biāo)志【例】use學(xué)生基本信息表?reccount()?recno()skip3?recno()go5?recno()skip-3?recno()gobottom?recno()?eof()skip?eof()gotop?bof()skip-1?bof()記錄查詢定位的locate命令【格式】Locatefor<條件>【功能】執(zhí)行該命令后,記錄指針定位在滿足條件的第一條記錄上,若無滿足條件的記錄,則指針指向文件結(jié)束位置。若要使指針指向下一條滿足條件的記錄,需要使用continue命令配合。為了判斷l(xiāng)ocate或continue是否找到了滿足條件的記錄,可以使用found()函數(shù),如果有滿足條件的記錄,該函數(shù)返回真,否則返回假。Locate常用的結(jié)構(gòu)是:Locatefor條件dowhilefound()………continueenddo該結(jié)構(gòu)的功能是首先找到滿足條件的第一條記錄,接著在循環(huán)體內(nèi)進(jìn)行有關(guān)處理,然后使用continue找到下一條滿足條件的記錄,并進(jìn)行處理,如此循環(huán),一直到最后一條記錄。【例】編程實(shí)現(xiàn):從鍵盤輸入學(xué)生姓名,在學(xué)生信息.DBF中按姓名進(jìn)行查詢,若查到則顯示該記錄,若沒查到顯示“查無此人”。

clearaccept“請輸入姓名:”toxmmuse學(xué)生信息locateforxm=xmmiffound()displayelse?“查無此人!”endifuse11、表與表及表與excel文件之間的數(shù)據(jù)交換菜單方式命令方式【格式】Copyto<新文件名>[文件格式][范圍][fields<字段名表>][for<條件>][while<條件>]【功能】把當(dāng)前表中的全部或部分?jǐn)?shù)據(jù)復(fù)制到新文件中?!菊f明】

1)導(dǎo)出表或txt可省略文件格式,導(dǎo)出excel等需要文件格式2)fields<字段名表>用以指定復(fù)制到新文件中的字段結(jié)構(gòu)及順序,缺省時為全部字段。3)范圍子句有:all、nextn、recordn和rest。若省略則為all4)for/while設(shè)定條件(1)表---->表、excel、文本等for和while的區(qū)別:菜單”文件”-”導(dǎo)出”for和while的區(qū)別:

for:在指定范圍內(nèi)選擇每一條符合條件的記錄;while:在指定范圍內(nèi),從當(dāng)前記錄開始(范圍為recordn時除外)操作滿足條件的記錄,一旦遇到不滿足條件的記錄即終止命令的執(zhí)行,即使后面有滿足條件的記錄也不再操作。若當(dāng)前記錄就不滿足條件,則選擇的記錄數(shù)為0。11、表與表及表與excel文件之間的數(shù)據(jù)交換(2)excel、文本等---->表菜單”文件”-”導(dǎo)入”菜單方式命令方式菜單”表”-”追加記錄…”appendfrom<文件名>[fields<字段名表>][for<條件>][excel文件格式sheetsheetname]例:Appendfromxuesheng.xlsxl5&&excelexcel5.0文件格式(3)從表、excel、文本等文件向表追加數(shù)據(jù)第3章VFP數(shù)據(jù)庫及其操作3.1VFP數(shù)據(jù)庫及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個表同時使用3.3.1排序排序是另外生成一個按要求排好順序的新表【格式】sortto<新文件名>on<字段1>[/A][/D][/C][,<字段2>[/a][/d][/c]….][fields<字段名表>][for<條件>]【功能】對記錄先按指定<字段1>的指定順序重新排序后生成一個新的表文件。【說明】

1)必須先打開排序的數(shù)據(jù)表文件。2)存在<字段1>,<字段2>,…時,先按<字段1>排序,字段1相同時再按<字段2>排序,依次類推。3)/A為升序,/D為降序;缺省時按升序。/C排序時不區(qū)分大小寫。例:把student表中的記錄按出生日期和姓名升序排序

sortto

new1

on

csrq,xm3.3.2索引為加快對表的查詢操作,并且不改變表中記錄的物理順序,創(chuàng)建的由指向表記錄的指針構(gòu)成的,且這些指針邏輯上按照指定字段或字段表達(dá)式的值進(jìn)行排序的文件就是索引。這個指定的字段或字段表達(dá)式就稱為索引表達(dá)式。索引文件和表文件分別存儲,當(dāng)表文件與索引文件一起使用時,就能按索引文件中記載的順序?qū)υ磉M(jìn)行操作。單索引文件(.IDX)結(jié)構(gòu)復(fù)合索引復(fù)合索引文件(.CDX)非結(jié)構(gòu)復(fù)合索引結(jié)構(gòu)化與非結(jié)構(gòu)化索引文件的區(qū)別:1、結(jié)構(gòu)化復(fù)合索引的主文件名與表文件名相同,索引文件隨表的打開而打開,在更新記錄時自動維護(hù);使用方便,最常用。2、而非結(jié)構(gòu)化復(fù)合索引文件的主文件名與表文件名不同,索引文件必須單獨(dú)打開。索引文件的分類只能按一個字段建立索引,也就是只能有一個索引項可以按多個字段建立索引,也即是可以包含多個索引項,每個索引項都有一個索引標(biāo)識,代表記錄的某一種邏輯順序VFP中的索引分為主索引、候選索引、普通索引、惟一索引四種:主索引:僅適用于數(shù)據(jù)庫表,其索引字段不允許有重復(fù)值,一個數(shù)據(jù)庫表只能建立一個主索引。候選索引:其索引字段不允許有重復(fù)值,但一個表可以創(chuàng)建多個候選索引。普通索引:其索引字段中允許出現(xiàn)重復(fù)值,一個表可以創(chuàng)建多個普通索引。唯一索引:其索引字段中允許出現(xiàn)重復(fù)值,一個表可以創(chuàng)建多個唯一索引。其“唯一”表示索引字段出現(xiàn)重復(fù)值時,索引列表中只保留首次出現(xiàn)此值的記錄。1、創(chuàng)建索引命令方式用表設(shè)計器創(chuàng)建索引【格式1】indexon<索引表達(dá)式>to<單索引文件名>[for<條件>][unique|candidate][compact][additive]【格式2】indexon<索引表達(dá)式>tag<索引標(biāo)識名>[of<索引文件名>][for<條件>][ascending|descending][unique|candidate]【說明】①ascending升序,descending降序,compact建立一個壓縮的單索引文件,復(fù)合索引總是壓縮的。②unique建立唯一索引,candidate建立候選索引;都缺省時將建立普通索引,additive不關(guān)閉已打開的索引,否則關(guān)閉。命令方式不能建立主索引。在表設(shè)計器創(chuàng)建的索引都是結(jié)構(gòu)化復(fù)合索引use職工.dbf(1)以倉庫號為索引字段,建立單索引文件sy_test.idx,普通索引indexon倉庫號tosy_test.idx(2)以職工號為索引字段,建立一個索引標(biāo)識為ckhjgfh的結(jié)構(gòu)復(fù)合索引文件職工.cdx,候選索引indexon職工號tagzghjgfhcandidate(3)以倉庫號為第一索引,以職工號為第二索引字段,建立一個索引標(biāo)識為ckzgh的非結(jié)構(gòu)復(fù)合索引文件,唯一索引Indexon倉庫號+職工號tagckzghofsy_test.cdxunique[例]用命令為職工.dbf建立索引2、使用索引與表同名的結(jié)構(gòu)化索引文件在打開表的同時自動打開,但對于單索引文件和非結(jié)構(gòu)索引文件,則必須專門打開。(1)打開索引文件【格式1】use<表文件名>index<索引文件名表>在打開表的同時打開與之相關(guān)的一系列索引文件【格式2】setindexto<索引文件名表>在表已打開的情況下,打開與之相關(guān)的一系列索引文件【例】打開剛才建立的索引文件sy_test.idx和sy_test.cdxuse

職工.dbfindex

sy_test.idx,sy_test.cdxsetindexto

sy_test.idx,sy_test.cdx2、使用索引(2)指定當(dāng)前索引【格式】setorderto<單索引文件名>|tag<索引標(biāo)識>[of<非結(jié)構(gòu)復(fù)合索引文件名>]【功能】設(shè)置對排序起作用的索引find<字符串>|<數(shù)值型常數(shù)>【功能】在已打開索引文件的表中快速搜索索引表達(dá)式的值與<字符串>|<數(shù)值型常數(shù)>相匹配的第一條記錄。若查找成功,記錄指針指向該記錄,found()為真,否則,記錄指針指向表文件結(jié)束標(biāo)識,found()為假。

seek<表達(dá)式>功能同find2、使用索引(3)使用索引快速定位2、使用索引(4)關(guān)閉索引文件【方式1】

關(guān)閉表文件關(guān)閉結(jié)構(gòu)復(fù)合索引文件【方式2】

關(guān)閉索引命令

closeindexessetindexto

關(guān)閉非結(jié)構(gòu)復(fù)合索引和單索引文件。2、使用索引(5)刪除索引【方式1】表設(shè)計器中手動刪除【方式2】命令方式

deletetag<索引名表>[of<索引文件名>]|all刪除復(fù)合索引

deletefile<索引文件名>刪除單索引第3章VFP數(shù)據(jù)庫及其操作3.1VFP數(shù)據(jù)庫及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個表同時使用數(shù)據(jù)完整性一般包括:實(shí)體完整性、域完整性、參照完整性(1)實(shí)體完整性

指表中記錄的唯一性,即不允許有重復(fù)的記錄;一般利用主關(guān)鍵字(主索引)或候選關(guān)鍵字(候選索引)來保證表中記錄的唯一性。

(2)域完整性指字段的取值應(yīng)滿足相應(yīng)的條件。如:數(shù)據(jù)類型的要求,字段有效性規(guī)則等。3.4.1數(shù)據(jù)完整性(3)參照完整性參照完整性與表之間的關(guān)聯(lián)有關(guān),其含義是:當(dāng)插入、刪除或修改一個表中的數(shù)據(jù)時,通過參照引用相互關(guān)聯(lián)的另一個表中的數(shù)據(jù),來檢查對表的數(shù)據(jù)操作是否正確.數(shù)據(jù)完整性一般包括:實(shí)體完整性、域完整性、參照完整性參照完整性是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的一個很重要的功能。在VisualFoxpro中為了建立參照完整性,必須首先建立表之間的聯(lián)系(關(guān)系)。

3.4.2建立表之間的聯(lián)系在關(guān)系數(shù)據(jù)庫中一般通過連接表與表之間的字段來體現(xiàn)和表示聯(lián)系。一個表中的一條記錄,在另一個表中只有一條記錄與之對應(yīng),且要求兩個表都必須具有相同索引字段,且索引字段為主索引或候選索引一個表中的一條記錄,在另一個表中有多條記錄與之對應(yīng),且要求兩個表都必須具有相同索引字段,且一方索引字段為主索引或候選索引,多方索引字段為普通索引。一對一關(guān)系:一對多關(guān)系:兩個表之間的關(guān)系主要有兩種:建立表之間的關(guān)系一般在數(shù)據(jù)庫設(shè)計器中進(jìn)行【例】訂貨數(shù)據(jù)庫中有倉庫、職工、訂購單、供應(yīng)商四個表,請分別建立、修改各個有關(guān)聯(lián)的表之間的聯(lián)系

3.4.3設(shè)置參照完整性建立參照完整性之前必須首先清理數(shù)據(jù)庫菜單“數(shù)據(jù)庫”-“清理數(shù)據(jù)庫”命令packdatabase然后用鼠標(biāo)右擊表之間聯(lián)系線,右鍵菜單中選擇“編輯參照完整性”第3章VFP數(shù)據(jù)庫及其操作3.1VFP數(shù)據(jù)庫及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個表同時使用利用數(shù)據(jù)庫設(shè)計器建立的表之間的聯(lián)系是永久關(guān)系,還可以使用命令建立表之間的臨時聯(lián)系。3.4.2表之間的聯(lián)系setrelationto<關(guān)系表達(dá)式>into<表名>在當(dāng)前工作區(qū)的表與指定表名的表建立臨時關(guān)系。例:通過職工號索引建立職工表與訂購單之間的臨時關(guān)系use職工.dbfin1order職工號use訂購單.dbfin2order職工號setrelationto職工號into訂購單第3章VFP數(shù)據(jù)庫及其操作3.1VFP數(shù)據(jù)庫及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個表同時使用第3章VFP數(shù)據(jù)庫及其操作3.1VFP數(shù)據(jù)庫及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個表同時使用12、記錄數(shù)據(jù)的統(tǒng)計與計算(1)求記錄個數(shù)命令count【格式】count

[<范圍>][FOR<條件>][to<內(nèi)存變量>]【功能】統(tǒng)計在指定范圍內(nèi)滿足條件的記錄的個數(shù),并可以把結(jié)果賦值給內(nèi)存變量【例】統(tǒng)計職工表中工資大于1300的職工數(shù)

countfor工資>1300togzs?gzs12、記錄數(shù)據(jù)的統(tǒng)計與計算(2)求和命令sum【例】統(tǒng)計倉庫號為“WH2”的職工的總工資sum工資for倉庫號="WH2"tozgz?"WH2"的總工資=",zgz【格式】sum

<數(shù)值型表達(dá)式>[<范圍>][FOR<條件>][to<內(nèi)存變量>]【功能】對數(shù)值型表

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論