Перейти к содержимому

Как создать представление в sql management studio

  • автор:

# CREATE VIEW

To create a view with an index, the view must be created using the WITH SCHEMABINDING keywords:

Any clustered or non-clustered indexes can be now be created:

There Are some limitations to indexed Views:

For more information about creating indexed Views you can read this MSDN article

# CREATE VIEW

Rows from views can be selected much like tables:

You may also create a view with a calculated column. We can modify the view above as follows by adding a calculated column:

This view adds an additional column that will appear when you SELECT rows from it. The values in this additional column will be dependent on the fields FirstName and LastName in the table Employee and will automatically update behind-the-scenes when those fields are updated.

# CREATE VIEW With Encryption

# CREATE VIEW With INNER JOIN

Views can use joins to select data from numerous sources like tables, table functions, or even other views. This example uses the FirstName and LastName columns from the Person table and the JobTitle column from the Employee table.

This view can now be used to see all corresponding rows for Managers in the database:

# Grouped VIEWs

A grouped VIEW is based on a query with a GROUP BY clause. Since each of the groups may have more than one row in the base from which it was built, these are necessarily read-only VIEWs. Such VIEWs usually have one or more aggregate functions and they are used for reporting purposes. They are also handy for working around weaknesses in SQL. Consider a VIEW that shows the largest sale in each state. The query is straightforward:

# UNION-ed VIEWs

VIEWs based on a UNION or UNION ALL operation are read-only because there is no single way to map a change onto just one row in one of the base tables. The UNION operator will remove duplicate rows from the results. Both the UNION and UNION ALL operators hide which table the rows came from. Such VIEWs must use a , because the columns in a UNION [ALL] have no names of their own. In theory, a UNION of two disjoint tables, neither of which has duplicate rows in itself should be updatable.

Представления и табличные объекты

Представления или Views представляют виртуальные таблицы. Но в отличии от обычных стандартных таблиц в базе данных представления содержат запросы, которые динамически извлекают используемые данные.

Представления дают нам ряд преимуществ. Они упрощают комплексные SQL-операции. Они защищают данные, так как представления могут дать доступ к части таблицы, а не ко всей таблице. Представления также позволяют возвращать отформатированные значения из таблиц в нужной и удобной форме.

Для создания представления используется команда CREATE VIEW , которая имеет следующую форму:

Например, пусть у нас есть три связанных таблицы:

Теперь добавим в базу данных, в которой содержатся данные таблицы, следующее представление:

То есть данное представление фактически будет возвращать сводные данные из трех таблиц. И после его создания мы сможем его увидеть в узле Views у выбранной базы данных в SQL Server Management Studio:

Views in SQL Server Management Studio

Теперь используем созданное выше представление для получения данных:

Представления Views в MS SQL Server

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

Представления могут иметь не более 1024 столбцов и могут обращаться не более чем к 256 таблицам.

Также можно создавать представления на основе других представлений. Такие представления еще называют вложенными (nested views). Однако уровень вложенности не может быть больще 32-х.

Команда SELECT , используемая в представлении, не может включать выражения INTO или ORDER BY (за исключением тех случаев, когда также применяется выражение TOP или OFFSET ). Если же необходима сортировка данных в представлении, то выражение ORDER BY применяется в команде SELECT, которая извлекает данные из представления.

Также при создании представления можно определить набор его столбцов:

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

Для изменения представления используется команда ALTER VIEW . Эта команда имеет практически тот же самый синтаксис, что и CREATE VIEW :

Например, изменим выше созданное представление OrdersProductsCustomers:

Удаление представления

Для удаления представления вызывается команда DROP VIEW :

Также стоит отметить, что при удалении таблиц также следует удалить и представления, которые используют эти таблицы.

Microsoft Sql Server 2005. Представления (Урок 7)

Microsoft Sql Server 2005. Представления (Урок 7)

Представления – это именованные запросы на выборку данных (инструкции SELECT на языке T-SQL), хранящиеся в базе данных. В запросах представления можно использовать, так же как и таблицы, независимо от сложности их инструкций SELECT. Подобно таблицам представления также состоят из полей и записей. Однако в отличие от таблиц они не содержат каких-либо данных (за исключением материализованных (индексированных) представлений).

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

Механизм представлений может использоваться по нескольким причинам.

  • Он предоставляет мощный и гибкий механизм защиты, позволяющий скрыть некоторые части базы данных от определенных пользователей. Пользователь не будет иметь сведений о существовании каких-либо атрибутов или кортежей, отсутствующих в доступных ему представлениях. (Горизонтальное и вертикальное разбиение таблиц).
  • Он позволяет организовать доступ пользователей к данным наиболее удобным для них образом, поэтому одни и те же данные в одно и то же время могут рассматриваться разными пользователями совершенно различными способами. (В частности переименование атрибутов).
  • Он позволяет упрощать сложные операции с базовыми отношениями. Например, если представление будет определено на основе соединения двух отношений, то пользователь сможет выполнять над ним простые унарные операции выборки и проекции, которые будут автоматически преобразованы средствами СУБД в эквивалентные операции с выполнением соединения базовых отношений. Одной из важнейших причин использования представлений является стремление к упрощению многотабличных запросов. После определения представления с соединением нескольких таблиц можно будет использовать простейшие однотабличные запросы к этому представлению вместо сложных запросов с выполнением того же самого многотабличного соединения.

Все эти примеры демонстрируют определенную степень логической независимости от данных, достигаемую за счет использования представлений. Однако на самом деле представления позволяют добиться и более важного типа логической независимости от данных, связанной с защитой пользователей от реорганизаций концептуальной схемы. Например, если в отношение будет добавлен новый атрибут, то пользователи не будут даже подозревать о его существовании, пока определения их представлений не включают этот атрибут. Если существующее отношение реорганизовано или разбито на части, то использующее его представление может быть переопределено так, чтобы пользователи могли продолжать работать с данными в прежнем формате.

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

В утилите SQL Server Management Studio представления можно создавать, редактировать, выполнять и вставлять в другие запросы. Поскольку представление является ничем иным, как сохраненной инструкцией SELECT, его создание начинается с проектирования этой инструкции. Инструкция SELECT, если она является корректной, может быть вырезана и вставлена в представление практически из любого инструмента. В утилите Management Studio представления перечислены в собственном узле в каждой базе данных.

Команда «Создать представление» в контекстном меню позволит запустить конструктор запросов в режиме создания представлений.

Конструктор запросов утилиты Management Studio способен одновременно отображать множество панелей, выбранных на панели инструментов .

  • Панель диаграммы (Область схемы). В запросе может участвовать множество таблиц и представлений. Для связывания их отношениями с целью формирования предложения FROM инструкции SELECT можно использовать это графическое представление.
  • Панель сетки (Область условий). На этой панели перечисляются отображаемые, фильтруемые и сортируемые столбцы.
  • Панель SQL. На этой панели можно в текстовом виде увидеть и отредактировать формируемую инструкцию SELECT.
  • Панель результатов. Когда запрос выполняется с помощью действия «Выполнить код SQL» , на этой панели отображаются его результаты. Если результаты запроса остаются нетронутыми долгое время, Management Studio запрашивает у пользователя разрешение закрыть подключение к серверу.

Фактический код SQL отображается и редактируется в панели SQL кода. Столбцы в представление можно добавлять в панелях диаграммы, сетки и SQL кода. Функция добавления таблиц доступна в контекстном меню, а также на панели инструментов. Здесь можно добавлять таблицы, другие представления, синонимы и табличные функции.

Таблицы и другие представления могут быть добавлены посредством перетаскивания их на панель диаграммы из окна «Обозреватель объектов» или с помощью команды «Добавить таблицу» на панели инструментов или в контекстном меню.

Функция добавления производных таблиц способна добавить в предложение FROM представления в качестве источника данных подзапрос. Код SQL этого подзапроса можно ввести вручную на панели SQL. Кнопка «Проверить синтаксис SQL» позволяет проверить синтаксис введенных инструкций SQL. В то же время она не проверяет имена таблиц, столбцов и представлений в инструкции SELECT.

Кнопка «Сохранить» панели инструментов запускает сценарий фактического создания представления в базе данных. Следует отметить, что для сохранения инструкция SELECT должна быть свободна от ошибок.

После создания представления его можно редактировать в Management Studio, выделяя название и выбирая в контекстном меню команду «Проект».

Для тестирования инструкции SELECT представления в конструкторе запросов щелкните на кнопке «Выполнить код SQL» или нажмите клавишу .

Контекстное меню представления также содержит команды управления его полнотекстовой индексацией и его переименования. Свойства приложения содержат расширенные параметры и разрешения системы безопасности. Для удаления представления из базы данных достаточно выделить его, выбрать в контекстном меню команду «Удалить» или нажать одноименную клавишу.

Создание представлений с помощью кода SQL

Представлениями можно управлять в редакторе запросов, выполняя сценарии SQL, которые используют команды языка DDL: CREATE, ALTER и DROP. Основной синтаксис создания представления следующий:

Например, чтобы создать представление v_Customer, возвращающее список клиентов с указанием города проживания, программным путем, в окне запросов должна быть выполнена следующая команда.

CREATE VIEW [dbo]. [v_Customer]

SELECT dbo.Customer.IdCust, dbo.Customer.FName, dbo.Customer.LName, dbo.City.CityName

FROM dbo.Customer INNER JOIN

dbo.City ON dbo.Customer.IdCity = dbo.City.IdCity

Попытка создать представление, которое уже существует, вызовет ошибку. Когда представление создано, инструкцию SELECT можно с легкостью отредактировать с помощью команды ALTER:

Если изменение представления предполагает и изменение прав доступа на него, предпочтительнее удалить его и создать заново, поскольку удаление представления также приводит и к удалению разрешений доступа, установленных ранее.

Чтобы удалить представление из базы данных, используйте команду DROP:

DROP VIEW имя_представления

Предложение ORDER BY и представления

Представления служат источником данных для других запросов и не поддерживают сортировку внутри себя. Например, следующий код извлекает данные из представления v_Customer и упорядочивает их по полям LName и FName. Предложение ORDER BY не является частью представления v_Customer, а применяется к нему с помощью вызова инструкции SQL:

SELECT IdCust, FName, LName, CityName

ORDER BY LName, FName

Выполнение представлений

Представление не может быть выполнено само по себе. Инструкция SELECT, на основе которой создано представление, может быть выполнена, однако в этой форме, с технической стороны, инструкция SQL не является представлением. Представление может быть полезно только как источник данных в запросе.

Именно поэтому контекстное меню «Открыть представление» утилиты Management Studio автоматически генерирует простой запрос, извлекая из представления все столбцы. Представление отображает только результаты. Однако включение других панелей конструктора запросов позволяет увидеть и сам запрос, извлеченный из представления.

Панель SQL отобразит представление в предложении FROM инструкции SELECT. Именно в такой форме на представление ссылаются пользователи:

Задание для самостоятельной работы: Создайте представление возвращающее список заказов с указанием имени клиента и количества товаров в каждом заказе. Таким образом, результат должен включать следующие атрибуты: IdOrd, OrdDate, IdCust, FName, LName, Количество видов товаров в заказе.

Лабораторная работа №5 «создание представлений»

Цель работы: Создание сложных запросов. Создание триггеров.

Постановка задачи

Создать 5 представлений (views);

Преобразовать представления в хранимые процедуры.

Методические указания

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

Представление (view) ‑ это виртуальная таблица, определяемая запросом, содержащим оператор SELECT. Эта виртуальная таблица состоит из данных одной или нескольких реальных таблиц, а для пользователей представление выглядит, как реальная таблица. С представлением можно работать, как с обычной таблицей. К представлению можно применять операции SELECT, INSERT, UPDATE и DELETE. На самом деле представление хранится просто как заранее определенный оператор SQL. При доступе к представлению оптимизатор запросов SQL Server объединяет текущий выполняемый оператор SQL с запросом, который был использован для определения данного представления.

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

Представление полезно использовать для обеспечения безопасности данных, для упрощения презентации данных и для логической презентации данных. Их можно также использовать для слияния секционированных (partitioned) данных.

Представление можно создовать двумя способами:

С помощью Microsoft SQL Server Management Studio;

C помощью кода на T-SQL.

Создание представления с помощью Microsoft SQL Server Management Studio

Для пример будем использовать БД Northwind.

В окне Object Explorer раскройте папку Databases (Базы данных) на котором находится база данных Northwind. Найдите папку View (представление). Щелкните правой клавишей по View (представление) в появившемся контекстном меню выберите команду New View (Новое представление) (рисунок 5.1).

Рисунок 5.1 ‑ Пункт меню “Новое представление”

При создании представления система спрашивает, какие таблицы и созданные ранее представления будут использоваться при создании представления. (Рисунок 5.2)

Рисунок 5.2 – Выбор нужных таблиц

Созданное представление. (Рисунок 5.3)

Панель сетка Панель sql Панель результатов Панель схемы

Рисунок 5.3 – Окно созданного представления

Окно представление состоит из следующих четырех панелей:

Панель схемы (Diagram panel). Показывает данные таблицы, которые используются для создания представления. В этой панели можно выбирать колонки. В этой панели отображаются таблицы и созданные ранее представления, которые участвуют в представлении.

Панель сетка (Grid panel). Показывает колонки, выбранные из таблицы или базовых таблиц. В этой панели можно выбирать колонки (Column) таблицы, псевдоним колонки (Alias), таблицы (Table), отображать или нет данные (Output), тип сортировки (Sort Type), сортировать или нет (Sort Order), фильтры (Filter).

Панель SQL (SQL panel). Показывает оператор SQL, используемый для определения данного представления. SQL Server генерирует этот оператор SQL, когда вы перетаскиваете элементы панели схемы и выбираете колонки в панели сетке.

Панель результатов (Results panel). Показывает строки, считанные из представления. Эта информация позволяет вам понять, как выглядят данные.

Помимо этих четырех панелей есть кнопка группировки на панели инструментов . После нажатия на нее в панели сетка (Grid panel) появиться новая колонка Group By (Группировка).

Создадим представление выводящее работников дата рождения которых позднее 1930 года. Вывести фамилии работников и их дата рождения.

Добавим в представление нужные таблицы, а именно таблицу работники (Employees);

Выберем, что хотим вывести на экран;

Установим псевдонимы для колонок;

Отсортируем данные по фамилии (LastName);

Создадим фильтр по полю день рождения (BirthDate) > ’01.01.1930’.

Результат работы представлен на рисунке 5.4.

Рисунок 5.4 – Готовое представление

В Панель SQL видим сформированный sql-код. Содержание типичное для подобного запроса. Есть несколько моментов:

Строка TOP (100) PERCENT говорит, что все данные будут представлены.

Помимо указания таблицы указывается также схема данных.

Поле день рождения (BirthDate) имеет тип данных DataTime (т.е. сразу указывается дата и время в одном поле) и американский стиль представления даты (ГГГГ-ММ-ДД). Мы же к этому полю обратились указав фильтр > ’01.01.1930’ без преобразования. Все преобразования связанные с изменением типа и представления взял на себя SQL Server. Поэтому видим в строке в условия также код конвертации. (BirthDate > CONVERT(DATETIME, ‘1930-01-01 00:00:00’, 102))

Можем использовать не одну таблицу, а сразу две и более, также можно использовать уже ранее созданное и сохраненное представление.

Создание представления с помощью кода на T-SQL

Синтаксис оператора CREATE VIEW:

CREATE VIEW имя представления [(колонка, колонка. )]

[WITH ENCRYPTION]

ваш оператор SELECT

[WITH CHECK OPTION]

Создавая представление, можно активизировать два средства, которые изменяют поведение представления. Для активизирования этих средств нужно включить в оператор T-SQL ключевые слова WITH ENCRYPTION и/или WITH CHECK OPTION.

Ключевое слово WITH ENCRYPTION указывает, что определение представления (оператор SELECT, определяющий представление) должно шифроваться.

Ключевое слово WITH CHECK OPTION указывает, что операции модифицирования данных, применяемые к представлению, должны отвечать критериям, содержащимся в операторе SELECT.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *