Вопрос 26: Представления


Представление — это виртуальная таблица, содержимое которой определяется запросом.

Преимущества:

  • Создает контролируемую (управляемую) среду, позволяет пользователям сосредоточиться на данных.
  • Скрывает сложность запросов к данным.
  • Обеспечивает безопасность, является объектом промежуточного слоя.
  • Организует данные сложных запросов, соединяющих несколько таблиц.
  • Производительность View зависит от сложности запроса, лежащего в его основе.

Создание представлений

Синтаксис

CREATE VIEW view_name [(column_list)]
    [WITH {ENCRYPTION | SCHEMABINDING | VIEW_METADATA}]
    AS select_statement
    [WITH CHECK OPTION]

Инструкция CREATE VIEW должна быть единственной инструкцией пакета. (Это означает, что эту инструкцию следует отделять от других инструкций группы посредством инструкции GO.)

Параметр view_name задает имя определяемого представления, а в параметре column_list указывается список имен, которые будут использоваться в качестве имен столбцов представления. Если этот необязательный параметр опущен, то используются имена столбцов таблиц, по которым создается представление. Параметр select_statement задает инструкция SELECT, которая извлекает строки и столбцы из таблиц (или других представлений). Параметр WITH ENCRYPTION задает шифрование инструкции SELECT, повышая таким образом уровень безопасности системы баз данных.

Предложение SCHEMABINDING привязывает представление к схеме таблицы, по которой оно создается. Когда это предложение указывается, имена объектов баз данных в инструкции SELECT должны состоять из двух частей, т.е. в виде schema.db_object, где schema - владелец, а db_object может быть таблицей, представлением или определяемой пользователем функцией.

Пример создания:

USE Northwind
GO
CREATE VIEW dbo.EmployeeView
AS
SELECT LastName, Firstname
FROM Employees

Изменение и удаление представлений

Для изменения определения представления в языке Transact-SQL применяется инструкция ALTER VIEW. Синтаксис этой инструкции аналогичен синтаксису инструкции CREATE VIEW, применяющейся для создания представления.

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

GO
ALTER VIEW view_WithoutBudget
    AS SELECT Number, ProjectName
    FROM Project
    WHERE Number >= 'p3';

При удалении представления инструкцией DROP VIEW все другие представления, основанные на удаленном, также удаляются, как показано в примере ниже:

DROP VIEW view_Consultant;

При удалении базовой таблицы представления, основанные на ней другие представления, не удаляются автоматически.

results matching ""

    No results matching ""