Teradata - типы таблиц
Teradata поддерживает следующие типы таблиц для хранения временных данных.
- Производная таблица
- Неустойчивый стол
- Глобальная временная таблица
Производная таблица
Производные таблицы создаются, используются и удаляются в запросе. Они используются для хранения промежуточных результатов в запросе.
пример
В следующем примере создается производная таблица EmpSal с записями сотрудников с зарплатой более 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;
Когда вышеуказанный запрос выполняется, он возвращает сотрудников с зарплатой выше 75000.
*** Query completed. One row found. 3 columns returned.
*** Total elapsed time was 1 second.
EmployeeNo FirstName NetPay
----------- ------------------------------ -----------
103 Peter 83000
Неустойчивый стол
Изменяемые таблицы создаются, используются и удаляются в рамках сеанса пользователя. Их определение не хранится в словаре данных. Они содержат промежуточные данные часто используемого запроса. Ниже приводится синтаксис.
Синтаксис
CREATE [SET|MULTISET] VOALTILE TABLE tablename
<table definitions>
<column definitions>
<index definitions>
ON COMMIT [DELETE|PRESERVE] ROWS
пример
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;
Когда вышеуказанный запрос выполняется, он дает следующий результат.
*** Table has been created.
*** Total elapsed time was 1 second.
Глобальная временная таблица
Определение глобальной временной таблицы хранится в словаре данных и может использоваться многими пользователями / сеансами. Но данные, загруженные в глобальную временную таблицу, сохраняются только во время сеанса. Вы можете материализовать до 2000 глобальных временных таблиц за сеанс. Ниже приводится синтаксис.
Синтаксис
CREATE [SET|MULTISET] GLOBAL TEMPORARY TABLE tablename
<table definitions>
<column definitions>
<index definitions>
пример
CREATE SET GLOBAL TEMPORARY TABLE dept_stat (
dept_no INTEGER,
avg_salary INTEGER,
max_salary INTEGER,
min_salary INTEGER
)
PRIMARY INDEX(dept_no);
Когда вышеуказанный запрос выполняется, он дает следующий результат.
*** Table has been created.
*** Total elapsed time was 1 second.