Teradata 表类型

2018-01-12 11:41 更新

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

  • Derived Table
  • Volatile Table
  • Global Temporary Table

Derived Table

Derived Table在查询中创建,使用和删除。 这些用于在查询中存储中间结果。

例子

以下示例构建具有薪金大于75000的员工的记录的提取表Derived Table 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

在用户会话中创建,使用和删除Volatile Table 它们的定义不存储在数据字典中。 它们保存经常使用的查询的中间数据。 以下是语法。

句法

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.

Global Temporary Table

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

例子

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.
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号