Teradata 简明教程

Teradata - Table Types

Teradata 支持以下表格类型来保存临时数据。

  1. Derived Table

  2. Volatile Table

  3. Global Temporary Table

Derived Table

导出表在查询中创建、使用和删除。它们用于在查询中存储中间结果。

Example

以下示例使用工资超过 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

Volatile Table

易失表在用户会话中创建、使用和删除。它们的定义未存储在数据字典中。它们保存查询中经常使用的中间数据。以下是语法。

Syntax

CREATE [SET|MULTISET] VOALTILE TABLE tablename
<table definitions>
<column definitions>
<index definitions>
ON COMMIT [DELETE|PRESERVE] ROWS

Example

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.

Global Temporary Table

全局临时表的定义存储在数据字典中,并且可以在许多用户/会话中使用它们。但加载到全局临时表中的数据仅在会话期间保留。每个会话最多可以实现 2000 个全局临时表。以下是语法。

Syntax

CREATE [SET|MULTISET] GLOBAL TEMPORARY TABLE tablename
<table definitions>
<column definitions>
<index definitions>

Example

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.