Teradata - Tipos de Tabela

O Teradata oferece suporte aos seguintes tipos de tabela para conter dados temporários.

  • Tabela Derivada
  • Mesa Volátil
  • Tabela Temporária Global

Tabela Derivada

As tabelas derivadas são criadas, usadas e eliminadas em uma consulta. Eles são usados ​​para armazenar resultados intermediários em uma consulta.

Exemplo

O exemplo a seguir cria uma tabela derivada EmpSal com registros de funcionários com salários maiores que 75.000.

SELECT 
Emp.EmployeeNo, 
Emp.FirstName, 
Empsal.NetPay 
FROM 
Employee Emp, 
(select EmployeeNo , NetPay 
from Salary
where NetPay >= 75000) Empsal 
where Emp.EmployeeNo = Empsal.EmployeeNo;

Quando a consulta acima é executada, ela retorna os funcionários com salário maior que 75.000.

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

Mesa Volátil

As tabelas voláteis são criadas, usadas e eliminadas em uma sessão de usuário. Sua definição não é armazenada no dicionário de dados. Eles contêm dados intermediários da consulta que são usados ​​com frequência. A seguir está a sintaxe.

Sintaxe

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

Exemplo

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;

Quando a consulta acima é executada, ela produz a seguinte saída.

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

Tabela Temporária Global

A definição da tabela temporária global é armazenada no dicionário de dados e pode ser usada por vários usuários / sessões. Mas os dados carregados na tabela temporária global são retidos apenas durante a sessão. Você pode materializar até 2.000 tabelas temporárias globais por sessão. A seguir está a sintaxe.

Sintaxe

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

Exemplo

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

Quando a consulta acima é executada, ela produz a seguinte saída.

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