vfp-索引分析課件_第1頁(yè)
vfp-索引分析課件_第2頁(yè)
vfp-索引分析課件_第3頁(yè)
vfp-索引分析課件_第4頁(yè)
vfp-索引分析課件_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

本節(jié)內(nèi)容§2.5表的索引

興隆職教中心

詹亞萍 2016.05.19

第二章數(shù)據(jù)庫(kù)與表的基本操作

表中記錄的存儲(chǔ)順序由數(shù)據(jù)輸入的前后順序決定,以記錄號(hào)標(biāo)識(shí),稱為記錄的物理順序。執(zhí)行LIST命令就可以看到刻錄號(hào)。索引是根據(jù)表中的某些字段或表達(dá)式的值,建立一個(gè)按邏輯順序排列記錄的索引文件。

索引不改變表中記錄的物理順序,而是另外建立一個(gè)基于索引表達(dá)式值的記錄號(hào)列表。索引可以加快查找的速度;此外,如果要建立表間聯(lián)系,則必須先對(duì)建立聯(lián)系的字段建立索引?!?.5表的索引

VFP提供了4種類型的索引:主索引、候選索引、普通索引和惟一索引。

1.主索引作為主索引的關(guān)鍵字值是惟一的,不允許重復(fù)。表中可能不只一個(gè)字段能惟一地確定一條記錄,但一個(gè)表只能有一個(gè)主索引,只有數(shù)據(jù)庫(kù)表才能建立主索引,自由表不能建立主索引。主索引通常作為“一對(duì)一”或“一對(duì)多”聯(lián)系的“一方”。

2.候選索引候選索引的關(guān)鍵字值也必須是惟一的,一個(gè)表可以建立多個(gè)候選索引,數(shù)據(jù)庫(kù)表和自由表都可以建立候選索引。當(dāng)數(shù)據(jù)庫(kù)表無(wú)主索引時(shí),可以指定一個(gè)候選索引作為“一對(duì)一”或“一對(duì)多”聯(lián)系的“一方”。§2.5.1索引的類型

例如,假設(shè)在“學(xué)生檔案.dbf”表中,有“身份證號(hào)”及“學(xué)號(hào)”字段,可將“身份證號(hào)”字段設(shè)置為主索引,將“學(xué)號(hào)”字段設(shè)置為候選索引。3.普通索引普通索引允許關(guān)鍵字出現(xiàn)重復(fù)值,數(shù)據(jù)庫(kù)表和自由表都可以建立普通索引,一個(gè)表可以建立多個(gè)普通索引。普通索引通常作為“一對(duì)多”聯(lián)系的“多方”。4.惟一索引惟一索引是指索引項(xiàng)惟一,但允許索引關(guān)鍵字值不惟一,當(dāng)出現(xiàn)重復(fù)值時(shí),只有第一個(gè)關(guān)鍵字值的記錄有效,而忽略其他重復(fù)值的記錄。惟一索引是為了兼容早期的版本而設(shè)置的。索引文件的類型是關(guān)于索引存儲(chǔ)的問(wèn)題。

結(jié)構(gòu)化復(fù)合索引文件

復(fù)合索引文件(與表文件同名,自動(dòng)打開(kāi)和維護(hù))(.CDX)非結(jié)構(gòu)化復(fù)合索引文件索引文件(與表文件不同名,不能自動(dòng)打開(kāi)和維護(hù))

獨(dú)立索引文件(.IDX)(文件名由用戶指定,不能自動(dòng)打開(kāi)和維護(hù))1.復(fù)合索引文件復(fù)合索引文件是包含一個(gè)或多個(gè)索引的文件,其擴(kuò)展名為.CDX。復(fù)合索引文件又分為結(jié)構(gòu)化復(fù)合索引文件(與表文件同名)和非結(jié)構(gòu)化復(fù)合索引文件(與表文件不同名)?!?.5.2索引文件的類型表文件打開(kāi)時(shí),結(jié)構(gòu)化復(fù)合索引文件隨之自動(dòng)打開(kāi),表文件關(guān)閉時(shí),結(jié)構(gòu)化復(fù)合索引文件隨之關(guān)閉。非結(jié)構(gòu)化復(fù)合索引文件與表不同名,其名稱由用戶指定。只有指定其名稱才能打開(kāi)非結(jié)構(gòu)化復(fù)合索引文件。2.獨(dú)立索引文件獨(dú)立索引文件只存放一個(gè)索引,其擴(kuò)展名為.IDX。獨(dú)立索引文件的名稱由用戶定義;一個(gè)表文件可以建立多個(gè)獨(dú)立索引文件;獨(dú)立索引文件不會(huì)隨著表文件打開(kāi)而自動(dòng)打開(kāi)。3.索引文件的小結(jié)“復(fù)合”是指一個(gè)索引文件中包含多個(gè)索引(索引不是文件)?!蔼?dú)立”是指一個(gè)索引文件中只包含一個(gè)索引(每個(gè)索引都是文件)。VFP默認(rèn)使用結(jié)構(gòu)化復(fù)合索引文件,非結(jié)構(gòu)化復(fù)合索引文件幾乎沒(méi)有用到。獨(dú)立索引文件是早期版本的數(shù)據(jù)庫(kù)管理系統(tǒng)的索引文件,VFP為了兼容早期版本的數(shù)據(jù)庫(kù)管理系統(tǒng)而保留了獨(dú)立索引文件。結(jié)構(gòu)化復(fù)合索引文件是索引文件應(yīng)用的重點(diǎn)。4.索引的數(shù)據(jù)更新若表文件打開(kāi),索引文件也打開(kāi),表數(shù)據(jù)的更新會(huì)反映到索引中,從而保證表與索引的數(shù)據(jù)同步匹配。若表文件打開(kāi),索引文件沒(méi)有打開(kāi),表數(shù)據(jù)的更新不會(huì)反映到索引中,從而導(dǎo)致表與索引數(shù)據(jù)不相匹配。鑒于以上理由,VFP6.0默認(rèn)將建立的索引存放在結(jié)構(gòu)化復(fù)合索引文件中。在“表設(shè)計(jì)器”中建立的索引是結(jié)構(gòu)化復(fù)合索引文件。

1.建立結(jié)構(gòu)復(fù)合索引格式:INDEXON<索引表達(dá)式>TAG<索引標(biāo)記>FOR<條件>][ASCENDING|DESCENDING]【UNIQUE|CANDIDATE】

功能:對(duì)當(dāng)前的表文件,按<索引表達(dá)式>的值建立索引文件。說(shuō)明:

ASCENDING或DESCENDING:指定索引按升序或降序排列,默認(rèn)升序。UNIQUE或CANDIDATE:指定索引類型是唯一索引還是候選索引,默認(rèn)普通索引§2.5.1表的索引命令【例1】在職工簡(jiǎn)況表Zgjk.dbf中,使用命令建立“部門”字段建立索引,索引名稱為:bm,降序排列。命令窗口中,鍵入以下命令并執(zhí)行。USEZgjk &&打開(kāi)職工簡(jiǎn)況表INDEXON部門TAGbm

DESC&&建立索引BROWSE &&在瀏覽窗口中顯示表記錄【練習(xí)1】在職工簡(jiǎn)況表Zgjk.dbf中,使用命令建立“性別”建立索引,索引名稱為:xbINDEXON性別TAGxb 【練習(xí)2】在職工簡(jiǎn)況表Zgjk.dbf中,使用命令建立“基本工資”建立索引,索引名稱為:jbgz,降序排列。INDEXON基本工資TAGjbgz

DESC【練習(xí)3】在職工簡(jiǎn)況表Zgjk.dbf中,使用命令建立“出生日期”建立候選索引,索引名稱為:csrq,降序排列。

INDEXON出生日期TAGcsrqDESCCAND【2013高考】

以“圖書編號(hào)”為關(guān)鍵字建立降序的候選索引,索引名為BH。(用Visual

FoxPro命令)INDEXON圖書編號(hào)TAGbh CANDIDATE【例2】在職工簡(jiǎn)況表Zgjk.dbf中,使用命令建立“部門”和“基本工資”兩個(gè)字段的復(fù)合索引,索引名稱為:部門工資,要求先按“部門”降序排列,當(dāng)“部門”相同時(shí),按“基本工資”降序排列。在命令窗口中,鍵入以下命令并執(zhí)行。USEZgjk &&打開(kāi)職工簡(jiǎn)況表INDEXON部門+STR(基本工資)TAG部門工資DESC &&建立復(fù)合索引BROWSE &&在瀏覽窗口中顯示表記錄注意:表達(dá)式通常用字符串運(yùn)算符“+”將幾個(gè)字段連接,數(shù)據(jù)類型不同時(shí)必須用函數(shù)轉(zhuǎn)換為相同的數(shù)據(jù)類型【練習(xí)1】在職工簡(jiǎn)況表Zgjk.dbf中,建立“部門”和“性別”兩個(gè)字段的復(fù)合索引,索引名稱為:bmxb.INDEXON

部門+性別

TAGbmxb 【練習(xí)2】在職工簡(jiǎn)況表Zgjk.dbf中,建立“部門”和“出生日期”兩個(gè)字段的復(fù)合索引,索引名稱為:bmcs,要求先按“部門”降序排列,當(dāng)“部門”相同時(shí),按“出生日期”降序排列。INDEXON部門+DTOC(出生日期)

TAGbmcsDESC

2.建立非結(jié)構(gòu)復(fù)合索引格式:INDEXON<索引表達(dá)式>TAG<索引標(biāo)記>OF<復(fù)合索引文件>[.CDX]FOR<條件>[ASCENDING|DESCENDING]【UNIQUE|CANDIDATE】

功能:對(duì)當(dāng)前的表文件,按<索引表達(dá)式>的值建立索引文件。說(shuō)明:

ASCENDING或DESCENDING:指定索引按升序或降序排列,默認(rèn)升序。UNIQUE或CANDIDATE:指定索引類型是唯一索引還是候選索引,默認(rèn)普通索引§2.5.1表的索引命令【例3】在職工簡(jiǎn)況表Zgjk.dbf中,使用命令建立“部門”字段的建立唯一索引,索引名稱為:部門,要求按“部門”降序排列,復(fù)合索引文件名為BM.CDX。在命令窗口中,鍵入以下命令并執(zhí)行。USEZgjk &&打開(kāi)職工簡(jiǎn)況表INDEXON部門TAG部門OFBM.CDXDESCUNIQUE &&建立索引BROWSE &&在瀏覽窗口中顯示表記錄【練習(xí)1】在職工簡(jiǎn)況表Zgjk.dbf中,建立“性別”字段為關(guān)鍵字,建立索引名稱為:xb的候選索引,按性別降序排列,復(fù)合索引文件名為CC.CDXINDEXON性別TAGxb FORCC.CDXDESCCAND【練習(xí)2】在職工簡(jiǎn)況表Zgjk.dbf中,建立“部門”和“性別”兩個(gè)字段的復(fù)合索引,索引名稱為:bmxb,要求先按“部門”降序排列,當(dāng)“部門”相同時(shí),按“性別”降序排列,復(fù)合索引文件名為BMXB.CDX。INDEXON部門+性別TAGbmxbOFBMXB.CDXDESC【2015高考】

使用“order_list”表,建立以“訂單號(hào)”為關(guān)鍵字,名稱為“訂單”的

降序的唯一索引,復(fù)合索引文件名為DD.CDX。(用Visual

FoxPro命令)INDEXON訂單號(hào)TAG訂單

OFDD.CDXDESCUNIQUE【2014高考】以“職工號(hào)”為關(guān)鍵字建立降序的唯一索引,索引名為ZHG,索引文件名ZHGGL.CDX。(用Visual

FoxPro命令)INDEXON職工號(hào)TAGZHGOFZHGGL.CDXDESCUNIQ【2012高考】

以系部名稱+年齡降序建立唯一索引的復(fù)合索引,索引名為XN,索引文件名為XB.CDX。(用Visual

FoxPro命令)INDEXON系部名稱+str(年齡)TAGXNOFXB.CDXDESCUNIQUE【2011高考】使用“學(xué)生”表,建立以“出生日期”為關(guān)鍵字,索引名為“生日”的升序的唯一索引,復(fù)合索引文件名為DA.cdx。(用Visual

FoxPro命令)INDEXON出生日期TAG生日

OFDA.CDXUNIQUE

3.建立索引建立單索引格式:INDEXON<索引表達(dá)式>TO<獨(dú)立索引文件>[.IDX][FOR<條件>][UNIQUE][COMPACT]功能:對(duì)當(dāng)前的表文件,按<索引表達(dá)式>的值建立索引文件。說(shuō)明: UNIQUE:指定索引類型是唯一索引還是候選索引COMPACT:指定索引文件為壓縮文件§2.5.1表的索引命令【例3】在職工簡(jiǎn)況表Zgjk.dbf中,使用命令建立“部門”字段為關(guān)鍵字,建立索引文件名為BM.IDX。在命令窗口中,鍵入以下命令并執(zhí)行。USEZgjk &&打開(kāi)職工簡(jiǎn)況表INDEXON部門TOBM.IDX

&&建立索引BROWSE &&在瀏覽窗口中顯示表記錄【2010高考】

按部門和工資為關(guān)鍵字建立索引文件BMGZ.IDXINDEXON部門+str(工資)TOBMGZ.IDX索引目的是建立表間聯(lián)系和加快數(shù)據(jù)檢索。

數(shù)據(jù)檢索的本質(zhì)是將記錄指針定位到目標(biāo)記錄,并沒(méi)有顯示記錄數(shù)據(jù)的內(nèi)容。找到目標(biāo)記錄后,還要使用DISP命令,才能看到目標(biāo)記錄的內(nèi)容。

常用的數(shù)據(jù)檢索命令有:SEEK、FIND和LOCATE。

SEEK和FIND命令是索引檢索,也就是說(shuō),在使用SEEK和FIND命令之前要先索引。

LOCATE命令是條件檢索?!?.5.2數(shù)據(jù)檢索索引目的是建立表間聯(lián)系和加快數(shù)據(jù)檢索。

數(shù)據(jù)檢索的本質(zhì)是將記錄指針定位到目標(biāo)記錄,并沒(méi)有顯示記錄數(shù)據(jù)的內(nèi)容。找到目標(biāo)記錄后,還要使用DISP命令,才能看到目標(biāo)記錄的內(nèi)容。

常用的數(shù)據(jù)檢索命令有:SEEK、FIND和LOCATE。

SEEK和FIND命令是索引檢索,也就是說(shuō),在使用SEEK和FIND命令之前要先索引。

LOCATE命令是條件檢索?!?.3.5數(shù)據(jù)檢索1.索引檢索(1)SEEK命令格式:SEEK<表達(dá)式>功能:將記錄指針移到與<表達(dá)式>值相匹配的記錄。說(shuō)明:1)要先索引后檢索。2)SEEK命令中的<表達(dá)式>與索引表達(dá)式必須相同。【例4-20】在職工簡(jiǎn)況表中,使用SEEK命令查找并顯示家電部門的職工信息。USEZgjkINDEXON部門

TAG部門 &&剛建的索引是打開(kāi)的SEEK"家電"

&&若缺省雙引號(hào),家電將被理解為變量名DISP &&顯示第1個(gè)目標(biāo)記錄內(nèi)容SKIP &&指針移到下一個(gè)目標(biāo)記錄DISP &&顯示第2個(gè)目標(biāo)記錄內(nèi)容(2)FIND命令格式:FIND<字符串>|<常數(shù)>功能:將記錄指針移到與<字符串>或<常數(shù)>值相匹配的記錄。說(shuō)明:1)要先索引后檢索。2)FIND命令中的<字符串>或<常數(shù)>與索引表達(dá)式必須相同。3)FIND命令中<字符串>定界符可省略。4)由于SEEK命令的功能全面覆蓋FIND命令的功能。一些書籍不再介紹FIND命令?!纠?-21】在職工簡(jiǎn)況表中,使用FIND命令查找并顯示家電部門的職工信息。USEZgjkSETORDERTO部門&&指定主控索引FIND家電 &&字符串定界符可省略DISP

&&顯示第1個(gè)目標(biāo)記錄SKIP

&&指針下移到下一個(gè)目標(biāo)記錄DISP

&&顯示第2個(gè)目標(biāo)記錄2.條件定位格式:LOCATE[范圍][FOR|WHILE<條件>] CONTINUE功能:LOCATE命令將記錄指針定位在滿足條件的第一個(gè)目標(biāo)記錄。CONTINUE命令將記錄指針指向下一條滿足條件的目標(biāo)記錄。說(shuō)明:(1)若缺省范圍子句,則默認(rèn)ALL。(2)若沒(méi)有滿足條件的記錄,則記錄指針指向文件結(jié)束位置?!纠?-22】在職工簡(jiǎn)況表中,查找1981年出生的職工信息。USEZgjkLOCATEFORYEAR(出生日期)=1981&&指針定位到第1個(gè)目標(biāo)記錄DISP

&&顯示第1個(gè)目標(biāo)記錄CONTINUE

&&指針定位到下一個(gè)目標(biāo)記錄DISP

&&顯示第2個(gè)目標(biāo)記錄?RECNO(),EOF()

9.T.§4.4數(shù)據(jù)完整性

1.實(shí)體完整性的概念實(shí)體完整性即表中記錄的惟一性,在VFP中通過(guò)主關(guān)鍵字或候選關(guān)鍵字保證記錄的惟一,即保證實(shí)體完整性。實(shí)體完整性是通過(guò)在“表設(shè)計(jì)器”的“字段”選項(xiàng)卡中設(shè)置主關(guān)鍵字段的字段有效性來(lái)實(shí)現(xiàn)的?!?.4.1實(shí)體完整

2.

設(shè)置實(shí)體完整性

【例4-23】使用命令制作職工簡(jiǎn)況表Zgjk.dbf(“職工號(hào)”字段已設(shè)置為主關(guān)鍵字)的副本Zgjk3.dbf;創(chuàng)建數(shù)據(jù)庫(kù):職工2.dbc,將Zgjk3.dbf表添加到數(shù)據(jù)庫(kù)中;打開(kāi)數(shù)據(jù)庫(kù)表Zgjk3.dbf,設(shè)置“顯示”選項(xiàng)組,要求:“職工號(hào)”字段不能為空,否則將彈出提示信息:主關(guān)鍵字不能為空!。在命令窗口中,鍵入以下命令并執(zhí)行。USEZgjkCOPYTOZgjk3 &&將當(dāng)前表文件拷貝到Zgjk3.dbfCREATEDATABASE職工2 &&創(chuàng)建數(shù)據(jù)庫(kù)文件ADDTABLEZgjk3 &&向當(dāng)前數(shù)據(jù)庫(kù)添加表文件USEZgjk3 &&打開(kāi)表文件MODIFYSTRUCTURE &&修改表結(jié)構(gòu)圖4-43設(shè)置實(shí)體完整性執(zhí)行上述命令,打開(kāi)表設(shè)計(jì)器如圖4-43所示,可以看到:數(shù)據(jù)庫(kù)表比自由表的“表設(shè)計(jì)器”具有更多的選項(xiàng)。其中,“顯示”、“字段有效性”、“匹配字段類型到類”和“字段注釋”是數(shù)據(jù)庫(kù)表的“表設(shè)計(jì)器”所特有的四個(gè)選項(xiàng)組。根據(jù)題意,進(jìn)行如下操作:(1)在“表設(shè)計(jì)器”的“字段”選項(xiàng)卡中,選定“職工號(hào)”字段。(2)在“字段有效性”選項(xiàng)組的“規(guī)則”框中輸入:

.NOT.EMPTY(職工號(hào))(3)在“信息”框中輸入:"主關(guān)鍵字不能為空!",如圖4-43所示。

說(shuō)明:設(shè)置字段有效性之后,當(dāng)輸入的數(shù)據(jù)記錄違反字段有效性規(guī)則的時(shí),顯示出錯(cuò)提示信息。

域完整性是指字段取值的合理性。建立表結(jié)構(gòu)時(shí),定義了字段的類型和寬度,但這不能保證字段取值的合理性。域的約束規(guī)則也稱為字段有效性規(guī)則。

§4.4.2域完整性

1.設(shè)置域完整性

域完整性在“表設(shè)計(jì)器”的“字段”選項(xiàng)卡中設(shè)置?!纠?-24】打開(kāi)數(shù)據(jù)庫(kù)表Zgjk3.dbf,設(shè)置基本工資的值不少于600。若違反規(guī)則,則提示:基本工資不小于零!。操作步驟如下。(1)打開(kāi)數(shù)據(jù)庫(kù)表Zgjk3.dbf。(2)打開(kāi)“表設(shè)計(jì)器”,選擇“字段”選項(xiàng)卡。(3)選定“基本工資”,在“字段有效性”選項(xiàng)組的“規(guī)則”框中輸入:基本工資>=0。(4)在“信息”框中輸入:"基本工資不小于零!",如圖4-43所示。(5)單擊“確定”按鈕,關(guān)閉“表設(shè)計(jì)器”,保存所作的設(shè)置。

圖4-43設(shè)置域完整性

2.設(shè)置字段默認(rèn)設(shè)置字段默認(rèn)可以減少記錄數(shù)據(jù)的錄入量?!纠?-25】職工簡(jiǎn)況表Zgjk3.dbf中,大多數(shù)職工已婚。為了減少記錄數(shù)據(jù)的錄入量,將“婚否”字段的默認(rèn)值設(shè)置為.T.。

圖4-44設(shè)置字段默認(rèn)值操作步驟如下。(1)打開(kāi)數(shù)據(jù)庫(kù)表Zgjk3.dbf(2)選擇“顯示”菜單中的“表設(shè)計(jì)器”命令,打開(kāi)“表設(shè)計(jì)器”的“字段”選項(xiàng)卡。(3)選定“婚否”字段,在“字段有效性”選項(xiàng)組的“默認(rèn)值”框中輸入:.T.,如圖4-44所示。

1.表間聯(lián)系類型

(1)永久聯(lián)系在“數(shù)據(jù)庫(kù)設(shè)計(jì)器”中建立的表間聯(lián)系為永久聯(lián)系,永久聯(lián)系作為數(shù)據(jù)庫(kù)的對(duì)象長(zhǎng)期保存在數(shù)據(jù)庫(kù)中,隨著數(shù)據(jù)庫(kù)打開(kāi)而打開(kāi),關(guān)閉而關(guān)閉。永久聯(lián)系主要用于檢查數(shù)據(jù)庫(kù)表間參照完整性和設(shè)置數(shù)據(jù)庫(kù)環(huán)境。永久聯(lián)系不能實(shí)現(xiàn)不同工作區(qū)中表的記錄指針的聯(lián)動(dòng)。

(2)臨時(shí)聯(lián)系臨時(shí)聯(lián)系是在VFP運(yùn)行期間,使用“窗口”菜單中的“數(shù)據(jù)工作期”命令或SETRELATION命令建立的聯(lián)系。臨時(shí)聯(lián)系隨著數(shù)據(jù)庫(kù)關(guān)閉而取消。臨時(shí)聯(lián)系能夠?qū)崿F(xiàn)不同工作區(qū)中表的記錄指針的聯(lián)動(dòng)?!?.4.3參照完整性與表間聯(lián)系2.創(chuàng)建表間永久聯(lián)系創(chuàng)建表間聯(lián)系的步驟是:先建立兩個(gè)表的聯(lián)系字段的索引,然后在“數(shù)據(jù)庫(kù)設(shè)計(jì)器”窗口中,建立表間聯(lián)系。

(1)建立聯(lián)系字段的索引為了建立數(shù)據(jù)庫(kù)表之間的聯(lián)系,首先要在各個(gè)表中建立聯(lián)系字段的索引。若要建立兩表之間的一對(duì)一聯(lián)系,兩個(gè)表的聯(lián)系字段必須是主索引或者候選索引(具有惟一性)。若要建立兩表之間的一對(duì)多聯(lián)系,作為“一”方的父表的索引必須是主索引或者候選索引(具有惟一性),作為“多”方的子表的索引必須是普通索引(允許出現(xiàn)重復(fù)值)。

(2)建立表間聯(lián)系在“數(shù)據(jù)庫(kù)設(shè)計(jì)器”窗口中,打開(kāi)“職工業(yè)績(jī)”數(shù)據(jù)庫(kù)。按住鼠標(biāo)左鍵把一個(gè)表的索引拖放到另一個(gè)表的索引上,兩表之間就出現(xiàn)了一條關(guān)系連線,其中不帶分岔的一端表示聯(lián)系中的“一”方,帶有三分岔的一端表示聯(lián)系中的“多”方,如圖4-45所示。

圖4-45建立表間永久聯(lián)系

(3)編輯表間聯(lián)系

1)鼠標(biāo)左鍵單擊表之間的連線,連線變粗,表示選定了該連線。

2)鼠標(biāo)右鍵單擊選定的連線,彈出快捷菜單。

3)若選擇“刪除關(guān)系”命令,則取消表間的聯(lián)系;若選擇“編輯關(guān)系”命令,則打開(kāi)“編輯關(guān)系”對(duì)話框。

2.設(shè)置參照完整性數(shù)據(jù)庫(kù)表建立了表間永久聯(lián)系后,表之間的記錄就存在一定的聯(lián)系。

設(shè)置參照完整性是為了控制表之間的記錄一致性。當(dāng)修改、刪除、插入記錄時(shí),如果建立了參照完整性,VFP將檢查操作的合法性,以保持已建立的表間聯(lián)系的正確性。

設(shè)置參照完整性的步驟如下:(1)在各個(gè)數(shù)據(jù)庫(kù)表中建立聯(lián)系字段的索引。(2)建立數(shù)據(jù)庫(kù)表之間的永久聯(lián)系。(3)清理數(shù)據(jù)庫(kù)。執(zhí)行“數(shù)據(jù)庫(kù)”菜單中的“清理數(shù)據(jù)庫(kù)”命令,物理刪除數(shù)據(jù)庫(kù)各個(gè)表中所有帶有刪除標(biāo)記的記錄。(4)設(shè)置參照完整性的約束條件鼠標(biāo)右擊表間連線,在彈出的快捷菜單中選擇“編輯參照完整性”命令,打開(kāi)“編輯參照完整性生成器”對(duì)話框,如圖4-46所示。分別在“更新規(guī)則”、“刪除規(guī)則”和“插入規(guī)則”

選項(xiàng)卡中,設(shè)置“級(jí)聯(lián)則”、“限制”或“忽略”。當(dāng)進(jìn)行記錄的修改、刪除和插入操作時(shí),VFP根據(jù)參照完整性作出的合法性檢查。

圖4-46“參照完整性生成器”對(duì)話

§4.5多表操作1.工作區(qū)基本概念(1)VFP允許在內(nèi)存中開(kāi)辟32767個(gè)工作區(qū)。(2)每一個(gè)工作區(qū)只能打開(kāi)一個(gè)表文件。(3)系統(tǒng)默認(rèn)在第1工作區(qū)打開(kāi)表文件。第1工作區(qū)又稱為主工作區(qū)。2.工作區(qū)的區(qū)號(hào)與別名(1)區(qū)號(hào)分別為1~32767,區(qū)號(hào)0為最小空閑工作區(qū)。(2)別名有3種:

1)系統(tǒng)別名為A、B、C、D、E、F、G、H、I、J和W11~W32767;

2)用戶指定的別名;

3)當(dāng)用戶沒(méi)有指定表的別名時(shí),就以表的原名作為別名。§4.5.1工作區(qū)的概念3.在指定的工作區(qū)打開(kāi)表并指定別名(1)格式:USE<表名>IN<區(qū)號(hào)>ALIAS<別名>(2)功能:在指定的工作區(qū)打開(kāi)表文件,并指定用戶別名。(3)說(shuō)明:表文件剛打開(kāi)時(shí),指針指向首記錄?!纠?-26】在指定的工作區(qū)打開(kāi)表文件,并指定表文件的別名。在命令窗口中鍵入:USEZgjkIN1ALIASZG &&在1區(qū)打開(kāi)Zgjk表,

并指定其別名為ZGUSEGzIN2 &&在2區(qū)打開(kāi)GZ表注意:當(dāng)前工作區(qū)是1區(qū),而不是2區(qū)。4.選擇當(dāng)前工作區(qū)(1)命令格式:SELECT<區(qū)號(hào)>|<別名>(2)功能:將指定的工作區(qū)作為當(dāng)前工作區(qū)?!纠?-27】選定當(dāng)前工作區(qū),然后在當(dāng)前工作區(qū)打開(kāi)表文件,并為其指定別名。在命令窗口中鍵入:SELECT1 &&選擇1區(qū)為當(dāng)前區(qū)USEZgjkALIASZG &&在當(dāng)前區(qū)(1區(qū))打開(kāi)Zgjk表,并指定別名ZG

SELECT2 &&選擇2區(qū)為當(dāng)前區(qū),也可以用SELECTB或SELECT0USEGz &&在當(dāng)前區(qū)(2區(qū))打開(kāi)GZ表注意:當(dāng)前工作區(qū)是2區(qū)。

1.建立表間臨時(shí)聯(lián)系(1)選擇“窗口”菜單中的“數(shù)據(jù)工作期”命令,打開(kāi)“數(shù)據(jù)工作期”窗口,如圖4-49所示。

圖4-49“數(shù)據(jù)工作期”窗

§4.5.2建立表間臨時(shí)聯(lián)系(2)單擊“打開(kāi)”按鈕,彈出“打開(kāi)”對(duì)話框。(3)在“打開(kāi)”對(duì)話框中,選定Zgjk表,單擊“確定”按鈕,返回“數(shù)據(jù)工作期”窗口,Zgjk表即添加到“別名”列表框中。重復(fù)以上的步驟將Gz表添加到“別名”列表框中。(4)在“數(shù)據(jù)工作期”窗口的“別名”列表框中,選定父表Zgjk,單擊“關(guān)系”按鈕,在“關(guān)系”列表框中出現(xiàn)父表Zgjk,其下還有一根折線。(5)在“別名”列表框中,單擊子表Gz,打開(kāi)“設(shè)置索引順序”對(duì)話框,如圖4-51所示。

圖4-51“設(shè)置索引順序”對(duì)話框

(6)雙擊作為聯(lián)系的索引關(guān)鍵字段“Gz:職工號(hào)”,打開(kāi)“表達(dá)式生成器”對(duì)話框,如圖4-50所示。(7)單擊“確定”按鈕,返回“數(shù)據(jù)工作期”窗口,如圖4-51所示。

圖4-50“表達(dá)式生成器”對(duì)話框

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論