理論排序索引精品課件_第1頁
理論排序索引精品課件_第2頁
理論排序索引精品課件_第3頁
理論排序索引精品課件_第4頁
理論排序索引精品課件_第5頁
已閱讀5頁,還剩39頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、理論排序索引第1頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四物理排序原理ABaaNN321aa2設(shè)A、B是字段名aa3記錄號(hào)aa1bbNbb3bb2bb1ABaaNaa2aa3aa1bbNbb3bb2bb1N321按某要求排序源數(shù)據(jù)表(名)新數(shù)據(jù)表(名)記錄號(hào)記錄號(hào)與記錄內(nèi)容的變化。第2頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四命令格式: SORT TO ON /A/D/C , /A/D/C FOR WHILE FIELDS ASCENDING /DESCENDING第3頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四說明: ON子句中字段名1、字段名2等為排

2、序關(guān)鍵字,不包括邏輯型字段、備注型字段和通用型字段。字段名1為主要排序關(guān)鍵字,字段名2為次要關(guān)鍵字,依此類推;排序時(shí)先比較主關(guān)鍵字的值,當(dāng)主關(guān)鍵字值相同時(shí),再比較次關(guān)鍵字鍵的值,依此類推。第4頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四FIELDS子句指定排序以后的新表所包含的字段個(gè)數(shù):若無此選項(xiàng),則新表中包含原表中的所有字段。選項(xiàng)A表示按字段值的升序排列,可以省略不寫:D表示按字段值的降序排列:C表示按指定的字符型字段排序時(shí),不區(qū)分字母的大小寫。C可以與D或A合用,如AC或DC。第5頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四如果對所有關(guān)鍵字段均按升序或降序方式排序,

3、則可以使用ASCENDING或DESCENDING選項(xiàng),但A,D,C比ASCENDING或DESCENDING 優(yōu)先權(quán)高。排序后,原來的表文件仍存在,且原記錄順序和數(shù)據(jù)內(nèi)容不改變。第6頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四例如:在D:vfp文件夾下有名為gzb的數(shù)據(jù)表,包含有工號(hào),姓名,性別,出生日期,職稱,婚否(邏輯型,已婚為.T.,未婚為.F.)工資,備注,通用等字段。(1)以工資升序排序,生成的新表文件名為gz1。set defa to d:vfpuse gzbsort to gz1 on 工資/A第7頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四(2)以性別

4、排序,性別相同的按工資降序排序,生成的新表文件名為gz2。set defa to d:vfpuse gzbsort to gz2 on 性別,工資/D第8頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四(3)所有未婚學(xué)員按年齡從大到小排列,生成的新表只包括姓名,性別,出生日期,工資字段,新表名為gz3。set defa to d:vfpuse gzbsort to gz3 on 出生日期 fields 姓名,性別,出生日期,工資 for 婚否=.f.for .not.婚否第9頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四物理排序的缺點(diǎn)1.只能從源數(shù)據(jù)表的當(dāng)前數(shù)據(jù)中產(chǎn)生一個(gè)新的

5、物理數(shù)據(jù)表,只能得到靜態(tài)的有序結(jié)果。 如果源數(shù)據(jù)表中的數(shù)據(jù)產(chǎn)生了變化且此時(shí)想要得到包含新數(shù)據(jù)在內(nèi)的有序結(jié)果,必須重新執(zhí)行排序操作。2.所產(chǎn)生的文件較大,要占用較多的磁盤空間。第10頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四希望的結(jié)果排序的缺點(diǎn):1.靜態(tài)2.文件大1.動(dòng)態(tài)2.文件小某種新形式第11頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四邏輯排序(索引)的原理ABaaNN321aa2A、B是字段名aa3記錄號(hào)aa1bbNbb3bb2bb1關(guān)鍵字3N12ABaaNaa2aa3aa1bbNbb3bb2bb1N321數(shù)據(jù)表(名)索引表(名)看見的結(jié)果無此物理表記錄號(hào)按某要求

6、所得“透鏡”指針aa3aaNaa1aa2第12頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四單索引:只包括一個(gè)索引項(xiàng),即只建立一張索引表,且擴(kuò)展名為.IDX復(fù)合索引:包含多個(gè)索引項(xiàng),擴(kuò)展名為.CDX結(jié)構(gòu):隨數(shù)據(jù)表打開而打開,自動(dòng)更新非結(jié)構(gòu)索引文件分類第13頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四索引項(xiàng)(一般稱為索引標(biāo)識(shí))的類型第14頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四索引項(xiàng)(一般稱為索引標(biāo)識(shí))的類型 主索引(Primary lndexes) 要求該索引關(guān)鍵字的值必須惟一,不允許重復(fù)。 一個(gè)數(shù)據(jù)庫表只能有一個(gè)主索引,僅適用于數(shù)據(jù)庫表,自由表沒有主索引

7、類型。第15頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四候選索引(Candidate lndex) 候選索引和主索引具有相同的特性,要求該索引關(guān)鍵字的值必須惟一,不允許重復(fù)。 但一個(gè)數(shù)據(jù)表可以建立多個(gè)候選索引。第16頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四唯一索引(Unique lndex) 允許索引關(guān)鍵字有重復(fù)值,但索引文件對其只存儲(chǔ)一次,而忽略后面出現(xiàn)重復(fù)值的記錄。 每個(gè)數(shù)據(jù)表可以建立多個(gè)唯一索引。第17頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四普通索引(Regular lndex) 允許索引關(guān)鍵字有重復(fù)值,并且索引文件中也允許出現(xiàn)重復(fù)值。在數(shù)據(jù)庫

8、表和自由表中可以建立多個(gè)普通索引。第18頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四 4.3.3 索引文件的建立(1)在表設(shè)計(jì)器中建立索引 實(shí)驗(yàn)課操作(2)用INDEX命令建索引 最簡形式比較INDE ON TO 單索引INDE ON TAG 結(jié)構(gòu)復(fù)合INDE ON TAG OF 非結(jié)構(gòu)復(fù)合索引第19頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四格式1:單索引INDEX ON TO FOR UNIQUE | CANDIDATE ADDITIVE關(guān)鍵字表達(dá)式:一個(gè)或多個(gè)字段名組成的表達(dá)式。用作索引的字段名又叫索引關(guān)鍵字,可以是C,N,L,D型。第20頁,共44頁,2022年

9、,5月20日,17點(diǎn)9分,星期四例如:在D:vfp文件夾下有名為gzb的數(shù)據(jù)表,包含有工號(hào),姓名,性別,出生日期,職稱,婚否(邏輯型,已婚為.T.,未婚為.F.)工資,備注,通用等字段。(1)以性別排序,生成的單索引文件名為gz1且要求是唯一索引。set defa to d:vfpuse gzbindex to gz1 on 性別 unique第21頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四(2)對未婚學(xué)員以工資降序排列,建立名為gz2的單索引文件。set defa to d:vfpuse gzbindex to gz2 on -工資 for 婚否=.f.第22頁,共44頁,20

10、22年,5月20日,17點(diǎn)9分,星期四(3)為gzb建立單索引文件gz3,要求按性別和工資升序排列記錄。set defa to d:vfpuse gzbindex to gz3 on 性別+str(工資)說明:對多個(gè)字段同時(shí)索引,應(yīng)把有關(guān)字段名組合成一個(gè)合法的字符型表達(dá)式。第23頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四格式2:結(jié)構(gòu)復(fù)合索引INDEX ON TAG FOR UNIQUE | CANDIDATEASCENDING | DESCENDING ADDITIVE第24頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四例如:在D:vfp文件夾下有名為gzb的數(shù)據(jù)表,包

11、含有工號(hào),姓名,性別,出生日期,職稱,婚否(邏輯型,已婚為.T.,未婚為.F.)工資,備注,通用等字段。(1)以工資降序排序,建立結(jié)構(gòu)符合索引,索引標(biāo)識(shí)名為工資。set defa to d:vfpuse gzbindex tag 工資 on 工資 DESC第25頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四(2)再為gzb建立一個(gè)索引項(xiàng)(索引標(biāo)識(shí)),要求按性別和工資升序排列記錄。set defa to d:vfpuse gzbindex tag 性別_工資 on 性別+str(工資)第26頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四我們?yōu)間zb建立了那么多索引,按哪個(gè)索引

12、來顯示表記錄呢?第27頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四剛才我們發(fā)現(xiàn),每當(dāng)我們新建立一個(gè)單索引文件,或者建立一個(gè)復(fù)合結(jié)構(gòu)索引中的新索引標(biāo)識(shí)時(shí),使用browse命令,可以看到按照新建立的索引來顯示記錄,那么,如果不是新建立的呢?或者說我想按另一個(gè)索引來顯示記錄怎么做呢?第28頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四4.3.4 索引文件的打開與關(guān)閉一、索引文件的打開結(jié)構(gòu)復(fù)合索引:隨數(shù)據(jù)表的打開而自動(dòng)打開。單索引、非結(jié)構(gòu)復(fù)合索引文件:用專用命令打開。第29頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四 打開一個(gè)數(shù)據(jù)表后,可以打開多個(gè)相關(guān)的索引文件,結(jié)構(gòu)

13、復(fù)合索引文件會(huì)隨表文件的打開而自動(dòng)打開。 某一時(shí)刻只有一個(gè)索引文件起作用(主控索引文件),如果是復(fù)合索引文件,則只有其中一個(gè)索引標(biāo)識(shí)起作用(主控索引標(biāo)識(shí)),此時(shí)該索引文件得到使用。注意:不管何種形式,起作用的只有一個(gè)。第30頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四格式1: use index 打開表的同時(shí)將相關(guān)的索引文件打開。格式2 : set index to 在表已打開的情況下,打開與之相關(guān)的索引文件。相同的前提:索引文件已存在!單索引文件的打開第31頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四問題:打開了索引文件后,是不是就起作用了呢?如果起作用了,是什么類型

14、的索引文件起作用了呢?set defa to d:vfpuse gzb index gz1,gz2第32頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四1.如果第一個(gè)索引文件是單索引文件,則該文件起作用。若不是,則所有索引項(xiàng)不起作用。2.如果第一個(gè)索引文件不是單索引,則系統(tǒng)給索引項(xiàng)的編號(hào)順序?yàn)椋篒DX文件結(jié)構(gòu)復(fù)合索引項(xiàng)非結(jié)構(gòu)復(fù)合索引項(xiàng)第33頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四問題: (1) 怎么樣讓結(jié)構(gòu)復(fù)合索引的某一個(gè)索引標(biāo)識(shí)起作用呢?(2)如果我打開了多個(gè)單索引文件,怎么樣讓其他的單索引文件起作用,成為主控索引項(xiàng)呢?第34頁,共44頁,2022年,5月20日,17

15、點(diǎn)9分,星期四指定主控索引項(xiàng) 讓“透鏡”起作用格式1: set order to ascending | decending 格式2: set order to 單索引文件專用格式3:set order to tag 復(fù)合索引引文件專用第35頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四set defa to d:vfpuse gzb index gz1,gz2回憶一下,復(fù)合結(jié)構(gòu)索引我們先后建立了工資,性別_工資兩個(gè)索引標(biāo)識(shí),那么現(xiàn)在共有幾個(gè)索引項(xiàng)可以供使用呢?系統(tǒng)編號(hào)又是怎樣呢?第36頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四如果想讓結(jié)構(gòu)復(fù)合索引中的性別_工資這個(gè)索引

16、標(biāo)識(shí)起作用,可以怎么做呢?(1)set order to 4(2)set order to tag 性別_工資思考:想讓單索引文件gz2成為主控索引怎么做呢?第37頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四 二、取消當(dāng)前的主控索引項(xiàng)set order to set order to 0 (0是數(shù)字不是字母o) 以表記錄的物理順序排列第38頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四三、刪除索引項(xiàng)(僅適用于結(jié)構(gòu)復(fù)合索引)DELETE TAG ALL | 說明:使用 ALL 選項(xiàng)將刪除復(fù)合索引文件中的全部索引項(xiàng),而且該復(fù)合索引文件將自動(dòng)被刪除。使用選項(xiàng)只刪除指定的索引項(xiàng)。

17、如:delete tag 工資第39頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四 刪除文件(VFP中刪除任意文件): 刪除多余(無用)文件,使用命令: delete file 如:delete file d:vfpgz1.idx第40頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四四、索引項(xiàng)起作用時(shí)記錄指針的移動(dòng) 在數(shù)據(jù)表和索引文件打開的情況下,當(dāng)某個(gè)索引項(xiàng)起作用時(shí),記錄指針實(shí)際上是在該索引項(xiàng)的索引表上進(jìn)行移動(dòng),但絕對移動(dòng)命令(GO expN)除外。 詳見P76第41頁,共44頁,2022年,5月20日,17點(diǎn)9分,星期四五、索引文件的關(guān)閉格式1:CLOSE INDEXES格式2:SET INDEX TO 關(guān)閉當(dāng)前工作區(qū)內(nèi)除了結(jié)構(gòu)復(fù)合索引文件之外的所有索引文件。 關(guān)閉數(shù)據(jù)表后,相關(guān)的所有索引文件都隨之關(guān)閉。(知道結(jié)構(gòu)復(fù)合索引文件如何關(guān)閉的嗎?)第42頁,共44頁,

溫馨提示

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

評論

0/150

提交評論