Teradata - 表型別



Teradata 支援以下表型別來儲存臨時資料。

  • 派生表
  • 易失表
  • 全域性臨時表

派生表

派生表在查詢中建立、使用和刪除。它們用於儲存查詢中的中間結果。

示例

以下示例構建了一個派生表 EmpSal,其中包含薪資大於 75000 的員工記錄。

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.
廣告
© . All rights reserved.