版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章VFP數(shù)據(jù)庫(kù)及其操作3.1VFP數(shù)據(jù)庫(kù)及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個(gè)表同時(shí)使用掌握數(shù)據(jù)庫(kù)的建立、使用、修改、刪除方法掌握數(shù)據(jù)庫(kù)表和自由表的建立、修改表結(jié)構(gòu),輸入、瀏覽、增加、刪除、修改、顯示、查詢定位記錄的方法掌握表的索引的建立、使用、刪除的操作能夠建立表之間的聯(lián)系,并能同時(shí)使用多個(gè)表本章知識(shí)點(diǎn)與要求:第3章VFP數(shù)據(jù)庫(kù)及其操作3.1VFP數(shù)據(jù)庫(kù)及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個(gè)表同時(shí)使用數(shù)據(jù)庫(kù)(DB):答:不。數(shù)據(jù)庫(kù)主要是通過(guò)對(duì)表的操作達(dá)到組織和管理數(shù)據(jù)的目的。表是組織數(shù)據(jù)、處理數(shù)據(jù)的基本單元。數(shù)據(jù)庫(kù)直接管理數(shù)據(jù)嗎?如果把日常工作中的各個(gè)文件、資料看成一個(gè)個(gè)數(shù)據(jù)的話,那么表就是存放這些文件、資料的文件夾,數(shù)據(jù)庫(kù)就是存放文件夾的文件柜。文件夾(表)
是我們?nèi)粘9ぷ鞑僮鞯膶?duì)象,文件柜(數(shù)據(jù)庫(kù))擔(dān)負(fù)著承載、組織和管理文件夾(表)的作用“皮之不存,毛將焉附?”,因此,我們先學(xué)習(xí)數(shù)據(jù)庫(kù)的相關(guān)知識(shí)。引言存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)設(shè)備上的結(jié)構(gòu)化的數(shù)據(jù)集合。3.1.1建立數(shù)據(jù)庫(kù)【方法一:】在項(xiàng)目管理器中新建數(shù)據(jù)庫(kù)菜單或工具欄“新建”→選擇“數(shù)據(jù)庫(kù)”→新建文件或向?qū)А痉椒ㄈ骸棵罘绞紺reatedatabase<數(shù)據(jù)庫(kù)名>【方法二:】菜單方式前兩種方式新建數(shù)據(jù)庫(kù)后會(huì)自動(dòng)打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器命令方式不自動(dòng)打開(kāi)數(shù)據(jù)庫(kù)設(shè)計(jì)器數(shù)據(jù)庫(kù)文件是以(.dbc)為擴(kuò)展名文件3.1.2打開(kāi)數(shù)據(jù)庫(kù)【方法一:】項(xiàng)目管理器中菜單或工具欄“打開(kāi)”【方法三:】命令方式opendatabase<數(shù)據(jù)庫(kù)名>[exclusive|shared]【方法二:】菜單方式選中單擊若同時(shí)打開(kāi)了多個(gè)數(shù)據(jù)庫(kù),可以指定當(dāng)前的數(shù)據(jù)庫(kù):SETDATABASETO[數(shù)據(jù)庫(kù)名]【說(shuō)明:】[數(shù)據(jù)庫(kù)名]必須為已經(jīng)打開(kāi)的數(shù)據(jù)庫(kù)。如果省略數(shù)據(jù)庫(kù)名,則不指定當(dāng)前數(shù)據(jù)庫(kù)(沒(méi)有當(dāng)前數(shù)據(jù)庫(kù))。3.1.5刪除數(shù)據(jù)庫(kù)【方法一:】在項(xiàng)目管理器中【方法二:】命令方式選中單擊deletedatabase<數(shù)據(jù)庫(kù)名>[deletetables]刪除指定的數(shù)據(jù)庫(kù),如果帶deletetables子句時(shí),連同數(shù)據(jù)庫(kù)內(nèi)的表一起刪除,否則,數(shù)據(jù)庫(kù)內(nèi)的表變?yōu)樽杂杀淼?章VFP數(shù)據(jù)庫(kù)及其操作3.1VFP數(shù)據(jù)庫(kù)及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個(gè)表同時(shí)使用引言在數(shù)據(jù)庫(kù)系統(tǒng)中也存在類似情況:一些表存放于數(shù)據(jù)庫(kù)之內(nèi)一些表存放于數(shù)據(jù)庫(kù)之外。文件夾存放在文件柜里文件夾沒(méi)有存放在文件柜里存在于某一個(gè)數(shù)據(jù)庫(kù)中,接受數(shù)據(jù)庫(kù)管理的數(shù)據(jù)表稱為數(shù)據(jù)庫(kù)表獨(dú)立存在數(shù)據(jù)庫(kù)之外,不受任何數(shù)據(jù)庫(kù)管理的數(shù)據(jù)表稱為自由表統(tǒng)稱數(shù)據(jù)表或表如果把日常工作中的各個(gè)文件、資料看成一個(gè)個(gè)數(shù)據(jù)的話,那么表就是存放這些文件、資料的文件夾,數(shù)據(jù)庫(kù)就是存放文件夾的文件柜。問(wèn)題:自由表與數(shù)據(jù)庫(kù)表有何異同??jī)烧呖梢曰ハ噢D(zhuǎn)換嗎?(1)兩者都是一個(gè)以(.dbf)為擴(kuò)展名的獨(dú)立文件,使用和操作方法沒(méi)有任何區(qū)別。(2)自由表獨(dú)立存在,不與任何數(shù)據(jù)庫(kù)相關(guān)聯(lián);數(shù)據(jù)庫(kù)表存在于數(shù)據(jù)庫(kù)中,與某一個(gè)數(shù)據(jù)庫(kù)相關(guān)聯(lián)。(3)數(shù)據(jù)庫(kù)表中字段名的長(zhǎng)度為1-128個(gè)字符,自由表中字段名的長(zhǎng)度不超過(guò)10個(gè)字符。(4)將數(shù)據(jù)庫(kù)表從數(shù)據(jù)庫(kù)中移除,就變成自由表;把自由表添加到數(shù)據(jù)庫(kù)中就變成數(shù)據(jù)庫(kù)表,二者可以轉(zhuǎn)換3.2.1建立表菜單或工具欄按鈕“新建”→選擇“表”→新建文件或向?qū)А痉椒ㄒ唬骸宽?xiàng)目管理器中【方法三:】命令方式【方法四:】菜單方式【方法二:】數(shù)據(jù)庫(kù)管理器中Create[表文件名]注意:使用方法三、四新建數(shù)據(jù)表時(shí),如果存在已經(jīng)打開(kāi)的數(shù)據(jù)庫(kù),則新建的數(shù)據(jù)表為數(shù)據(jù)庫(kù)表,否則,為自由表。1、建立表文件2、設(shè)計(jì)表的結(jié)構(gòu)數(shù)據(jù)庫(kù)表的表設(shè)計(jì)器自由表的表設(shè)計(jì)器在VFP6.0中字段變量的數(shù)據(jù)類型有13種:數(shù)值型、字符型、貨幣型、日期型、日期時(shí)間型、邏輯型、整型、浮點(diǎn)型、雙精度型、備注型、通用型、備注型(二進(jìn)制)、通用型(二進(jìn)制)。(1)字段名:表中每一列的標(biāo)題稱為字段名,將來(lái)可以通過(guò)字段名直接引用表中的數(shù)據(jù),字段名的命名遵循變量命名規(guī)則,且同一個(gè)表中字段名不能重復(fù)。(2)類型:字段的數(shù)據(jù)類型,決定了該字段能夠存儲(chǔ)哪一種類型的數(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ù)的輸入需要在專門(mén)文件中輸入。備注型輸入內(nèi)容后表中“memo”變?yōu)椤癕emo”字樣;通用型輸入內(nèi)容后表中“gen”變?yōu)椤癎en”字樣。如果是數(shù)據(jù)庫(kù)表,還可以設(shè)置字段有效性、格式、掩碼等。顯示組框:①格式:確定字段顯示時(shí)采用的大小寫(xiě)、字體和樣式等。字符功能字符功能!字母轉(zhuǎn)換成大寫(xiě)B(tài)左對(duì)齊J右對(duì)齊I居中T刪除前導(dǎo)空格和結(jié)尾空格(用括號(hào)括住負(fù)數(shù)YS使用系統(tǒng)短格式日期顯示YL使用系統(tǒng)長(zhǎng)格式日期顯示常用格式字符及功能如下表顯示組框:②輸入掩碼:用于設(shè)置字段的輸入格式,屏蔽非法格式的輸入,減少輸入錯(cuò)誤。掩碼字符及功能如下表:字符功能字符功能A只允許字母9只允許數(shù)字和+-號(hào)L只允許邏輯數(shù)據(jù)N只允許字母和數(shù)字#允許數(shù)字、+-號(hào)和空格X允許任何字符如果是數(shù)據(jù)庫(kù)表,還可以設(shè)置字段有效性、格式、掩碼等。顯示組框:③標(biāo)題:用于字段顯示時(shí)的標(biāo)題,沒(méi)有則顯示字段名。如果是數(shù)據(jù)庫(kù)表,還可以設(shè)置字段有效性、格式、掩碼等。如果是數(shù)據(jù)庫(kù)表,還可以設(shè)置字段有效性、格式、掩碼等。字段有效性組框:①規(guī)則:建立檢查字段輸入數(shù)據(jù)是否有效的規(guī)則(表達(dá)式)。定義字段有效性規(guī)則、違反規(guī)則時(shí)的提示信息和字段的默認(rèn)值。②信息:當(dāng)輸入數(shù)據(jù)違反規(guī)則時(shí)的提示信息。③默認(rèn)值:預(yù)設(shè)輸入數(shù)據(jù)的默認(rèn)值。注意:規(guī)則的結(jié)果為邏輯值。信息是字符串表達(dá)式。默認(rèn)值視字段類型而定。如果是數(shù)據(jù)庫(kù)表,還可以設(shè)置字段有效性、格式、注釋等。可以為每一個(gè)字段添加注釋說(shuō)明,便于日后或其他人對(duì)數(shù)據(jù)表進(jìn)行維護(hù)。字段注釋:3.2.2表的基本操作只有先打開(kāi)表,才能對(duì)表進(jìn)行相關(guān)的操作。1、打開(kāi)表菜單方式命令方式use<表文件名>[exclusive|shared]獨(dú)占方式共享方式2、主窗口顯示表結(jié)構(gòu)List|displaystructure3、復(fù)制表結(jié)構(gòu)copystructureto<新表文件名>[fields<字段名表>]
4、修改表結(jié)構(gòu)菜單方式命令方式數(shù)據(jù)庫(kù)方式項(xiàng)目管理器方式modifystructure5、瀏覽表的記錄菜單方式命令方式數(shù)據(jù)庫(kù)方式項(xiàng)目管理器方式browse[fields<字段名表>][for<條件>]……list|display[[fields]<字段名表>][for<條件>]……主窗口顯示表的形式顯示6、追加記錄菜單方式命令方式Append[blank]在文件尾追加一條或多條記錄打開(kāi)表輸入窗口供用戶追加記錄。當(dāng)有[blank]選項(xiàng)時(shí),在表尾追加一條空記錄,不打開(kāi)表輸入窗口。命令方式insert[blank][before]【說(shuō)明】(1)缺省[blank]時(shí),彈出記錄編輯窗口,由用戶輸入插入的內(nèi)容否則,系統(tǒng)自動(dòng)插入一條空記錄,而不打開(kāi)記錄編輯窗口;(2)有[before]選項(xiàng)時(shí),在當(dāng)前記錄前插入;否則在當(dāng)前記錄后插入(3)插入新記錄后,其后面記錄均自動(dòng)順次后移。7、插入記錄在指定位置插入一條或多條新記錄8、修改記錄【功能】打開(kāi)表編輯窗口供用戶修改記錄。菜單方式命令方式change|edit[fields<字段名表>][for<條件>]replace<字段1>with<表達(dá)式1>[,字段2>with<表達(dá)式2>……]
[for<條件1>]【命令二】【例】對(duì)所有少數(shù)名族的學(xué)生的成績(jī)都加上10分Replace成績(jī)with成績(jī)+10forleft(民族,2)!=“漢”Change、Edit、Replace【命令一】【功能】對(duì)滿足條件的記錄,用表達(dá)式的值直接替換字段的值不打開(kāi)表編輯窗口。9、刪除記錄菜單方式命令方式Delete、recall、pack、zap邏輯刪除物理刪除給要?jiǎng)h除的記錄加上刪除標(biāo)記,可以恢復(fù)把加了邏輯刪除標(biāo)記的記錄從表中永久地清除掉,不可以恢復(fù)Delete[FOR<條件>]在滿足條件的記錄加上邏輯刪除標(biāo)記。Recall[FOR<條件>]撤銷被邏輯刪除的記錄。Pack
Zap
物理刪除帶邏輯刪除標(biāo)記記錄。物理刪除當(dāng)前表中所有記錄,無(wú)論是否有邏輯刪除標(biāo)記。10、記錄的查詢定位前面很多地方提到“當(dāng)前記錄”,什么是當(dāng)前記錄?數(shù)據(jù)表建立后,系統(tǒng)會(huì)為表設(shè)置一個(gè)指向記錄的指針,記錄指針?biāo)赶虻挠涗浄Q為當(dāng)前記錄。記錄的定位就是將記錄指針指向指定的記錄。跟記錄及指針位置有關(guān)的幾個(gè)函數(shù)recno()返回當(dāng)前記錄的記錄號(hào)reccount()返回當(dāng)前表的總記錄個(gè)數(shù),包括邏輯刪除的記錄BOF()判斷指針是否指向表文件頭,若指針指向文件頭,返回真,否則返回假;判斷指針是否指向表文件尾,若指針指向文件尾,返回真,否則返回假;EOF()在表第一條(首記錄top)的上面有一個(gè)文件起始標(biāo)志,稱文件頭BeginningOfFile(BOF);在表最后一條(尾記錄bottom)的下面有一個(gè)文件結(jié)束標(biāo)志,稱文件尾EndOfFile(EOF);文件起始標(biāo)志首記錄(top)第2個(gè)記錄……第i個(gè)記錄….尾記錄(bottom)文件結(jié)束標(biāo)志表文件邏輯結(jié)構(gòu)記錄指針10、記錄的查詢定位菜單方式命令方式go、skip、locate菜單“表”|“轉(zhuǎn)到記錄”go
n|top|bottom把記錄指針移動(dòng)到指定記錄。絕對(duì)移動(dòng)n:將記錄指針移動(dòng)到第n條記錄,n為正整數(shù);top:將記錄指針移動(dòng)到當(dāng)前表的第一條記錄;bottom:將記錄指針移動(dòng)到當(dāng)前表的最后一條記錄;skip
n
相對(duì)于當(dāng)前記錄,記錄指針向上或向下的移動(dòng)若干條記錄;相對(duì)移動(dòng)n為正數(shù)時(shí),向下移動(dòng)n條記錄;n為負(fù)數(shù)時(shí),向上移動(dòng)n條記錄。文件起始標(biāo)志首記錄(top)第2個(gè)記錄……第n個(gè)記錄….尾記錄(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í)行該命令后,記錄指針定位在滿足條件的第一條記錄上,若無(wú)滿足條件的記錄,則指針指向文件結(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):從鍵盤(pán)輸入學(xué)生姓名,在學(xué)生信息.DBF中按姓名進(jìn)行查詢,若查到則顯示該記錄,若沒(méi)查到顯示“查無(wú)此人”。
clearaccept“請(qǐng)輸入姓名:”toxmmuse學(xué)生信息locateforxm=xmmiffound()displayelse?“查無(wú)此人!”endifuse11、表與表及表與excel文件之間的數(shù)據(jù)交換菜單方式命令方式【格式】Copyto<新文件名>[文件格式][范圍][fields<字段名表>][for<條件>][while<條件>]【功能】把當(dāng)前表中的全部或部分?jǐn)?shù)據(jù)復(fù)制到新文件中?!菊f(shuō)明】
1)導(dǎo)出表或txt可省略文件格式,導(dǎo)出excel等需要文件格式2)fields<字段名表>用以指定復(fù)制到新文件中的字段結(jié)構(gòu)及順序,缺省時(shí)為全部字段。3)范圍子句有:all、nextn、recordn和rest。若省略則為all4)for/while設(shè)定條件(1)表---->表、excel、文本等f(wàn)or和while的區(qū)別:菜單”文件”-”導(dǎo)出”for和while的區(qū)別:
for:在指定范圍內(nèi)選擇每一條符合條件的記錄;while:在指定范圍內(nèi),從當(dāng)前記錄開(kāi)始(范圍為recordn時(shí)除外)操作滿足條件的記錄,一旦遇到不滿足條件的記錄即終止命令的執(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ù)庫(kù)及其操作3.1VFP數(shù)據(jù)庫(kù)及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個(gè)表同時(shí)使用3.3.1排序排序是另外生成一個(gè)按要求排好順序的新表【格式】sortto<新文件名>on<字段1>[/A][/D][/C][,<字段2>[/a][/d][/c]….][fields<字段名表>][for<條件>]【功能】對(duì)記錄先按指定<字段1>的指定順序重新排序后生成一個(gè)新的表文件?!菊f(shuō)明】
1)必須先打開(kāi)排序的數(shù)據(jù)表文件。2)存在<字段1>,<字段2>,…時(shí),先按<字段1>排序,字段1相同時(shí)再按<字段2>排序,依次類推。3)/A為升序,/D為降序;缺省時(shí)按升序。/C排序時(shí)不區(qū)分大小寫(xiě)。例:把student表中的記錄按出生日期和姓名升序排序
sortto
new1
on
csrq,xm3.3.2索引為加快對(duì)表的查詢操作,并且不改變表中記錄的物理順序,創(chuàng)建的由指向表記錄的指針構(gòu)成的,且這些指針邏輯上按照指定字段或字段表達(dá)式的值進(jìn)行排序的文件就是索引。這個(gè)指定的字段或字段表達(dá)式就稱為索引表達(dá)式。索引文件和表文件分別存儲(chǔ),當(dāng)表文件與索引文件一起使用時(shí),就能按索引文件中記載的順序?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ù)合索引的主文件名與表文件名相同,索引文件隨表的打開(kāi)而打開(kāi),在更新記錄時(shí)自動(dòng)維護(hù);使用方便,最常用。2、而非結(jié)構(gòu)化復(fù)合索引文件的主文件名與表文件名不同,索引文件必須單獨(dú)打開(kāi)。索引文件的分類只能按一個(gè)字段建立索引,也就是只能有一個(gè)索引項(xiàng)可以按多個(gè)字段建立索引,也即是可以包含多個(gè)索引項(xiàng),每個(gè)索引項(xiàng)都有一個(gè)索引標(biāo)識(shí),代表記錄的某一種邏輯順序VFP中的索引分為主索引、候選索引、普通索引、惟一索引四種:主索引:僅適用于數(shù)據(jù)庫(kù)表,其索引字段不允許有重復(fù)值,一個(gè)數(shù)據(jù)庫(kù)表只能建立一個(gè)主索引。候選索引:其索引字段不允許有重復(fù)值,但一個(gè)表可以創(chuàng)建多個(gè)候選索引。普通索引:其索引字段中允許出現(xiàn)重復(fù)值,一個(gè)表可以創(chuàng)建多個(gè)普通索引。唯一索引:其索引字段中允許出現(xiàn)重復(fù)值,一個(gè)表可以創(chuàng)建多個(gè)唯一索引。其“唯一”表示索引字段出現(xiàn)重復(fù)值時(shí),索引列表中只保留首次出現(xiàn)此值的記錄。1、創(chuàng)建索引命令方式用表設(shè)計(jì)器創(chuàng)建索引【格式1】indexon<索引表達(dá)式>to<單索引文件名>[for<條件>][unique|candidate][compact][additive]【格式2】indexon<索引表達(dá)式>tag<索引標(biāo)識(shí)名>[of<索引文件名>][for<條件>][ascending|descending][unique|candidate]【說(shuō)明】①ascending升序,descending降序,compact建立一個(gè)壓縮的單索引文件,復(fù)合索引總是壓縮的。②unique建立唯一索引,candidate建立候選索引;都缺省時(shí)將建立普通索引,additive不關(guān)閉已打開(kāi)的索引,否則關(guān)閉。命令方式不能建立主索引。在表設(shè)計(jì)器創(chuàng)建的索引都是結(jié)構(gòu)化復(fù)合索引use職工.dbf(1)以倉(cāng)庫(kù)號(hào)為索引字段,建立單索引文件sy_test.idx,普通索引indexon倉(cāng)庫(kù)號(hào)tosy_test.idx(2)以職工號(hào)為索引字段,建立一個(gè)索引標(biāo)識(shí)為ckhjgfh的結(jié)構(gòu)復(fù)合索引文件職工.cdx,候選索引indexon職工號(hào)tagzghjgfhcandidate(3)以倉(cāng)庫(kù)號(hào)為第一索引,以職工號(hào)為第二索引字段,建立一個(gè)索引標(biāo)識(shí)為ckzgh的非結(jié)構(gòu)復(fù)合索引文件,唯一索引Indexon倉(cāng)庫(kù)號(hào)+職工號(hào)tagckzghofsy_test.cdxunique[例]用命令為職工.dbf建立索引2、使用索引與表同名的結(jié)構(gòu)化索引文件在打開(kāi)表的同時(shí)自動(dòng)打開(kāi),但對(duì)于單索引文件和非結(jié)構(gòu)索引文件,則必須專門(mén)打開(kāi)。(1)打開(kāi)索引文件【格式1】use<表文件名>index<索引文件名表>在打開(kāi)表的同時(shí)打開(kāi)與之相關(guān)的一系列索引文件【格式2】setindexto<索引文件名表>在表已打開(kāi)的情況下,打開(kāi)與之相關(guān)的一系列索引文件【例】打開(kāi)剛才建立的索引文件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)識(shí)>[of<非結(jié)構(gòu)復(fù)合索引文件名>]【功能】設(shè)置對(duì)排序起作用的索引find<字符串>|<數(shù)值型常數(shù)>【功能】在已打開(kāi)索引文件的表中快速搜索索引表達(dá)式的值與<字符串>|<數(shù)值型常數(shù)>相匹配的第一條記錄。若查找成功,記錄指針指向該記錄,found()為真,否則,記錄指針指向表文件結(jié)束標(biāo)識(shí),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è)計(jì)器中手動(dòng)刪除【方式2】命令方式
deletetag<索引名表>[of<索引文件名>]|all刪除復(fù)合索引
deletefile<索引文件名>刪除單索引第3章VFP數(shù)據(jù)庫(kù)及其操作3.1VFP數(shù)據(jù)庫(kù)及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個(gè)表同時(shí)使用數(shù)據(jù)完整性一般包括:實(shí)體完整性、域完整性、參照完整性(1)實(shí)體完整性
指表中記錄的唯一性,即不允許有重復(fù)的記錄;一般利用主關(guān)鍵字(主索引)或候選關(guān)鍵字(候選索引)來(lái)保證表中記錄的唯一性。
(2)域完整性指字段的取值應(yīng)滿足相應(yīng)的條件。如:數(shù)據(jù)類型的要求,字段有效性規(guī)則等。3.4.1數(shù)據(jù)完整性(3)參照完整性參照完整性與表之間的關(guān)聯(lián)有關(guān),其含義是:當(dāng)插入、刪除或修改一個(gè)表中的數(shù)據(jù)時(shí),通過(guò)參照引用相互關(guān)聯(lián)的另一個(gè)表中的數(shù)據(jù),來(lái)檢查對(duì)表的數(shù)據(jù)操作是否正確.數(shù)據(jù)完整性一般包括:實(shí)體完整性、域完整性、參照完整性參照完整性是關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)很重要的功能。在VisualFoxpro中為了建立參照完整性,必須首先建立表之間的聯(lián)系(關(guān)系)。
3.4.2建立表之間的聯(lián)系在關(guān)系數(shù)據(jù)庫(kù)中一般通過(guò)連接表與表之間的字段來(lái)體現(xiàn)和表示聯(lián)系。一個(gè)表中的一條記錄,在另一個(gè)表中只有一條記錄與之對(duì)應(yīng),且要求兩個(gè)表都必須具有相同索引字段,且索引字段為主索引或候選索引一個(gè)表中的一條記錄,在另一個(gè)表中有多條記錄與之對(duì)應(yīng),且要求兩個(gè)表都必須具有相同索引字段,且一方索引字段為主索引或候選索引,多方索引字段為普通索引。一對(duì)一關(guān)系:一對(duì)多關(guān)系:兩個(gè)表之間的關(guān)系主要有兩種:建立表之間的關(guān)系一般在數(shù)據(jù)庫(kù)設(shè)計(jì)器中進(jìn)行【例】訂貨數(shù)據(jù)庫(kù)中有倉(cāng)庫(kù)、職工、訂購(gòu)單、供應(yīng)商四個(gè)表,請(qǐng)分別建立、修改各個(gè)有關(guān)聯(lián)的表之間的聯(lián)系
3.4.3設(shè)置參照完整性建立參照完整性之前必須首先清理數(shù)據(jù)庫(kù)菜單“數(shù)據(jù)庫(kù)”-“清理數(shù)據(jù)庫(kù)”命令packdatabase然后用鼠標(biāo)右擊表之間聯(lián)系線,右鍵菜單中選擇“編輯參照完整性”第3章VFP數(shù)據(jù)庫(kù)及其操作3.1VFP數(shù)據(jù)庫(kù)及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個(gè)表同時(shí)使用利用數(shù)據(jù)庫(kù)設(shè)計(jì)器建立的表之間的聯(lián)系是永久關(guān)系,還可以使用命令建立表之間的臨時(shí)聯(lián)系。3.4.2表之間的聯(lián)系setrelationto<關(guān)系表達(dá)式>into<表名>在當(dāng)前工作區(qū)的表與指定表名的表建立臨時(shí)關(guān)系。例:通過(guò)職工號(hào)索引建立職工表與訂購(gòu)單之間的臨時(shí)關(guān)系use職工.dbfin1order職工號(hào)use訂購(gòu)單.dbfin2order職工號(hào)setrelationto職工號(hào)into訂購(gòu)單第3章VFP數(shù)據(jù)庫(kù)及其操作3.1VFP數(shù)據(jù)庫(kù)及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個(gè)表同時(shí)使用第3章VFP數(shù)據(jù)庫(kù)及其操作3.1VFP數(shù)據(jù)庫(kù)及其操作3.2表及其操作3.3索引和排序3.4數(shù)據(jù)完整性3.5多個(gè)表同時(shí)使用12、記錄數(shù)據(jù)的統(tǒng)計(jì)與計(jì)算(1)求記錄個(gè)數(shù)命令count【格式】count
[<范圍>][FOR<條件>][to<內(nèi)存變量>]【功能】統(tǒng)計(jì)在指定范圍內(nèi)滿足條件的記錄的個(gè)數(shù),并可以把結(jié)果賦值給內(nèi)存變量【例】統(tǒng)計(jì)職工表中工資大于1300的職工數(shù)
countfor工資>1300togzs?gzs12、記錄數(shù)據(jù)的統(tǒng)計(jì)與計(jì)算(2)求和命令sum【例】統(tǒng)計(jì)倉(cāng)庫(kù)號(hào)為“WH2”的職工的總工資sum工資for倉(cāng)庫(kù)號(hào)="WH2"tozgz?"WH2"的總工資=",zgz【格式】sum
<數(shù)值型表達(dá)式>[<范圍>][FOR<條件>][to<內(nèi)存變量>]【功能】對(duì)數(shù)值型表
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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年預(yù)拌砂漿產(chǎn)業(yè)鏈上下游產(chǎn)業(yè)轉(zhuǎn)型升級(jí)合作合同3篇
- 三方車(chē)輛租賃協(xié)議2024版專業(yè)模板版
- 廣東省揭陽(yáng)市2025年中考語(yǔ)文模擬試卷五套【附參考答案】
- 2024年餐具回收利用協(xié)議3篇
- 12 慧眼看交通 第1課時(shí) 說(shuō)課稿-2023-2024學(xué)年道德與法治三年級(jí)下冊(cè)統(tǒng)編版
- 2024年版國(guó)際制藥行業(yè)技術(shù)轉(zhuǎn)移合同
- 2024樣板間房地產(chǎn)買(mǎi)賣(mài)合同模板3篇
- 專業(yè)辣椒經(jīng)銷商2024年度購(gòu)貨協(xié)議版B版
- 2024水利工程環(huán)境監(jiān)理規(guī)范執(zhí)行操作指導(dǎo)合同范本3篇
- 福建省南平市塔前中學(xué)高二地理聯(lián)考試卷含解析
- 西師大版2023-2024學(xué)年五年級(jí)數(shù)學(xué)上冊(cè)期末測(cè)試卷含答案
- 2024年浙江省寧波寧海縣事業(yè)單位公開(kāi)招聘85人歷年公開(kāi)引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 校區(qū)熱水供水系統(tǒng)維護(hù)服務(wù)第冊(cè)維保服務(wù)方案
- 3D打印行業(yè)研究報(bào)告
- 魯教版(五四制)七年級(jí)數(shù)學(xué)下冊(cè)電子課本教材
- 人教版八年級(jí)物理上冊(cè) 1.5運(yùn)動(dòng)圖像(專題練習(xí))原卷版+解析
- (2024年)Maya三維建模教案
- 國(guó)開(kāi)電大本科《理工英語(yǔ)4》機(jī)考真題(第六套)
- 公共資源交易培訓(xùn)課件
- 護(hù)理實(shí)習(xí)針灸科出科小結(jié)
- 信息系統(tǒng)集成方案
評(píng)論
0/150
提交評(píng)論