Teradata - Tipos de tablas

Teradata admite los siguientes tipos de tablas para almacenar datos temporales.

  • Tabla derivada
  • Mesa volátil
  • Tabla temporal global

Tabla derivada

Las tablas derivadas se crean, utilizan y eliminan dentro de una consulta. Se utilizan para almacenar resultados intermedios dentro de una consulta.

Ejemplo

El siguiente ejemplo crea una tabla derivada EmpSal con registros de empleados con salario superior a 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;

Cuando se ejecuta la consulta anterior, devuelve los empleados con salario superior a 75000.

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

Mesa volátil

Las tablas volátiles se crean, utilizan y eliminan dentro de una sesión de usuario. Su definición no se almacena en el diccionario de datos. Contienen datos intermedios de la consulta que se utilizan con frecuencia. A continuación se muestra la sintaxis.

Sintaxis

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

Ejemplo

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;

Cuando se ejecuta la consulta anterior, produce el siguiente resultado.

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

Tabla temporal global

La definición de tabla temporal global se almacena en el diccionario de datos y puede ser utilizada por muchos usuarios / sesiones. Pero los datos cargados en la tabla temporal global se retienen solo durante la sesión. Puede materializar hasta 2000 tablas temporales globales por sesión. A continuación se muestra la sintaxis.

Sintaxis

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

Ejemplo

CREATE SET GLOBAL TEMPORARY TABLE dept_stat ( 
   dept_no INTEGER, 
   avg_salary INTEGER, 
   max_salary INTEGER, 
   min_salary INTEGER 
) 
PRIMARY INDEX(dept_no);

Cuando se ejecuta la consulta anterior, produce el siguiente resultado.

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