スケーラブルデータベースサーバ HiRDB Version 8 SQLリファレンス
XML型列の,値の特定の部分構造をキーとするインデクスを定義します。
CREATE 〔UNIQUE〕 INDEX 〔認可識別子.〕インデクス識別子 ON 〔認可識別子.〕表識別子(列名〔{ASC|DESC}〕) 〔IN{RDエリア名 |(RDエリア名) |((RDエリア名)〔,(RDエリア名)〕…) |マトリクス分割インデクス格納用RDエリア指定}〕 KEY 〔 USING UNIQUE TAG 〕FROM 部分構造指定 AS データ型 〔インデクスオプション〕… マトリクス分割インデクス格納用RDエリア指定 ::= 2次元格納用RDエリア指定 2次元格納用RDエリア指定::= (マトリクス分割用RDエリアリスト〔,マトリクス分割用RDエリアリスト〕…) マトリクス分割用RDエリアリスト ::= (RDエリア名〔,RDエリア名〕…) 部分構造指定 ::= 文字列定数 インデクスオプション ::={PCTFREE=未使用領域の比率 |UNBALANCED SPLIT |EMPTY} |
KEY句以外のオペランド及びオペランド規則については「3. CREATE INDEX 形式1(インデクス定義)」を参照してください。
部分構造パス ::= 〔XML名前空間宣言〕… 部分構造パス式 XML名前空間宣言 ::= { declare namespace 接頭辞 = XML名前空間URI; | declare default element namespace XML名前空間URI;} 部分構造パス式 ::= /ステップ式〔/ステップ式〕… ステップ式 ::= 〔 @ 〕 修飾名 修飾名 ::= 〔接頭辞:〕局所名 |
指定項目 | 意味 |
---|---|
先頭の斜線(/) | 斜線の後のステップ式が示す要素が,XML型の値の中の最上位のXML要素であることを意味します。 |
途中の斜線(/) | 斜線の後のステップ式が示すXML要素又はXML属性が,斜線の前のステップ式が示すXML要素の,子のXML要素又はXML属性であることを意味します。 |
ステップ式 | XML要素又はXML属性を意味します。 ただし,XML属性を意味するステップ式は最後にだけ指定できます。 |
@ | @の後の修飾名がXML属性の名前であることを意味します。 @がない場合は,修飾名はXML要素の名前となります。 |
修飾名 | XML要素又はXML属性の名前を意味します。 |
接頭辞: | 後に続く局所名が,接頭辞が示すXML名前空間中の局所名であることを意味します。XML名前空間宣言でXML名前空間に対して割り当てた接頭辞を指定します。 「接頭辞:」を省略した場合は,局所名は既定のXML名前空間中の名前となります。 |
局所名 | XML名前空間中でのXML要素又はXML属性の名前を意味します。 |
項番 | 指定例 | 意味 |
---|---|---|
1 | '/書籍情報/カテゴリ' | 最上位のXML要素である「書籍情報」の子のXML要素「カテゴリ」をキーとします。 |
2 | '/書籍情報/@書籍ID' | 最上位のXML要素である「書籍情報」の属性「書籍ID」をキーとします。 |
3 | 'declare namespace b="http://www.foo.co.jp/bookinfo"; /b:書籍情報/b:カテゴリ' |
最上位のXML要素である「書籍情報」の子のXML要素「カテゴリ」をキーとします。ただし,「書籍情報」及び「カテゴリ」のXML要素の名前はのXML名前空間URIが"http://www.foo.co.jp/bookinfo"であるXML名前空間中の名前となります。 |
4 | 'declare default element namespace "http://www.foo.co.jp/bookinfo"; /書籍情報/カテゴリ' |
項番3と同じ意味となります。 |
表1-43 XQueryデータ型とSQLのデータ型の対応関係
部分構造に対応するXQueryデータモデルのノードの型付き値プロパティのXQueryデータ型 | SQLのデータ型 | |||
---|---|---|---|---|
INTEGER | DECIMAL | FLOAT | VARCHAR | |
xs:untypedAtomic | △ | △ | △ | △ |
xs:int | ○ | × | × | × |
xs:decimal | × | ○ | × | × |
xs:double | × | × | ○ | × |
xs:string | × | × | × | ○ |
その他 | × | × | × | × |
表1-44 キー値の長さ
データ型 | キー値の長さ | |
---|---|---|
INTEGER | 4 | |
DECIMAL〔(m〔,n〕)〕 | ↓m÷2↓+ 1 | |
FLOAT | 8 | |
VARCHAR | 実際のデータ長が255バイト以下 | n1+1 |
実際のデータ長が256バイト以上 | n1+2 |
表1-45 XQueryを評価する時のXQueryデータ型
SQLのデータ型 | XQueryデータ型 |
---|---|
INTEGER | xs:int |
DECIMAL | xs:decimal |
FLOAT | xs:double |
VARCHAR | xs:string |
CREATE INDEX INDX1 ON 書籍管理表(書籍情報) KEY FROM '/書籍情報/カテゴリ' AS VARCHAR(100)
CREATE INDEX INDX2 ON 書籍管理表(書籍情報) KEY USING UNIQUE TAG FROM '/書籍情報/価格' AS INTEGER
CREATE UNIQUE INDEX INDX3 ON 書籍管理表(書籍情報) KEY FROM '/書籍情報/@書籍ID' AS INTEGER
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.