[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-sql-chto-takoe-predstavlenie-view-i-dlya-chego-ono-primenyaetsya":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":15,"progress":16,"seo":17},887,"chto-takoe-predstavlenie-view-i-dlya-chego-ono-primenyaetsya",25,"sql","SQL","🗃️","Что такое представление (view) и для чего оно применяется?","Представление (View) — виртуальная таблица, определяемая SQL-запросом. Представление не хранит данные самостоятельно: при каждом обращении к нему СУБД выполняет сохранённый `SELECT`-запрос и возвращает актуальный результат. Представления работают в запросах и DML-операторах так же, как обычные таблицы.\n\n> **Аналогия из жизни:** представление — это сохранённый фильтр в таблице Excel. Данные остаются в исходной таблице, но вы видите их через определённый «срез», и при изменении данных срез обновляется автоматически.\n\n### Для чего применяется\n\n- Упрощение сложных запросов — один раз написали `SELECT` с `JOIN`, потом обращаемся к представлению как к обычной таблице\n- Ограничение доступа к данным — пользователю даётся доступ к представлению, содержащему только допустимые столбцы или строки, а не к базовой таблице\n- Абстракция от структуры БД — приложение работает с представлением, и при изменении схемы таблиц достаточно обновить представление\n- Стандартизация вычислений — логика расчёта (например, полная стоимость заказа с налогом) описана в одном месте\n\n```sql\nCREATE VIEW active_employees AS\nSELECT id, name, department, salary\nFROM employees\nWHERE status = 'active';\n\n-- Использование\nSELECT * FROM active_employees WHERE department = 'IT';\n```\n\n### Ограничения\n\nНе все представления поддерживают `INSERT`\u002F`UPDATE`\u002F`DELETE`. Обновляемое представление должно ссылаться на одну таблицу, не содержать агрегатных функций, `DISTINCT`, `GROUP BY`, `UNION`. Для обхода этого ограничения используются триггеры `INSTEAD OF`.\n\n> **На собеседовании:** ключевое — представление не хранит данных, это сохранённый запрос. Частая ошибка — забыть про ограничения на обновляемость представлений.","","junior",[7],[],null,{"title":18,"description":19,"ogTitle":18,"ogDescription":20,"keywords":21,"schemaAnswer":22,"featuredSnippetReady":23},"Что такое представление (view) и для чего оно применяется? — Gymterview","Представление (View) — виртуальная таблица, определяемая SQL-запросом. Представление не хранит данные самостоятельно: при каждом обращении к нему СУБД выполняет","Представление (View) — виртуальная таблица, определяемая SQL-запросом. Представление не хранит данные самостоятельно: пр",[7,13],"Представление (View) — виртуальная таблица, определяемая SQL-запросом. Представление не хранит данные самостоятельно: при каждом обращении к нему СУБД выполняет сохранённый `SELECT`-запрос и возвращает актуальный результат. Представления работают в запросах и DML-операторах так же, как обычные табли",true]