Teradata - Tipi di tabelle
Teradata supporta i seguenti tipi di tabella per contenere dati temporanei.
- Tabella derivata
- Tabella volatile
- Tabella temporanea globale
Tabella derivata
Le tabelle derivate vengono create, utilizzate e rilasciate all'interno di una query. Vengono utilizzati per memorizzare risultati intermedi all'interno di una query.
Esempio
L'esempio seguente crea una tabella derivata EmpSal con record di dipendenti con stipendio maggiore di 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;
Quando la query precedente viene eseguita, restituisce i dipendenti con uno stipendio superiore a 75000.
*** Query completed. One row found. 3 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName NetPay
----------- ------------------------------ -----------
103 Peter 83000
Tabella volatile
Le tabelle volatili vengono create, utilizzate e rilasciate all'interno di una sessione utente. La loro definizione non è memorizzata nel dizionario dei dati. Contengono i dati intermedi della query che viene utilizzata di frequente. Di seguito è riportata la sintassi.
Sintassi
CREATE [SET|MULTISET] VOALTILE TABLE tablename
<table definitions>
<column definitions>
<index definitions>
ON COMMIT [DELETE|PRESERVE] ROWS
Esempio
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 la query precedente viene eseguita, produce il seguente output.
*** Table has been created.
*** Total elapsed time was 1 second.
Tabella temporanea globale
La definizione di tabella temporanea globale è memorizzata nel dizionario dei dati e può essere utilizzata da molti utenti / sessioni. Ma i dati caricati nella tabella temporanea globale vengono conservati solo durante la sessione. È possibile materializzare fino a 2000 tabelle temporanee globali per sessione. Di seguito è riportata la sintassi.
Sintassi
CREATE [SET|MULTISET] GLOBAL TEMPORARY TABLE tablename
<table definitions>
<column definitions>
<index definitions>
Esempio
CREATE SET GLOBAL TEMPORARY TABLE dept_stat (
dept_no INTEGER,
avg_salary INTEGER,
max_salary INTEGER,
min_salary INTEGER
)
PRIMARY INDEX(dept_no);
Quando la query precedente viene eseguita, produce il seguente output.
*** Table has been created.
*** Total elapsed time was 1 second.