DB2索引的語法是學習DB2數據庫的基礎知識,下面就為您詳細介紹DB2索引的語法,希望可以對您學習DB2索引的語法方面有所幫助。
CREATE INDEX
CREATE INDEX 語句用來為 DB2 Everyplace 表創建索引。
調用
此語句可以在使用 DB2 CLI 函數的應用程序中使用,也可以通過 CLP 發出。
語法
>>-CREATE--INDEX--index-name--ON--table-name-------------------->
.-,-----------------------------------------.
V .-ASC--. |
>--(----+-column-name-----------------+--+------+-+--)---------><
+-UCASE--(--| expression |--)-+ '-DESC-'
'-LCASE--(--| expression |--)-'
描述
INDEX index-name
命名索引。
ON table-name
table-name 命名要對其創建索引的表。
column-name
對於索引,列名標識要作為索引鍵一部分的列。
每個列名都必須是標識一個表列的未限定名。使用 8 列或更少的列;不能重復列名SQLSTATE 42711)。
每個指定列的長度一定不能超過 1024 字節。
ASC
按列以升序順序排列索引條目。這是缺省值。
DESC
按列以降序順序排列索引條目。
LCASE / UCASE
LCASE 或 LOWER 函數返回一個字符串,其中所有 SBCS 字符都已轉換為小寫字符。即,字符 A 至 Z 將轉換為字符 a 至 z,而帶有區分標記的字符將轉換為其小寫等效項如果它們存在的話)。
自變量必須是其值為 CHAR 或 VARCHAR 數據類型的表達式。
該函數的結果的數據類型和長度屬性與自變量的數據類型和長度屬性相同。如果自變量可以為空,則結果可以為空;如果自變量為空,則結果為空值。
確保 EMPLOYEE 表中的列 JOB 的值中的字符將以小寫字符的形式返回。例如:
SELECT LCASE(JOB)
FROM EMPLOYEE
WHERE EMPNO = '000020';
規則
對於沒有主鍵的表,最多可創建 15 個索引。對於有主鍵的表,最多可創建 14 個索引。
如果嘗試創建與現有索引匹配的索引,則 CREATE INDEX 語句將失敗。在下列情況下,兩個索引描述被認為是重復的:
索引中的列集及其順序與現有索引的列集和順序相同。
排序屬性是相同的。
不能在 CREATE INDEX 語句中使用具有 BLOB 數據類型的列。
注意事項
CREATE INDEX 語句可包含最多 8 列。
DB2 Everyplace 支持索引的雙向掃描。盡管下面兩個索引的定義不同,但它們的作用是相同的。
CREATE INDEX IDX1 ON EMPLOYEE (JOB ASC)
CREATE INDEX IDX1 ON EMPLOYEE (JOB DESC)
通常,應在不指定排序方向的情況下創建索引。通常,索引越少,索引維護的成本也就越低。
DB2 Everyplace 支持索引的前綴掃描。考慮以下示例。創建了以下索引。
CREATE INDEX J1 ON T (A, B, C, D, E, F, G, K)
不需要為 T (A,B,C,D) 創建另一索引。
如果該表未包含數據,則 CREATE INDEX 創建索引的描述;在對表插入數據時創建索引條目。
要為髒位索引創建索引,請使用以下示例:
CREATE INDEX <index name>
ON <table name>
($dirty)
有關髒位的更多信息,請參閱 ***。
示例
為 EMPLOYEE 表創建名為 JOB_BY_DPT 的索引。按每個部門WORKDEPT)中的職位JOB)以升序順序排列索引條目。
CREATE INDEX JOB_BY_DPT
ON EMPLOYEE (WORKDEPT, JOB)
在建表的時候可以指定索引的表空間,比如: create table tabname(...) in tabspace index in tabindexspace
DB2重命名表和查看表信息
DB2數據庫命令大全
DB2數據移動的四種文件格式
DB2列轉行的實現
DB2增量備份的方法