2.5 表的索引
1. 基本概念
記錄的順序 :
物理順序:即表中記錄的存儲順序。用記錄號表示。
邏輯順序:表打開后被使用時記錄的處理順序。
索 引:
指按表文件中某個關(guān)鍵字段或表達(dá)式建立記錄的邏輯順序。它是由一系列記錄號組成的一個列表,提供對數(shù)據(jù)的快速訪問。索引不改變表中記錄的物理順序。表文件中的記錄被修改或刪除時,索引文件可自動更新。
索引關(guān)鍵字(索引表達(dá)式):用來建立索引的一個字段或字段表達(dá)式。
注意:1)用多個字段建立索引表達(dá)式時,表達(dá)式的計算結(jié)果將影響索引的結(jié)果;
2)不同類型字段構(gòu)成一個表達(dá)式時,必須轉(zhuǎn)換數(shù)據(jù)類型。
索引標(biāo)識(索引名):
即索引關(guān)鍵字的名稱。必須以下劃線、字母或漢字開頭,且不可超過10個字。
索引類型:主索引、候選索引、普通索引、唯一索引。
主索引:
組成主索引關(guān)鍵字的字段或表達(dá)式,在表的所有記錄中不能有重復(fù)的值。主索引只適用于數(shù)據(jù)庫表的結(jié)構(gòu)復(fù)合索引中。自由表中不可以建立主索引;數(shù)據(jù)庫中的每個表可以且只能建立一個主索引。
候選索引:
在指定的關(guān)鍵字段或表達(dá)式中不允許有重復(fù)值的索引。在數(shù)據(jù)庫表和自由表中均可為每個表建立多個候選索引。
普通索引:
也可以決定記錄的處理順序,但是允許字段中出現(xiàn)重復(fù)值。在一個表中可以加入多個普通索引。
唯一索引:
參加索引的關(guān)鍵字段或表達(dá)式在表中可以有重復(fù)值,但在索引對照表中,具有重復(fù)值的記錄僅存儲其中的第一個。
2. 索引的作用
用途 采用的索引類型
排序記錄,以便顯示、查詢或打印 使用普通索引、候選索引或主索引
在字段中控制重復(fù)值的輸入并對記錄排序 對數(shù)據(jù)庫表使用主索引或候選索引,對自由表使用候選索引
準(zhǔn)備設(shè)置表關(guān)系 依據(jù)表在關(guān)系中所起的作用,使用普通索引、主索引或候選索引
3.索引文件的種類
索引文件種類 特征 關(guān)鍵字?jǐn)?shù)目 限制
結(jié)構(gòu)復(fù)合索引文件
.CDX 使用和表文件名相同的基本名,隨表的打開自動打開。可以看成表結(jié)構(gòu)的一部分。 多關(guān)鍵字表達(dá)式,稱為標(biāo)識。 有效表達(dá)式限制在 240 個字符之內(nèi)。
非結(jié)構(gòu)復(fù)合索引文件
.CDX 必須明確地打開,使用和表名不同的基本名。其中不能創(chuàng)建主索引 多關(guān)鍵字表達(dá)式,稱為標(biāo)識。 有效表達(dá)式限制在 符之240 個字內(nèi)。
獨立索引文件
.IDX 必須明確地打開,文件的基本名由用戶定義。一般作為臨時索引文件。 單關(guān)鍵字表達(dá)式。 有效表達(dá)式限制在 100 個字符之內(nèi)。
結(jié)構(gòu)復(fù)合索引文件(擴(kuò)展名為.CDX)的特點:
.在創(chuàng)建索引標(biāo)識時自動創(chuàng)建。
.在打開表時自動打開。
.在同一索引文件中能包含多個排序方案,或索引關(guān)鍵字。
.在添加、更改或刪除記錄時自動維護(hù)。
4. 創(chuàng)建結(jié)構(gòu)復(fù)合索引
VFP中創(chuàng)建索引文件有兩種方式:表設(shè)計器方式和命令方式。
(1)表設(shè)計器方式
打開表文件 →從顯示菜單中選擇表設(shè)計器 → 在表設(shè)計器中單擊索引 → 輸入索引名并選擇索引類型 → 選擇索引的方向(按升序或降序排列記錄) → 在表達(dá)式框中輸入作為排序依據(jù)的索引關(guān)鍵字 → 在篩選框中輸入篩選表達(dá)式 → 單擊確定,完畢。
(2) 命令方式
命令 功能
INDEX ON <索引關(guān)鍵字段> TAG <索引標(biāo)識>[FOR 條件 ] [ASCENDING | DESCENDING] [CANDIDATE | UNIQUE] 用INDEX ON 命令建立一個索引文件
ALTER TABLE <表名> ADD PRIMARY KEY <關(guān)鍵字段名> TAG <索引標(biāo)識名> 用SQL命令創(chuàng)建主索引
ALTER TABLE <表名> ADD UNIQUE <關(guān)鍵字段名>TAG <索引標(biāo)識名> 用SQL命令創(chuàng)建候選索引
注意:1)備注型字段和通用型字段不能作為索引關(guān)鍵字段;
2)不要建立無用的索引,以免降低系統(tǒng)性能;
3)及時清理已無用索引標(biāo)識,提高系統(tǒng)效率。
4)在復(fù)合索引的多個索引中,某一時刻只有一個索引對表起作用。
5. 索引的修改和刪除
修改: 打開表設(shè)計器,在索引對話框中進(jìn)行所需修改;
或 用命令重新建立一個相同標(biāo)識名而索引表達(dá)式不同的索引。
刪除: 打開表設(shè)計器,在索引對話框中刪除不需要的索引標(biāo)識即可;
或 用命令: DELETE TAG ALL | 索引標(biāo)識1 [, 索引標(biāo)識2 ] …
刪除不需要的索引標(biāo)識,ALL表示全部標(biāo)識。
6. 索引的使用
功能 命令格式
打開表的同時指定主控索引 USE <表名> ORDER <標(biāo)識名>
為已打開的表確定主控索引 SET ORDER TO <標(biāo)識名> [ASCENDING | DESCENDING] ]
搜索某張已建立索引的表 FIND <表達(dá)式>
搜索表中首次出現(xiàn)的記錄 SEEK <表達(dá)式> [ <索引標(biāo)識名>]
SEEK <表達(dá)式>
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。