DB2索引的語(yǔ)法介紹
DB2索引的語(yǔ)法是學(xué)習(xí)DB2數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí),下面就為您詳細(xì)介紹DB2索引的語(yǔ)法,希望可以對(duì)您學(xué)習(xí)DB2索引的語(yǔ)法方面有所幫助。
CREATE INDEX
CREATE INDEX 語(yǔ)句用來(lái)為 DB2 Everyplace 表創(chuàng)建索引。
調(diào)用
此語(yǔ)句可以在使用 DB2 CLI 函數(shù)的應(yīng)用程序中使用,也可以通過(guò) CLP 發(fā)出。
語(yǔ)法
>>-CREATE--INDEX--index-name--ON--table-name-------------------->
   .-,-----------------------------------------.
   V                               .-ASC--. |
>--(----+-column-name-----------------+--+------+-+--)---------><
       +-UCASE--(--| expression |--)-+   '-DESC-'
       '-LCASE--(--| expression |--)-'
描述
INDEX index-name 
命名索引。 
ON table-name 
table-name 命名要對(duì)其創(chuàng)建索引的表。 
column-name 
對(duì)于索引,列名標(biāo)識(shí)要作為索引鍵一部分的列。 
每個(gè)列名都必須是標(biāo)識(shí)一個(gè)表列的未限定名。使用 8 列或更少的列;不能重復(fù)列名(SQLSTATE 42711)。
每個(gè)指定列的長(zhǎng)度一定不能超過(guò) 1024 字節(jié)。
ASC 
按列以升序順序排列索引條目。這是缺省值。
DESC 
按列以降序順序排列索引條目。 
LCASE / UCASE 
LCASE 或 LOWER 函數(shù)返回一個(gè)字符串,其中所有 SBCS 字符都已轉(zhuǎn)換為小寫(xiě)字符。即,字符 A 至 Z 將轉(zhuǎn)換為字符 a 至 z,而帶有區(qū)分標(biāo)記的字符將轉(zhuǎn)換為其小寫(xiě)等效項(xiàng)(如果它們存在的話(huà))。
自變量必須是其值為 CHAR 或 VARCHAR 數(shù)據(jù)類(lèi)型的表達(dá)式。
該函數(shù)的結(jié)果的數(shù)據(jù)類(lèi)型和長(zhǎng)度屬性與自變量的數(shù)據(jù)類(lèi)型和長(zhǎng)度屬性相同。如果自變量可以為空,則結(jié)果可以為空;如果自變量為空,則結(jié)果為空值。
確保 EMPLOYEE 表中的列 JOB 的值中的字符將以小寫(xiě)字符的形式返回。例如:
SELECT LCASE(JOB)
    FROM EMPLOYEE
    WHERE EMPNO = '000020';
規(guī)則
對(duì)于沒(méi)有主鍵的表,最多可創(chuàng)建 15 個(gè)索引。對(duì)于有主鍵的表,最多可創(chuàng)建 14 個(gè)索引。 
如果嘗試創(chuàng)建與現(xiàn)有索引匹配的索引,則 CREATE INDEX 語(yǔ)句將失敗。在下列情況下,兩個(gè)索引描述被認(rèn)為是重復(fù)的:
索引中的列集及其順序與現(xiàn)有索引的列集和順序相同。 
排序?qū)傩允窍嗤摹?
不能在 CREATE INDEX 語(yǔ)句中使用具有 BLOB 數(shù)據(jù)類(lèi)型的列。 
注意事項(xiàng)
CREATE INDEX 語(yǔ)句可包含最多 8 列。 
DB2 Everyplace 支持索引的雙向掃描。盡管下面兩個(gè)索引的定義不同,但它們的作用是相同的。 
CREATE INDEX IDX1 ON EMPLOYEE (JOB ASC)
CREATE INDEX IDX1 ON EMPLOYEE (JOB DESC)
通常,應(yīng)在不指定排序方向的情況下創(chuàng)建索引。通常,索引越少,索引維護(hù)的成本也就越低。 
DB2 Everyplace 支持索引的前綴掃描。考慮以下示例。創(chuàng)建了以下索引。
CREATE INDEX J1 ON T (A, B, C, D, E, F, G, K)
不需要為 T (A,B,C,D) 創(chuàng)建另一索引。 
如果該表未包含數(shù)據(jù),則 CREATE INDEX 創(chuàng)建索引的描述;在對(duì)表插入數(shù)據(jù)時(shí)創(chuàng)建索引條目。 
要為臟位索引創(chuàng)建索引,請(qǐng)使用以下示例:
CREATE INDEX <index name>
   ON <table name>
   ($dirty)
有關(guān)臟位的更多信息,請(qǐng)參閱 ***。
示例
為 EMPLOYEE 表創(chuàng)建名為 JOB_BY_DPT 的索引。按每個(gè)部門(mén)(WORKDEPT)中的職位(JOB)以升序順序排列索引條目。
CREATE INDEX JOB_BY_DPT 
ON EMPLOYEE (WORKDEPT, JOB)
在建表的時(shí)候可以指定索引的表空間,比如: create table tabname(...) in tabspace index in tabindexspace
【編輯推薦】















 
 
 
 
 
 
 