Представления в Microsoft SQL Server
Представления или Views представляют виртуальные таблицы. Но в отличии от обычных стандартных таблиц в базе данных представления содержат запросы, которые динамически извлекают используемые данные.
Представления упрощают комплексные SQL-операции. Они защищают данные, так как представления могут дать доступ к части таблицы, а не ко всей таблице. Представления также позволяют возвращать отформатированные значения из таблиц в нужной и удобной форме.Для создания представления используется оператор CREATE VIEW , который имеет следующую форму:
CREATE VIEW название_представления [(столбец_1, столбец_2, ....)]
AS выражение_SELECT
Пример создания представления:
После инструкции CREATE VIEW указано название представления, затем ключевое слово AS и только после этого идет запрос, который будет содержать представление.
Теперь, для того чтобы получить данные о количестве товаров в категории, для этого нужно обратиться к этому представлению, например, как к обычной таблице.
При создании представлений следует учитывать, что представления, как и таблицы, должны иметь уникальные имена в рамках той же базы данных.
Представления могут иметь не более 1024 столбцов и могут обращаться не более чем к 256 таблицам.
Также можно создавать представления на основе других представлений. Такие представления еще называют вложенными (nested views). Однако уровень вложенности не может быть больще 32-х.
Команда SELECT , используемая в представлении, не может включать выражения INTO или ORDER BY (за исключением тех случаев, когда также применяется выражение TOP или OFFSET ). Если же необходима сортировка данных в представлении, то выражение ORDER BY применяется в команде SELECT, которая извлекает данные из представления.
Изменение представления
Для изменения представления используется команда ALTER VIEW . Эта команда имеет практически тот же самый синтаксис, что и CREATE VIEW : ALTER VIEW название_представления [(столбец_1, столбец_2, ....)]
AS выражение_SELECT
В данном случае оператор ALTER VIEW говорит SQL серверу, что необходимо изменить существующий объект, затем указано название представления. Чтобы сервер мог определить, какое именно представление необходимо изменить, после ключевого слова AS мы указали новое определение представления, т.е. измененный запрос SELECT.
Чтобы отделить изменение представления от SQL запроса на выборку, была написана команда GO.
Удаление представления
Для удаления представления вызывается команда DROP VIEW :
DROP VIEW
Обновляемые представления в Microsoft SQL Server
Представление позволяет изменять данные базовой таблицы, такие представления называются «Обновляемые представления» . Однако для них необходимо выполнение следующих условий:
- Любое изменение ( UPDATE, INSERT или DELETE ) должно касаться столбцов только одной базовой таблицы;
- Столбцы, данные которых необходимо изменить, должны напрямую ссылаться на столбцы базовой таблицы. Нельзя внести изменения в столбцы, которые были сформированы в представлении, например, агрегатной функцией или другими вычислениями.
Пример. Можно изменить данные, хранящиеся в таблице Goods, через представление, не обращаясь к этой таблице напрямую.
- команда SELECT при создании обновляемого представления не может содержать:
- TOP
- DISTINCT
- UNION
- JOIN
- агрегатные функции типа COUNT или MAX
- GROUP BY и HAVING
- подзапросы
- производные столбцы или столбцы, которые вычисляются на основании нескольких значений
- обращения одновременно к нескольким таблицам.
- https://learn.microsoft.com/ru-Ru/sql/relational-databases/views/create-views?view=azure-sqldw-latest