17.10 - 例: プライマリ インデックスまたはセカンダリ インデックスとしてUDT列を持つ結合インデックスの作成 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

以下の例は、UDT列を使用して結合インデックスのプライマリ インデックスおよびセカンダリ インデックスを作成する方法を示します。

最初に、サンプルの列に使用するUDTを定義します。

tbl_integerタイプはINTEGERデータ型に基づくDISTINCT型UDTです。

     CREATE TYPE tbl_integer AS INTEGER FINAL;

tbl_char50タイプもDISTINCT型UDTで、CHARACTERデータ型に基づきます。

     CREATE TYPE tbl_char50 AS CHARACTER(50) FINAL;

次に、以下のテーブルを作成します。

     CREATE TABLE t1_jupi (
       id       tbl_integer, 
       emp_name tbl_char50) 
     UNIQUE PRIMARY INDEX(id);
     CREATE TABLE t1_jusi (
       emp_name tbl_char50, 
       id       tbl_integer) 
     UNIQUE INDEX(id);

最初の例は、UDT列に定義されたNUPIとNUSIの両方を使用して、非圧縮結合インデックスを作成します。

     CREATE JOIN INDEX t1_jindx AS 
       SELECT t1_jupi.id AS id_1, t1_jupi.emp_name AS name_1, 
              t1_jusi.id AS id_2, t1_jusi.emp_name AS name_2 
       FROM t1_jupi, t1_jusi 
       WHERE t1_jupi.id = t1_jusi.id 
     PRIMARY INDEX (id_1), 
     INDEX (id_2);

2番目の例は、UDT列に定義されたNUPIとNUSIの両方を使用して、行圧縮結合インデックスを作成します。この例では、反復列セットはt1_jusi.idとt1_jusi.emp_nameで、固定列セットはt1_jupi.idとt1_jupi.emp_nameです。

     CREATE JOIN INDEX t3_jindx AS 
       SELECT (t1_jusi.id AS id_2, t1_jusi.emp_name AS name_2) 
              (t1_jupi.id AS id_1, t1_jupi.emp_name AS name_1), 
              
       FROM t1_jusi,  t1_jupi
       WHERE t1_jusi.id =  t1_jupi.id
     PRIMARY INDEX(id_1), 
     INDEX(id_2);

3番目の例は、UDT列に定義されたUPIを使用して結合インデックスを作成します。

     CREATE JOIN INDEX t1_upi_jindx AS 
       SELECT t1_jupi.id AS id_1, t1_jupi.emp_name AS name_1 
       FROM t1_jupi 
     UNIQUE PRIMARY INDEX (name_1);