Teradata - Types de table
Teradata prend en charge les types de table suivants pour contenir des données temporaires.
- Table dérivée
- Table volatile
- Table temporaire globale
Table dérivée
Les tables dérivées sont créées, utilisées et supprimées dans une requête. Ceux-ci sont utilisés pour stocker les résultats intermédiaires dans une requête.
Exemple
L'exemple suivant crée une table dérivée EmpSal avec des enregistrements d'employés dont le salaire est supérieur à 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;
Lorsque la requête ci-dessus est exécutée, elle renvoie les employés dont le salaire est supérieur à 75 000.
*** Query completed. One row found. 3 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName NetPay
----------- ------------------------------ -----------
103 Peter 83000
Table volatile
Les tables volatiles sont créées, utilisées et supprimées dans une session utilisateur. Leur définition n'est pas stockée dans le dictionnaire de données. Ils contiennent des données intermédiaires de la requête fréquemment utilisées. Voici la syntaxe.
Syntaxe
CREATE [SET|MULTISET] VOALTILE TABLE tablename
<table definitions>
<column definitions>
<index definitions>
ON COMMIT [DELETE|PRESERVE] ROWS
Exemple
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;
Lorsque la requête ci-dessus est exécutée, elle produit la sortie suivante.
*** Table has been created.
*** Total elapsed time was 1 second.
Table temporaire globale
La définition de la table temporaire globale est stockée dans le dictionnaire de données et peut être utilisée par de nombreux utilisateurs / sessions. Mais les données chargées dans la table temporaire globale ne sont conservées que pendant la session. Vous pouvez matérialiser jusqu'à 2000 tables temporaires globales par session. Voici la syntaxe.
Syntaxe
CREATE [SET|MULTISET] GLOBAL TEMPORARY TABLE tablename
<table definitions>
<column definitions>
<index definitions>
Exemple
CREATE SET GLOBAL TEMPORARY TABLE dept_stat (
dept_no INTEGER,
avg_salary INTEGER,
max_salary INTEGER,
min_salary INTEGER
)
PRIMARY INDEX(dept_no);
Lorsque la requête ci-dessus est exécutée, elle produit la sortie suivante.
*** Table has been created.
*** Total elapsed time was 1 second.