Teradata 表類型

2018-01-12 11:41 更新

Teradata支持以下表類型來保存臨時數(shù)據(jù)。

  • Derived Table
  • Volatile Table
  • Global Temporary Table

Derived Table

Derived Table在查詢中創(chuàng)建,使用和刪除。 這些用于在查詢中存儲中間結(jié)果。

例子

以下示例構(gòu)建具有薪金大于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;

當(dāng)執(zhí)行上述查詢時,它返回薪水大于75000的員工。

*** Query completed. One row found. 3 columns returned. 
*** Total elapsed time was 1 second. 
 EmployeeNo            FirstName               NetPay 
-----------  ------------------------------  ----------- 
    103                  Peter                 83000 

Volatile Table

在用戶會話中創(chuàng)建,使用和刪除Volatile Table。 它們的定義不存儲在數(shù)據(jù)字典中。 它們保存經(jīng)常使用的查詢的中間數(shù)據(jù)。 以下是語法。

句法

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;

當(dāng)執(zhí)行上述查詢時,它將產(chǎn)生以下輸出。

*** Table has been created. 
*** Total elapsed time was 1 second.

Global Temporary Table

Global Temporary Table的定義存儲在數(shù)據(jù)字典中,并且它們可以被許多用戶/會話使用。 但是加載到Global Temporary Table中的數(shù)據(jù)僅在會話期間保留。 每個會話最多可以實(shí)現(xiàn)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);

當(dāng)執(zhí)行上述查詢時,它將產(chǎn)生以下輸出。

*** Table has been created. 
*** Total elapsed time was 1 second.
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號