Что такое представление (view) в SQL?

«Что такое представление (view) в SQL?» — вопрос из категории SQL и базы данных, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Представление (view) — это виртуальная таблица, результат запроса SELECT, сохранённый в базе данных под именем. Оно не хранит данные физически, а предоставляет на них «окно».

Основные цели использования:

  • Безопасность: Скрыть часть столбцов или строк исходной таблицы, предоставив пользователю доступ только к представлению.
  • Упрощение сложных запросов: Инкапсулировать многотабличные соединения (JOIN) и агрегации в простую для чтения сущность.
  • Абстракция: Изолировать приложение от изменений в структуре базовых таблиц.

Пример создания и использования:

-- Создание представления, показывающего только активных пользователей из Москвы
CREATE VIEW active_moscow_users AS
SELECT user_id, name, email
FROM users
WHERE city = 'Москва' AND is_active = TRUE;

-- Использование представления как обычной таблицы
SELECT * FROM active_moscow_users ORDER BY name;

Важно: В зависимости от СУБД, существуют материализованные представления (Materialized Views), которые физически хранят результат запроса и периодически обновляются, что повышает производительность чтения за счёт актуальности данных.