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.