Teradata-table-types
提供:Dev Guides
Teradata-テーブルタイプ
Teradataは、一時データを保持するために次のテーブルタイプをサポートしています。
- 派生テーブル
- 揮発性テーブル
- グローバル一時表
派生テーブル
派生テーブルは、クエリ内で作成、使用、および削除されます。 これらは、クエリ内に中間結果を保存するために使用されます。
例
次の例は、給与が75000を超える従業員のレコードを含む派生テーブルEmpSalを作成します。
SELECT
Emp.EmployeeNo,
Emp.FirstName,
Empsal.NetPay
FROM
Employee Emp,
(select EmployeeNo , NetPay
from Salary
where NetPay >= 75000) Empsal
where Emp.EmployeeNo = Empsal.EmployeeNo;
上記のクエリを実行すると、給与が75000を超える従業員が返されます。
*** Query completed. One row found. 3 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName NetPay
----------- ------------------------------ -----------
103 Peter 83000
揮発性テーブル
揮発性テーブルは、ユーザーセッション内で作成、使用、および削除されます。 それらの定義はデータ辞書に保存されません。 頻繁に使用されるクエリの中間データを保持します。 構文は次のとおりです。
構文
CREATE [SET|MULTISET] VOALTILE TABLE tablename
<table definitions>
<column definitions>
<index definitions>
ON COMMIT [DELETE|PRESERVE] ROWS
例
CREATE VOLATILE TABLE dept_stat (
dept_no INTEGER,
avg_salary INTEGER,
max_salary INTEGER,
min_salary INTEGER
)
PRIMARY INDEX(dept_no)
ON COMMIT PRESERVE ROWS;
上記のクエリを実行すると、次の出力が生成されます。
*** Table has been created.
*** Total elapsed time was 1 second.
グローバル一時表
グローバル一時テーブルの定義はデータディクショナリに保存され、多くのユーザー/セッションで使用できます。 ただし、グローバル一時テーブルにロードされたデータは、セッション中のみ保持されます。 セッションごとに最大2000個のグローバル一時テーブルをマテリアライズできます。 構文は次のとおりです。
構文
CREATE [SET|MULTISET] GLOBAL TEMPORARY TABLE tablename
<table definitions>
<column definitions>
<index definitions>
例
CREATE SET GLOBAL TEMPORARY TABLE dept_stat (
dept_no INTEGER,
avg_salary INTEGER,
max_salary INTEGER,
min_salary INTEGER
)
PRIMARY INDEX(dept_no);
上記のクエリを実行すると、次の出力が生成されます。
*** Table has been created.
*** Total elapsed time was 1 second.