Что такое представление (view) и для чего оно применяется?
Представление (View) — виртуальная таблица, определяемая SQL-запросом. Представление не хранит данные самостоятельно: при каждом обращении к нему СУБД выполняет сохранённый SELECT-запрос и возвращает актуальный результат. Представления работают в запросах и DML-операторах так же, как обычные таблицы.
Аналогия из жизни: представление — это сохранённый фильтр в таблице Excel. Данные остаются в исходной таблице, но вы видите их через определённый «срез», и при изменении данных срез обновляется автоматически.
Для чего применяется
- Упрощение сложных запросов — один раз написали
SELECTсJOIN, потом обращаемся к представлению как к обычной таблице - Ограничение доступа к данным — пользователю даётся доступ к представлению, содержащему только допустимые столбцы или строки, а не к базовой таблице
- Абстракция от структуры БД — приложение работает с представлением, и при изменении схемы таблиц достаточно обновить представление
- Стандартизация вычислений — логика расчёта (например, полная стоимость заказа с налогом) описана в одном месте
Пример
CREATE VIEW active_employees AS
SELECT id, name, department, salary
FROM employees
WHERE status = 'active';
-- Использование
SELECT * FROM active_employees WHERE department = 'IT';
Ограничения
Не все представления поддерживают INSERT/UPDATE/DELETE. Обновляемое представление должно ссылаться на одну таблицу, не содержать агрегатных функций, DISTINCT, GROUP BY, UNION. Для обхода этого ограничения используются триггеры INSTEAD OF.
На собеседовании: ключевое — представление не хранит данных, это сохранённый запрос. Частая ошибка — забыть про ограничения на обновляемость представлений.