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.