Teradata 表类型
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.