Работа с таблицами
Что такое «временная таблица»? Для чего она используется?
Временная таблица хранит промежуточные данные. Область видимости и срок жизни зависят от СУБД. Ниже смешаны два синтаксиса: CREATE TEMPORARY TABLE применяется, например, в PostgreSQL, а #temp и ##temp относятся к SQL Server.
Основные виды:
-
Локальные временные таблицы:
-
Создаются с помощью
CREATE TEMPORARY TABLEилиCREATE TABLE #temp. -
Видны только в пределах текущей сессии.
-
Удаляются автоматически после завершения сессии или транзакции.
-
-
Глобальные временные таблицы:
-
Создаются с помощью
CREATE TABLE ##temp. -
Видны для всех сессий.
-
Удаляются только после завершения всех сессий, которые используют таблицу.
-
Использование:
-
Хранение промежуточных результатов:
- Используются для хранения промежуточных данных во время сложных запросов или манипуляций с данными.
-
Ускорение сложных операций:
- Ускоряют выполнение сложных операций, разбивая их на более простые шаги.
-
Обработка данных:
- Помогают в сортировке, фильтрации и агрегировании данных перед окончательной вставкой в основные таблицы.
Пример:
-- Создание локальной временной таблицы
CREATE TEMPORARY TABLE temp_users (
id INT,
name VARCHAR(100)
);
-- Вставка данных во временную таблицу
INSERT INTO temp_users (id, name) VALUES (1, 'Alice');
-- Использование временной таблицы
SELECT * FROM temp_users;
-- Локальная временная таблица будет автоматически удалена по завершении сессии
Временные таблицы полезны для временного хранения данных, облегчения сложных операций и улучшения производительности запросов.
Как создать индекс?
Индекс используется для ускорения поиска и сортировки данных в таблице.
Основные команды:
-
Создание обычного индекса:
CREATE INDEX index_name ON table_name(column_name); -
Создание уникального индекса:
CREATE UNIQUE INDEX index_name ON table_name(column_name);
Примеры:
-
Обычный индекс:
CREATE INDEX idx_user_name ON users(name); -
Уникальный индекс:
CREATE UNIQUE INDEX idx_user_email ON users(email);
Индексы помогают повысить производительность запросов, ускоряя операции поиска и сортировки.