第5章數(shù)據(jù)排序查詢(xún)統(tǒng)計(jì)和多表操作_第1頁(yè)
第5章數(shù)據(jù)排序查詢(xún)統(tǒng)計(jì)和多表操作_第2頁(yè)
第5章數(shù)據(jù)排序查詢(xún)統(tǒng)計(jì)和多表操作_第3頁(yè)
第5章數(shù)據(jù)排序查詢(xún)統(tǒng)計(jì)和多表操作_第4頁(yè)
第5章數(shù)據(jù)排序查詢(xún)統(tǒng)計(jì)和多表操作_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Visual Foxpro程序設(shè)計(jì)程序設(shè)計(jì)第第5章數(shù)據(jù)排序檢索統(tǒng)計(jì)章數(shù)據(jù)排序檢索統(tǒng)計(jì)和多表操作和多表操作總61頁(yè),第2頁(yè)表中的記錄一開(kāi)始是按輸入的先后順序(記錄號(hào))排列的。如果要按另外一種特定的順序顯示或輸出,就必須對(duì)表進(jìn)行排序或索引。排序和索引都可以改變記錄的輸出順序。總61頁(yè),第3頁(yè)F5.15.1分類(lèi)(物理)排序分類(lèi)(物理)排序是根據(jù)表的某些字段的值,將表中的記錄由大到小(降序)或由小到大(升序),物理地重新排列記錄順序,生成一個(gè)新表,稱(chēng)為排序文件。排序文件中記錄按新的順序排列并重新生成記錄號(hào),而原表保持不變???1頁(yè),第4頁(yè)F排序命令格式:SORT TO ON /A|/D/C,/A|/D

2、/C FORWHILEFIELDSASCENDING|DESCENDING功能:對(duì)當(dāng)前表中指定范圍內(nèi)滿(mǎn)足條件的記錄,按指定字段的升序或降序重新排列,并將排序后的記錄按FIELDS子句指定的字段寫(xiě)入新的表文件中???1頁(yè),第5頁(yè)F命令說(shuō)明: :存放排序后記錄的新表名,該表生成后是關(guān)閉的,要使用它必須先打開(kāi);ON :指定當(dāng)前選定的、要排序的表中的字段名(不能是備注和通用字段)。參與排序的字段可有多個(gè);/A/D/C:對(duì)于排序中包含的每個(gè)字段,可以指定排序順序(升序或降序)。/A為升序(系統(tǒng)默認(rèn)排序方式);/D為降序; /C,默認(rèn)情況下,字符型字段的排序順序區(qū)分大小寫(xiě),該參數(shù)忽略大小寫(xiě); 總61頁(yè),第

3、6頁(yè)范圍:默認(rèn)為ALL,即所有記錄; FOR,對(duì)滿(mǎn)足條件的記錄排序;FIELDS,指定新表中記錄所包含的字段。ASCENDING|DESCENDING:指定沒(méi)有用/A/D指明排序序列的其余字段的排序順序。F例:USE 學(xué)生SORT TO 學(xué)生1 ON 性別,入??偡?D FOR 入校總分540 FIEL 學(xué)號(hào),姓名,性別,出生日期,入??偡?ASCENDING總61頁(yè),第7頁(yè)F二、索引(邏輯)排序索引為提高查詢(xún)效率而建立,是一種邏輯排序。F(一)索引的概念及類(lèi)型1.概念:索引是按照索引表達(dá)式的值使表中的記錄有序排列的一種方法,是進(jìn)行快速顯示及查詢(xún)數(shù)據(jù)的重要手段,是建立表間關(guān)系的基礎(chǔ)。它不改變表

4、中數(shù)據(jù)的物理順序。在VFP系統(tǒng)中,索引是借助于索引文件實(shí)現(xiàn)。索引文件包括兩個(gè)部分:索引表達(dá)式的值和物理記錄號(hào)。索引表達(dá)式的值按一定順序排列并對(duì)應(yīng)于物理記錄號(hào),顯示時(shí)按索引表達(dá)式值的順序讀取相應(yīng)的記錄號(hào)所指的記錄???1頁(yè),第8頁(yè)索引文件與表文件關(guān)系示意索引索引表達(dá)式的值表達(dá)式的值記錄號(hào)記錄號(hào)記錄號(hào)記錄號(hào)記錄記錄內(nèi)容內(nèi)容1314525437241015索引文件表文件總61頁(yè),第9頁(yè)F索引與物理排序的區(qū)別:1.物理排序要生成新表,記錄的物理順序發(fā)生變化,新表可以單獨(dú)使用;2.索引不生成新表,而是產(chǎn)生一個(gè)索引文件,只是表中記錄的邏輯順序發(fā)生了變化。索引文件不能單獨(dú)使用,它必須同表一起配合使用???1

5、頁(yè),第10頁(yè)F 2.索引文件的類(lèi)型根據(jù)索引文件包含索引的個(gè)數(shù)和打開(kāi)方式,可分為:(1)單索引文件 擴(kuò)展名為.IDX,只有一項(xiàng)索引,只能用命令方式建立,使用時(shí)需單獨(dú)打開(kāi);(2) 復(fù)合索引文件 可以有多項(xiàng)索引,各項(xiàng)索引用唯一的索引標(biāo)識(shí)區(qū)別。包括結(jié)構(gòu)復(fù)合索引和非結(jié)構(gòu)復(fù)合索引。結(jié)構(gòu)復(fù)合索引文件名與表同名,擴(kuò)展名為.CDX,隨表的打開(kāi)而自動(dòng)打開(kāi)。非結(jié)構(gòu)復(fù)合索引文件名與表名不同,擴(kuò)展名為.CDX,不隨表打開(kāi),使用時(shí)用命令打開(kāi)???1頁(yè),第11頁(yè)F3.索引的類(lèi)型VFP的索引文件中根據(jù)表中字段值是否有重復(fù),提供了四種類(lèi)型:主索引、候選索引、普通索引和惟一索引。數(shù)據(jù)庫(kù)表允許所有索引,自由表沒(méi)有主索引。(1)主索

6、引 一個(gè)表只能有一個(gè),在指定字段或索引表達(dá)式中不允許有重復(fù)值,其索引表達(dá)式的值能夠惟一地標(biāo)識(shí)每條記錄的處理順序,主要用于建立永久關(guān)系的主表中;總61頁(yè),第12頁(yè)(2)候選索引一個(gè)表可以有多個(gè)。在指定字段或索引表達(dá)式中不允許有重復(fù)值,其索引表達(dá)式的值能夠惟一地標(biāo)識(shí)每條記錄的處理順序。(3)惟一索引一個(gè)表可有多個(gè)。索引表達(dá)式的值相同時(shí),則只存儲(chǔ)第一條記錄,不重復(fù)存儲(chǔ)。(4)普通索引一個(gè)表可有多個(gè)。索引表達(dá)式的值可以相同,一個(gè)值對(duì)應(yīng)的多條記錄,允許重復(fù)存儲(chǔ)在索引表中???1頁(yè),第13頁(yè)F(二)建立索引1.通過(guò)表設(shè)計(jì)器建立索引利用表設(shè)計(jì)器可以實(shí)現(xiàn)對(duì)結(jié)構(gòu)復(fù)合索引建立和修改???1頁(yè),第14頁(yè)總61頁(yè),第

7、15頁(yè)總61頁(yè),第16頁(yè)2.命令方式建立索引(1)建立單索引文件格式:INDEX ON TO FORUNIQUEADDITIVE功能:創(chuàng)建單索引文件,其擴(kuò)展名為.IDX。說(shuō)明: UNIQUE指定建立惟一索引, ADDITIVE建立索引時(shí)不關(guān)閉原有索引;單索引文件只能按升序排列,但可以用 SET INDEX 或 SET ORDER 命令將 .IDX 索引文件指定為降序。例: USE 學(xué)生INDEX ON 學(xué)號(hào) TO XHLIST思考:索引表達(dá)式為數(shù)值型時(shí),如何實(shí)現(xiàn)直接降序?總61頁(yè),第17頁(yè)(2)建立復(fù)合索引文件格式:INDEX ON TAG OFFORCOMPACT ASCE|DESC UNI

8、Q|CAND功能:沒(méi)有OF選項(xiàng),創(chuàng)建結(jié)構(gòu)復(fù)合索引文件,其擴(kuò)展名為.CDX;否則創(chuàng)建文件名為的非結(jié)構(gòu)復(fù)合索引???1頁(yè),第18頁(yè)例:對(duì)“學(xué)生”表建立兩個(gè)復(fù)合索引a.以姓名降序排列,索引類(lèi)型為普通索引;b.以性別升序排列,性別相同以入??偡纸敌蚺帕?,索引類(lèi)型為普通索引。USE 學(xué)生INDE ON 姓名 TAG XM DESCINDE ON 性別+STR(1000-入校總分) TAG XBZF總61頁(yè),第19頁(yè)(三)使用索引F索引可以重新排列數(shù)據(jù)順序,加快數(shù)據(jù)的檢索、顯示、查詢(xún)和打印速度,還可以建立數(shù)據(jù)表間的關(guān)聯(lián)。F使用索引,必須同時(shí)打開(kāi)表與索引文件。一個(gè)表可以打開(kāi)多個(gè)索引文件,同一個(gè)復(fù)合索引文件中

9、可以 包含多個(gè)索引標(biāo)識(shí),但任何時(shí)候都只有一個(gè)索引文件起作用,在復(fù)合索引文件中也只有一個(gè)索引標(biāo)識(shí)能起作用。當(dāng)前起作用的索引文件稱(chēng)為主控索引文件,當(dāng)前起作用的索引標(biāo)識(shí)稱(chēng)為主控索引。F打開(kāi)索引文件的方法:建立索引文件時(shí),自動(dòng)打開(kāi);打開(kāi)表的同時(shí)打開(kāi)索引文件;打開(kāi)表后再打開(kāi)索引文件???1頁(yè),第20頁(yè)F1.通過(guò)”表”菜單命令使用索引F2.命令方式打開(kāi)索引(1)打開(kāi)表的同時(shí)打開(kāi)索引文件并確定主控索引格式:USE 表文件名 INDEX ORDER /TAGOFASCENING/DESCENDING參數(shù)說(shuō)明:INDEX ,指定要打開(kāi)的一個(gè)或多個(gè)索引文件。若是多個(gè)索引文件,中間用逗號(hào)分隔,其中,排在第一個(gè)的索引

10、文件是主控索引文件;ORDER /TAG,指定主控索引;ASCENING/DESCENDING,指定排序順序。總61頁(yè),第21頁(yè)例1:USE 學(xué)生 INDE XH,XM,ZF ORDE 3例2:USE 學(xué)生 ORDE TAG XM DESC總61頁(yè),第22頁(yè)(2)打開(kāi)表文件后再打開(kāi)索引文件格式:SET INDEX TO | ? ASCENDING | DESCENDING ADDITIVE功能:指定要打開(kāi)的一個(gè)或多個(gè)索引文件,并確定主控索引文件(常用于打開(kāi)單索引文件)???1頁(yè),第23頁(yè)說(shuō)明:說(shuō)明:1)索引文件列表中,第一個(gè)索引文件將成為主控索引文件,它控制記錄的訪問(wèn)和顯示。如果第一個(gè)索引文件

11、是 .CDX 文件,并且沒(méi)有發(fā)出 SET INDEX TO TAG 命令,則按記錄的物理順序顯示和訪問(wèn)記錄;2)SET INDEX TO 關(guān)閉當(dāng)前工作區(qū)中除結(jié)構(gòu)復(fù)合索引文件外的所有索引文件,同時(shí)取消主控索引;3)若缺省ADDITIVE則在使用本命令時(shí),除結(jié)構(gòu)復(fù)合索引文件之外的索引文件均被關(guān)閉???1頁(yè),第24頁(yè)3.確定主控索引索引剛建立時(shí),索引文件呈打開(kāi)狀態(tài),且為主控索引文件;只有一個(gè)索引文件被打開(kāi),則它成為主控索引文件;若當(dāng)前打開(kāi)了多個(gè)索引文件,通過(guò) SET INDEX 命令或SET ORDER TO 命令來(lái)確定主控索引文件。格式:SET ORDER TO |TAG 索引標(biāo)識(shí)ASCENDIN

12、G | DESCENDING如果發(fā)出 SET ORDER TO 0 命令,則所有索引文件仍保持打開(kāi),并且在增加、刪除或修改記錄時(shí)更新。但是,表中所有記錄的顯示和訪問(wèn)順序是物理順序而不是索引順序。不帶其他參數(shù)的 SET ORDER TO 命令與 SET ORDER TO 0 命令完全一樣。總61頁(yè),第25頁(yè)4.索引的更新(1)自動(dòng)更新: 當(dāng)表中的數(shù)據(jù)發(fā)生變化時(shí),所有當(dāng)時(shí)已打開(kāi)的索引文件都會(huì)隨著數(shù)據(jù)的改變自動(dòng)改變記錄的邏輯順序,從而實(shí)現(xiàn)索引文件的更新。 (2)重新索引格式:REINDEX功能:重新建立打開(kāi)的索引文件???1頁(yè),第26頁(yè)5.索引的刪除(1)刪除索引文件(先關(guān)閉后刪除)DELETE F

13、ILE (2)刪除索引標(biāo)識(shí) DELETE TAG ALL| 刪除復(fù)合索引文件的中指定索引標(biāo)識(shí)。ALL子句用于刪除復(fù)合索引文件的所有索引標(biāo)識(shí)。若某索引文件的所有索引表示都被刪除,則該索引文件自動(dòng)刪除???1頁(yè),第27頁(yè)6.關(guān)閉索引格式1:USE格式2:SET INDEX TO 格式3:CLOSE INDEX總61頁(yè),第28頁(yè)F5.3數(shù)據(jù)檢索一、順序查詢(xún)(定位查詢(xún)、直接查詢(xún))格式:LOCATE FOR 范圍功能:按順序搜索表,找到指定范圍滿(mǎn)足條件的第一個(gè)記錄。格式:CONTINUE功能:按照LOCATE命令的條件,繼續(xù)查找下一個(gè)滿(mǎn)足條件的記錄。命令說(shuō)明: (1)被查詢(xún)的表不必建立索引; (2)缺省

14、范圍是ALL; (3)找到滿(mǎn)足條件的記錄,記錄指針指向該條記錄,可使用RECNO( )返回該記錄號(hào),并且FOUND( )返回“真”(.T.),EOF( )返回“假”(.F.);如果找不到滿(mǎn)足條件的記錄,則FOUND( )返回“假”(.F.),記錄指針定位到指定范圍末尾(EOF( )返回值不一定為“真”(.T.) (4)CONTINUE命令不能單獨(dú)使用,必須與LOCATE命令配合使用。可重復(fù)執(zhí)行CONTINUE,直到到達(dá)范圍邊界或表尾???1頁(yè),第29頁(yè)二、索引查詢(xún)按照索引文件的邏輯順序查找符合條件的記錄,要求根據(jù)要查詢(xún)的內(nèi)容建立索引或確定主控索引。格式1:FIND /功能:在打開(kāi)的索引文件中快

15、速查找與指定內(nèi)容相匹配的第一條記錄。說(shuō)明:(1)該命令用于查找字符型(可用可不用定界符)或數(shù)值型數(shù)據(jù);(2)該命令一般不使用表達(dá)式,如果查找字符變量必須宏替換函數(shù);(3)該命令是為與舊版本兼容而保留,可用SEEK命令代替???1頁(yè),第30頁(yè)格式2:SEEK 功能:在打開(kāi)的索引文件中快速查找與相匹配的第1 條記錄,用SKIP查找匹配的下一條記錄。說(shuō)明:(1)只能在索引過(guò)的表中使用 SEEK 命令,并且只能搜索索引關(guān)鍵字;(2)該命令可查找多種類(lèi)型的數(shù)據(jù),查找時(shí)需加定界符,查找變量時(shí)不使用宏替換函數(shù);(3)除非 SET EXACT的設(shè)置為 OFF,否則匹配指的是完全匹配;總61頁(yè),第31頁(yè)(4)如

16、果 SEEK 找到了與索引關(guān)鍵字相匹配的記錄,則 RECNO() 返回匹配記錄的記錄號(hào);FOUND() 返回“真”(.T.);EOF() 返回“假”(.F.)。如果找不到相匹配的關(guān)鍵字,則 RECNO() 將表中記錄的個(gè)數(shù)加 1,然后返回。FOUND() 返回“假”(.F.);EOF() 返回“真”(.T.) ???1頁(yè),第32頁(yè)例:USE 學(xué)生 ORDE TAG XBSEEK 男DISPSKIPDISP總61頁(yè),第33頁(yè)F5.4數(shù)據(jù)統(tǒng)計(jì)1.計(jì)數(shù)命令格式:COUNT FOR TO 功能:統(tǒng)計(jì)指定內(nèi)滿(mǎn)足的記錄個(gè)數(shù),并存于中。例:USE 學(xué)生 COUNT FOR 姓名=“李” TO RS? RS總

17、61頁(yè),第34頁(yè)2.求和命令格式: SUM FOR TO /TO ARRAY 功 能:在指定內(nèi)滿(mǎn)足的記錄中,對(duì)中的各項(xiàng)分別求和,并保存到內(nèi)存變量名表或數(shù)組中(該命令自動(dòng)建立數(shù)組)。說(shuō)明:a.若SUM命令的選項(xiàng)都缺省,則對(duì)表中所有數(shù)值型字段分別求和。b.中變量的個(gè)數(shù),要與中的表達(dá)式的個(gè)數(shù)相匹配,且都用逗號(hào)隔開(kāi)總61頁(yè),第35頁(yè)例:USE XSCJBROWSESUM 數(shù)學(xué),英語(yǔ),計(jì)算機(jī) TO SX,YY,JSJ總61頁(yè),第36頁(yè)3.求平均值命令格式:AVERAGE FOR WHILETO / TO ARRAY 功能:在指定范圍內(nèi),計(jì)算數(shù)值表達(dá)式或字段的算術(shù)平均值。說(shuō)明:AVERAGE命令各參數(shù)的含

18、義同SUM命令???1頁(yè),第37頁(yè)4.計(jì)算命令格式:CALCULATE FOR WHILETO /TO ARRAY 功能:在指定范圍內(nèi),對(duì)表文件的字段或字段表達(dá)式做統(tǒng)計(jì)計(jì)算。說(shuō)明:由下列8個(gè)規(guī)定函數(shù)組合而成:AVG():求的算術(shù)平均值;SUM():求的和;CNT():統(tǒng)計(jì)記錄個(gè)數(shù);MIN():求的最小值;MAX():求的最大值;總61頁(yè),第38頁(yè)NPV (,)求期貨交易流動(dòng)資金的凈當(dāng)前值;STD():求的標(biāo)準(zhǔn)偏差;VAR():求的方差???1頁(yè),第39頁(yè)5.分類(lèi)求和(匯總)命令格式:TOTAL ON FIELDS FOR WHILE TO 功能:按關(guān)鍵字段對(duì)記錄進(jìn)行分類(lèi)匯總,并將匯總結(jié)果存入?yún)R

19、總文件。說(shuō)明:(1)使用TOTAL命令前,必須先按關(guān)鍵字段進(jìn)行排序或索引,否則,該命令無(wú)效;(2)ON :分組依據(jù),即一組關(guān)鍵字段值相同的記錄在匯總表中產(chǎn)生一個(gè)記錄;(3)FIELDS :指出匯總字段,缺省,對(duì)表中所有數(shù)值型字段進(jìn)行匯總;(4)缺省范圍為ALL,指表中所有記錄;(5)備注型字段不能復(fù)制到匯總文件里???1頁(yè),第40頁(yè)F 5.5多個(gè)表的同時(shí)使用一、工作區(qū)的使用1.工作區(qū)的概念工作區(qū)是Visual FoxPro在內(nèi)存中開(kāi)辟的一塊臨時(shí)區(qū)域,用于存放操作的表及其相關(guān)文件。用戶(hù)可以在不同的工作區(qū)中打開(kāi)多個(gè)不同的表,并有多種方法訪問(wèn)不同工作區(qū)中的表???1頁(yè),第41頁(yè)每個(gè)工作區(qū)有一個(gè)編號(hào);

20、一個(gè)工作區(qū)在某一時(shí)刻只能打開(kāi)一個(gè)表;每個(gè)工作區(qū)中的表文件都有自己獨(dú)立的記錄指針;表的打開(kāi)就是將表從外存調(diào)入內(nèi)存的某個(gè)工作區(qū)。(1)工作區(qū)號(hào)Visual FoxPro最多提供32767個(gè)工作區(qū);工作區(qū)的區(qū)域編號(hào),分別用1、2、3、4、32767來(lái)表示???1頁(yè),第42頁(yè)(2)工作區(qū)別名是給工作區(qū)取的一個(gè)除工作區(qū)編號(hào)外的名字,它可以用來(lái)標(biāo)識(shí)一個(gè)工作區(qū)及打開(kāi)的表;前十個(gè)工作區(qū)的別名系統(tǒng)指定為A、B、J,分別對(duì)應(yīng)工作區(qū)1、2、3、4、10;對(duì)于工作區(qū)11到32767,別名發(fā)生沖突時(shí),系統(tǒng)自動(dòng)指定的別名是W11到W32767???1頁(yè),第43頁(yè)(3)表別名是對(duì)在工作區(qū)中打開(kāi)的表的一個(gè)簡(jiǎn)短的文件名,以便于

21、識(shí)別表及簡(jiǎn)化操作;在打開(kāi)表時(shí),如果沒(méi)有定義別名,則系統(tǒng)默認(rèn)以表文件名作為別名;每個(gè)打開(kāi)的表都有兩個(gè)等效的別名,一個(gè)是工作區(qū)別名,一個(gè)是表別名。通過(guò)別名可以引用在工作區(qū)中打開(kāi)的表;總61頁(yè),第44頁(yè)不要用數(shù)字和系統(tǒng)保留的別名作數(shù)據(jù)表名;可以在打開(kāi)表時(shí)定義表別名。總61頁(yè),第45頁(yè)(4)當(dāng)前工作區(qū)與當(dāng)前表正在操作的工作區(qū)為當(dāng)前工作區(qū)。當(dāng)前工作區(qū)只有一個(gè),系統(tǒng)默認(rèn)1號(hào)工作區(qū)為當(dāng)前工作區(qū);在當(dāng)前工作區(qū)中打開(kāi)的表文件稱(chēng)為當(dāng)前表;當(dāng)前工作區(qū)是可變的,可以根據(jù)需要選擇任意一個(gè)工作區(qū)為當(dāng)前工作區(qū)。總61頁(yè),第46頁(yè)2.選擇工作區(qū)格式1:SELECT |功能:選擇需要使用的工作區(qū),并使其成為當(dāng)前工作區(qū)。格式2:

22、USE IN |功能:打開(kāi)表的同時(shí)指定工作區(qū),當(dāng)前工作區(qū)號(hào)不變。說(shuō)明:系統(tǒng)默認(rèn)1號(hào)工作區(qū)為當(dāng)前工作區(qū);總61頁(yè),第47頁(yè)函數(shù)SELECT()可以返回當(dāng)前工作區(qū)號(hào)(指定表別名時(shí)可返回打開(kāi)指定表的工作區(qū)號(hào))格式1中別名可以是工作區(qū)別名,如果表已打開(kāi)也可以是表別名;格式2中別名是工作區(qū)別名;SELECT 0 或 IN 0表示選擇未使用的最小工作區(qū);選定工作區(qū),即選定該工作區(qū)中打開(kāi)的表???1頁(yè),第48頁(yè)3.工作區(qū)中表字段的引用當(dāng)前工作區(qū)中表的字段直接引用;非當(dāng)前工作區(qū)中的表的字段的引用,字段名前面必須加表別名。表別名有兩種格式:格式1: 格式2:別名.字段名總61頁(yè),第49頁(yè)例:SELECT 1US

23、E 學(xué)生SELECT 2USE 選課 ALIASXKSELECT 1 & 選擇1號(hào)工作區(qū)為當(dāng)前工作區(qū)BROWSE FIEL 學(xué)號(hào),A.姓名,學(xué)生.性別,出生日期,XK-課程號(hào),B.成績(jī)總61頁(yè),第50頁(yè)二、建立表間的臨時(shí)關(guān)系1.數(shù)據(jù)表關(guān)聯(lián)的概念是指在有聯(lián)系的不同工作區(qū)中的表間記錄指針建立的一種同步移動(dòng)關(guān)系,使一個(gè)表的記錄指針移動(dòng)時(shí)另一個(gè)表的記錄指針能作相應(yīng)移動(dòng)。這僅是表間的邏輯關(guān)系,是一種臨時(shí)關(guān)系。總61頁(yè),第51頁(yè)2.關(guān)聯(lián)的條件建立關(guān)聯(lián),需要有關(guān)聯(lián)條件,通常是比較兩個(gè)表相應(yīng)字段(一般為共同屬性字段)表達(dá)式的值是否相等;建立關(guān)聯(lián)的兩個(gè)表一個(gè)叫父表(主表或主控表),一個(gè)叫子表(相關(guān)表或受控表);

24、對(duì)關(guān)聯(lián)表進(jìn)行操作時(shí),子表的記錄指針自動(dòng)隨父表的記錄指針而移到滿(mǎn)足條件的記錄上。子表記錄指針移動(dòng)時(shí),需按關(guān)聯(lián)條件進(jìn)行查詢(xún),為提高速度而采用索引查詢(xún),因此,要為子表按關(guān)聯(lián)的字段表達(dá)式建立索引。總61頁(yè),第52頁(yè)3.父表與子表的關(guān)系(1)一對(duì)一關(guān)系(1:1)父表的一條記錄只能和子表的一條記錄對(duì)應(yīng),子表的一條記錄也只能和父表的一條記錄對(duì)應(yīng)。(2)多對(duì)一關(guān)系(N:1)父表中可以有多條記錄和子表的一條記錄對(duì)應(yīng)???1頁(yè),第53頁(yè)(3)一對(duì)多關(guān)系(1:N)父表的一條記錄可以和子表中的多條記錄記錄對(duì)應(yīng)。 VFP中不處理“多對(duì)多關(guān)系”,若出現(xiàn)多多關(guān)系,則將其中一個(gè)表分解,然后以多一關(guān)系或一多關(guān)系處理。總61頁(yè),

25、第54頁(yè)4.臨時(shí)關(guān)聯(lián)的建立(1)建立關(guān)聯(lián)的步驟分別在不同工作區(qū)打開(kāi)需要建立關(guān)聯(lián)的表;為子表按關(guān)聯(lián)的關(guān)鍵字建立索引或確定主控索引;選定父表所在的工作區(qū)為當(dāng)前工作區(qū),與一個(gè)或多個(gè)子表建立關(guān)聯(lián);建立的關(guān)聯(lián)缺省為多對(duì)一關(guān)系,若為一對(duì)多關(guān)系,則需說(shuō)明。總61頁(yè),第55頁(yè)5. SET RELATION TO命令方式建立關(guān)聯(lián)命令格式:SET RELATION TO | INTO ,| INTO |ADDITIVE功能:以當(dāng)前表為父表與其它一個(gè)或多個(gè)表建立關(guān)聯(lián)???1頁(yè),第56頁(yè)說(shuō)明:指定在父表和子表之間建立關(guān)系的關(guān)鍵字表達(dá)式。該選項(xiàng)要求子表必須按關(guān)鍵字表達(dá)式建立索引且設(shè)置為主控索引;:可以是測(cè)試記錄號(hào)函數(shù)RECNO(),兩表按照記錄號(hào)相聯(lián)系,子表不必排序或索引。當(dāng)父表記錄指針移動(dòng)時(shí),子表的記錄指針指向與數(shù)值表達(dá)式值相匹配的記錄上;總61頁(yè),第57頁(yè)INTO 工作區(qū)號(hào)1|別名1:指定非當(dāng)前工作區(qū)中的子表;| INTO |:指定其它表達(dá)式和其它子表,建立另一個(gè)父表和子表之間的關(guān)系。在一條SET R

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論