Teradata - typy tabel
Teradata obsługuje następujące typy tabel do przechowywania danych tymczasowych.
- Tabela pochodna
- Volatile Table
- Globalna tabela tymczasowa
Tabela pochodna
Tabele pochodne są tworzone, używane i upuszczane w zapytaniu. Służą do przechowywania wyników pośrednich w zapytaniu.
Przykład
Poniższy przykład tworzy tabelę pochodną EmpSal z rekordami pracowników z wynagrodzeniem powyżej 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;
Po wykonaniu powyższego zapytania zwraca pracowników z wynagrodzeniem powyżej 75000.
*** Query completed. One row found. 3 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName NetPay
----------- ------------------------------ -----------
103 Peter 83000
Volatile Table
Tabele niestabilne są tworzone, używane i usuwane w ramach sesji użytkownika. Ich definicja nie jest przechowywana w słowniku danych. Przechowują dane pośrednie zapytania, które jest często używane. Poniżej znajduje się składnia.
Składnia
CREATE [SET|MULTISET] VOALTILE TABLE tablename
<table definitions>
<column definitions>
<index definitions>
ON COMMIT [DELETE|PRESERVE] ROWS
Przykład
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;
Kiedy powyższe zapytanie jest wykonywane, generuje następujące dane wyjściowe.
*** Table has been created.
*** Total elapsed time was 1 second.
Globalna tabela tymczasowa
Definicja tabeli Global Temporary jest przechowywana w słowniku danych i może być używana przez wielu użytkowników / sesje. Ale dane załadowane do globalnej tabeli tymczasowej są zachowywane tylko podczas sesji. Możesz zmaterializować do 2000 globalnych tabel tymczasowych na sesję. Poniżej znajduje się składnia.
Składnia
CREATE [SET|MULTISET] GLOBAL TEMPORARY TABLE tablename
<table definitions>
<column definitions>
<index definitions>
Przykład
CREATE SET GLOBAL TEMPORARY TABLE dept_stat (
dept_no INTEGER,
avg_salary INTEGER,
max_salary INTEGER,
min_salary INTEGER
)
PRIMARY INDEX(dept_no);
Kiedy powyższe zapytanie jest wykonywane, generuje następujące dane wyjściowe.
*** Table has been created.
*** Total elapsed time was 1 second.