Как ответить
Views в SQL бывают двух типов: обычные (materialized views — это отдельная история, я про классическую реализацию). Первый — простые или виртуальные представления, они хранят только запрос, а при обращении выполняют его заново. Второй — индексированные или материализованные, они физически сохраняют результат запроса в виде таблицы.
На практике с обычными view сталкиваешься постоянно. Это сохранённый запрос с именем. При каждом SELECT from view БД пересчитывает данные. Плюсы — не нужно место на диске, всегда свежие данные, упрощают сложные запросы для коллег. Минусы — производительность, если запрос тяжёлый, каждый вызов будет его выполнять. Ещё некоторые виды запрещают DML-операции, особенно если запрос содержит объединения, GROUP BY или подзапросы. Точнее, через простую view можно вставлять или обновлять строки, но только если это одна таблица и нет агрегации.
Материализованные views — это уже таблица с данными, которую нужно обновлять. Они подходят для тяжёлых отчётов или сводок, которые не меняются каждую секунду. В PostgreSQL их нужно обновлять через команду REFRESH MATERIALIZED VIEW, и это блокирует чтение до полной перестройки (если указано CONCURRENTLY, то блокировка минимизируется, но нужен будет уникальный индекс). В Oracle можно задать автоматическое обновление с интервалом. В SQL Server аналог — это indexed views, они обновляются автоматически при изменениях базовых таблиц, но накладывают ограничения на запрос: нельзя использовать UNION, HAVING, агрегаты без группировки и многое другое.
Ещё есть recursive views для рекурсивных запросов, но это расширение стандарта, работает через WITH RECURSIVE. В коммерческих проектах их используют реже, обычно для работы с иерархическими данными (дерево категорий, оргструктура).
На собеседовании обычно спрашивают разницу между двумя основными типами и когда что применять.