Как открыть представление в sql
Отображает конструктор представлений, давая возможность создать представление SQL
CREATE SQL VIEW [ViewName ] [REMOTE] [CONNECTION ConnectionName [SHARE] | CONNECTION DataSourceName] [AS SQLSELECTStatement]
Параметры:
ViewName
Задает имя представления, которое предстоит создать.
REMOTE
Указывает, что создается удаленное представление, использующее удаленные таблицы. Если опустить REMOTE, можно создать представление с помощью локальных таблиц.
CONNECTION ConnectionName [SHARE]
Задает именованное соединение, которое следует установить после открытия представления. Если указано предложение SHARE, Visual FoxPro задействует совместно используемое соединение, если таковое есть в наличии. Если же доступных совместно используемых соединений нет, то после открытия представления будет создано уникальное соединение, которым не смогут пользоваться другие представления.
CONNECTION DataSourceName
Задает уже существующий источник данных, с которым устанавливается соединение.
AS SQLSELECTStatement
Задает определение представления. В качестве SQLSELECT Statement должен использоваться допустимый оператор SQL SELECT, который не следует заключать в кавычки. Если описывается локальное представление, можно задавать представления и таблицы баз данных, отличных от текущей, предваряя имя представления или таблицы именем базы данных с восклицательным знаком (!). Например, приведенная ниже команда создает представление SQL с именем mysqlview, которое выбирает все поля таблицы orders, входящей в базу данных customer:
CREATE SQL VIEW mysqlview AS SELECT * FROM customer!orders
Подробнее об операторах SQL SELECT см. тему SELECT — SQL.
Вы можете ограничить область действия представления, не создавая отдельного представления для каждого подмножества записей: для этого нужно создать параметризованное представление. В параметризованном представлении используется предложение WHERE, которое ограничивает множество загружаемых записей только нужными записями, используя значение, передаваемое в качестве параметра.
Например, вы можете создать представление SQL, которое позволит загружать записи, относящиеся к любой конкретной стране; для этого достаточно будет при использовании представления задать название страны.
Предоставляемый параметр вычисляется как выражение Visual FoxPro. Если вычисление провести не удается, Visual FoxPro предлагает ввести значение параметра. Например, если таблица customer из базы данных Testdata находится на удаленном сервере, то следующий пример создаст удаленное параметризованное представление, ограниченное только клиентами из тех стран, названия которых соответствуют значению, предложенному для параметра ?cCountry:
OPEN DATABASE testdata CREATE SQL VIEW customer_remote_view CONNECTION remote_01 ; AS SELECT * FROM customer WHERE customer.country = ?cCountry
Совет:
Если параметр является выражением, поставьте его в скобки. В этом случае все выражение целиком будет вычисляться в составе параметра.
Подробнее о параметризованных представлениях см. главу 8 «Создание многотабличных представлений» Руководства разработчика.
Комментарии:
Прежде чем вы сможете создать представление SQL, необходимо открыть базу данных в монопольном режиме. Используйте команду OPEN DATABASE с ключевым словом EXCLUSIVE для открытия существующей базы данных в монопольном режиме или команду CREATE DATABASE для создания новой базы данных.
* В следующем примере открывается база данных testdata. Команда * CREATE SQL VIEW используется для создания локального представления * SQL с именем myview; оно создается на основе конструкции SELECT - SQL, * отбирающей записи из таблицы customer. Отображается конструктор * представлений, в котором вы можете модифицировать данное * представление SQL. После того закрытия конструктора представлений * представление SQL будет уничтожено. CLOSE DATABASES OPEN DATABASE (SYS(2004) + 'samples\data\testdata') CREATE SQL VIEW myview AS SELECT * FROM customer MODIFY VIEW myview DELETE VIEW myview
Представления и табличные объекты
Представления или Views представляют виртуальные таблицы. Но в отличии от обычных стандартных таблиц в базе данных представления содержат запросы, которые динамически извлекают используемые данные.
Представления дают нам ряд преимуществ. Они упрощают комплексные SQL-операции. Они защищают данные, так как представления могут дать доступ к части таблицы, а не ко всей таблице. Представления также позволяют возвращать отформатированные значения из таблиц в нужной и удобной форме.
Для создания представления используется команда CREATE VIEW , которая имеет следующую форму:
CREATE VIEW название_представления [(столбец_1, столбец_2, . )] AS выражение_SELECT
Например, пусть у нас есть три связанных таблицы:
CREATE TABLE Products ( Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, Manufacturer NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL ); CREATE TABLE Customers ( Id INT IDENTITY PRIMARY KEY, FirstName NVARCHAR(30) NOT NULL ); CREATE TABLE Orders ( Id INT IDENTITY PRIMARY KEY, ProductId INT NOT NULL REFERENCES Products(Id) ON DELETE CASCADE, CustomerId INT NOT NULL REFERENCES Customers(Id) ON DELETE CASCADE, CreatedAt DATE NOT NULL, ProductCount INT DEFAULT 1, Price MONEY NOT NULL );
Теперь добавим в базу данных, в которой содержатся данные таблицы, следующее представление:
CREATE VIEW OrdersProductsCustomers AS SELECT Orders.CreatedAt AS OrderDate, Customers.FirstName AS Customer, Products.ProductName As Product FROM Orders INNER JOIN Products ON Orders.ProductId = Products.Id INNER JOIN Customers ON Orders.CustomerId = Customers.Id
То есть данное представление фактически будет возвращать сводные данные из трех таблиц. И после его создания мы сможем его увидеть в узле Views у выбранной базы данных в SQL Server Management Studio:
Теперь используем созданное выше представление для получения данных:
SELECT * FROM OrdersProductsCustomers

При создании представлений следует учитывать, что представления, как и таблицы, должны иметь уникальные имена в рамках той же базы данных.
Представления могут иметь не более 1024 столбцов и могут обращаться не более чем к 256 таблицам.
Также можно создавать представления на основе других представлений. Такие представления еще называют вложенными (nested views). Однако уровень вложенности не может быть больще 32-х.
Команда SELECT , используемая в представлении, не может включать выражения INTO или ORDER BY (за исключением тех случаев, когда также применяется выражение TOP или OFFSET ). Если же необходима сортировка данных в представлении, то выражение ORDER BY применяется в команде SELECT, которая извлекает данные из представления.
Также при создании представления можно определить набор его столбцов:
CREATE VIEW OrdersProductsCustomers2 (OrderDate, Customer,Product) AS SELECT Orders.CreatedAt, Customers.FirstName, Products.ProductName FROM Orders INNER JOIN Products ON Orders.ProductId = Products.Id INNER JOIN Customers ON Orders.CustomerId = Customers.Id
Изменение представления
Для изменения представления используется команда ALTER VIEW . Эта команда имеет практически тот же самый синтаксис, что и CREATE VIEW :
ALTER VIEW название_представления [(столбец_1, столбец_2, . )] AS выражение_SELECT
Например, изменим выше созданное представление OrdersProductsCustomers:
ALTER VIEW OrdersProductsCustomers AS SELECT Orders.CreatedAt AS OrderDate, Customers.FirstName AS Customer, Products.ProductName AS Product, Products.Manufacturer AS Manufacturer FROM Orders INNER JOIN Products ON Orders.ProductId = Products.Id INNER JOIN Customers ON Orders.CustomerId = Customers.Id
Удаление представления
Для удаления представления вызывается команда DROP VIEW :
DROP VIEW OrdersProductsCustomers
Также стоит отметить, что при удалении таблиц также следует удалить и представления, которые используют эти таблицы.
Получение сведений о представлении
Вы можете получить сведения об определении или свойствах представления в SQL Server с помощью SQL Server Management Studio или Transact-SQL. Возможность просмотреть определение представления может понадобиться, чтобы понять, как его данные извлекаются из исходных таблиц, или чтобы увидеть данные, определенные представлением.
Если имя объекта, на который ссылается представление, было изменено, необходимо изменить представление так, чтобы в его тексте использовалось новое имя. Следовательно, прежде чем переименовывать объект, следует отобразить зависимости объекта, чтобы определить, повлияет ли предполагаемое изменение на какие-либо представления.
В этом разделе
- Перед началом: Безопасность
- Получение сведений о представлении с помощью следующих средств:Среда SQL Server Management StudioTransact-SQL
Перед началом
Безопасность
Разрешения
Для использования sp_helptext для получения определения представления требуется членство в роли public . Для использования sys.sql_expression_dependencies для поиска всех зависимостей в представлении требуется разрешение VIEW DEFINITION в базе данных и разрешение SELECT в sys.sql_expression_dependencies для базы данных. Такие определения системных объектов, как полученные в SELECT OBJECT_DEFINITION, видимы для всех.
Использование среды SQL Server Management Studio
Получение свойств представления с помощью обозревателя объектов
- В обозревателе объектов нажмите на значок плюса рядом с базой данных, содержащей представление, свойства которого необходимо просмотреть, а затем нажмите значок плюса, чтобы развернуть папку Представления.
- Щелкните правой кнопкой представление, свойства которого необходимо просмотреть, и выберите пункт Свойства. В диалоговом окне Свойства представления отображаются следующие свойства: База данных
Имя базы данных, содержащей это представление. Сервер
Имя текущего экземпляра сервера. Пользователь
Имя пользователя этого соединения. Дата создания
Отображает дату создания представления. Наименование
Имя текущего представления. Схема
Схема, которой принадлежит представление. Системный объект
Указывает, является ли представление системным объектом. Возможные значения: True и False. Значения NULL по стандарту ANSI
Указывает, был ли объект создан с параметром ANSI NULL. Зашифрована
Указывает, зашифровано ли представление. Возможные значения: True и False. Заключенный в кавычки идентификатор
Показывает, был ли объект создан с параметром «заключенный в кавычки идентификатор». Привязка к схеме
Указывает, является ли представление привязанным к схеме. Возможные значения: True и False. Дополнительные сведения о представлениях, связанных с схемой, см. в разделе SCHEMABINDING элемента CREATE VIEW (Transact-SQL).
Получение свойств представления с помощью конструктора представлений
- В обозревателе объектовразверните базу данных, содержащую представление, свойства которого необходимо просмотреть, а затем разверните папку Представления .
- Щелкните правой кнопкой мыши представление, свойства которого необходимо просмотреть, и выберите пункт Конструктор.
- Правой кнопкой мыши щелкните пустое пространство в области диаграмм и выберите Свойства. На панели Свойства отображаются следующие свойства. (Имя)
Имя текущего представления. Имя базы данных
Имя базы данных, содержащей это представление. Описание
Краткое описание текущего представления. Схема
Схема, которой принадлежит представление. Имя сервера
Имя текущего экземпляра сервера. Привязка к схеме
Предотвращает такие изменения пользователями базовых объектов, задействованных в представлении, в результате которых определение представления становится недействительным. Детерминированное
Указывает, может ли тип данных для выбранного столбца быть точно определен Различные значения
Указывает, что запрос будет отфильтровывать повторения в представлении. Этот параметр полезен при использовании только некоторых столбцов из таблицы, притом что эти столбцы могут содержать повторяющиеся значения, или если обработка соединения двух или более таблиц приводит к появлению повторяющихся строк в результирующем наборе. Выбор этого параметра эквивалентен вставке ключевого слова DISTINCT в инструкцию на панели SQL. Расширение GROUP BY
Указывает, что для представлений доступны дополнительные параметры, основанные на агрегатных запросах. Выводить все столбцы
Указывает, возвращаются ли в выбранном представлении все столбцы. Этот параметр задается во время создания представления. Комментарий SQL
Показывает описание инструкций SQL. Чтобы просмотреть описание целиком или изменить его, выберите описание, а затем нажмите на меню с многоточием (…) справа от свойства. Комментарии могут содержать, например, сведения о том, кто использует это представление и когда оно используется. Спецификация TOP
Разворачивается для отображения свойств Первые, Выражение, Проценти Со связями . (Верх)
Указывает, что представление будет иметь предложение TOP, возвращающее только первые n строк или первые n процентов строк из результирующего набора. По умолчанию представление возвращает первые 10 строк из результирующего набора. Это поле позволяет изменить число возвращаемых строк или указать другой процент. Выражение
Указывает, какой процент (если для параметра Процент выбрано значение Да) или какое количество записей (если для параметра Процент выбрано значение Нет) возвращает представление. Процент
Указывает, что запрос будет включать предложение TOP , возвращающее только первые n процентов строк из результирующего набора. Со связями
Указывает, что представление включает предложение WITH TIES . WITH TIES полезно, если представление включает предложения ORDER BY и TOP , основанные на процентах. Если этот параметр установлен и пороговое значение процента приходится на середину набора строк с одинаковыми значениями в предложении ORDER BY , то данное представление будет расширено и будет включать все такие строки. Спецификация Update
Разворачивается для отображения свойств Правила обновления через представление и Параметр проверки . (Обновление с использованием правил представления.)
Указывает, что все обновления и вставки в представлении будут преобразованы с помощью Microsoft Data Access Components (MDAC) в инструкции SQL, которые ссылаются на представление, а не в инструкции SQL, которые ссылаются непосредственно на базовые таблицы представления. В некоторых случаях компоненты MDAC представляют операции обновления и вставки представления в виде операций обновления и вставки в базовых таблицах представления. Выбор Обновление с использованием правил представленияпозволяет гарантировать создание MDAC операций обновления и вставки для самого представления. Параметр проверки
Указывает, что при открытии этого представления и изменении панели Результаты источник данных проверяет соответствие добавленных или измененных данных предложению WHERE определения представления. Если изменение не соответствует предложению WHERE, отобразится сообщение об ошибке с дополнительными сведениями.
Получение зависимостей представления
- В обозревателе объектовразверните базу данных, содержащую представление, свойства которого необходимо просмотреть, а затем разверните папку Представления .
- Щелкните правой кнопкой мыши представление, свойства которого необходимо просмотреть, и выберите пункт Просмотреть зависимости.
- Выберите Объекты, зависящие от [имя_представления] для отображения объектов, которые ссылаются на представление.
- Для отображения объектов, на которые ссылается представление, выберите Объекты, от которых зависит [имя_представления] .
Использование Transact-SQL
Получение определения и свойств представления
- В обозревателе объектов подключитесь к экземпляру ядра СУБД.
- На стандартной панели выберите пункт Создать запрос.
- Скопируйте один из следующих примеров и вставьте его в окне запроса, а затем нажмите Выполнить.
USE AdventureWorks2022; GO SELECT definition, uses_ansi_nulls, uses_quoted_identifier, is_schema_bound FROM sys.sql_modules WHERE object_id = OBJECT_ID('HumanResources.vEmployee'); GO
USE AdventureWorks2022; GO SELECT OBJECT_DEFINITION (OBJECT_ID('HumanResources.vEmployee')) AS ObjectDefinition; GO
EXEC sp_helptext 'HumanResources.vEmployee';
Azure Synapse Analytics не поддерживает системную хранимую процедуру sp_helptext . Вместо нее используйте представление каталога объектов sys.sql_modules .
Получение зависимостей представления
- В обозревателе объектов подключитесь к экземпляру ядра СУБД.
- На стандартной панели выберите пункт Создать запрос.
- Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить.
USE AdventureWorks2022; GO SELECT OBJECT_NAME(referencing_id) AS referencing_entity_name, o.type_desc AS referencing_desciption, COALESCE(COL_NAME(referencing_id, referencing_minor_id), '(n/a)') AS referencing_minor_id, referencing_class_desc, referenced_class_desc, referenced_server_name, referenced_database_name, referenced_schema_name, referenced_entity_name, COALESCE(COL_NAME(referenced_id, referenced_minor_id), '(n/a)') AS referenced_column_name, is_caller_dependent, is_ambiguous FROM sys.sql_expression_dependencies AS sed INNER JOIN sys.objects AS o ON sed.referencing_id = o.object_id WHERE referencing_id = OBJECT_ID(N'Production.vProductAndDescription'); GO
Представления
Представление — это виртуальная таблица, содержимое которой определяется запросом. Как и таблица, представление состоит из ряда именованных столбцов и строк данных. Пока представление не будет проиндексировано, оно не существует в базе данных как хранимая совокупность значений. Строки и столбцы данных извлекаются из таблиц, указанных в определяющем представление запросе и динамически создаваемых при обращениях к представлению.
Представление выполняет функцию фильтра базовых таблиц, на которые оно ссылается. Определяющий представление запрос может быть инициирован в одной или нескольких таблицах или в других представлениях текущей или других баз данных. Кроме того, для определения представлений с данными из нескольких разнородных источников можно использовать распределенные запросы. Это полезно, например, если нужно объединить структурированные подобным образом данные, относящиеся к разным серверам, каждый из которых хранит данные конкретного отдела организации.
Представления обычно используются для направления, упрощения и настройки восприятия каждым пользователем информации базы данных. Представления могут использоваться как механизмы безопасности, давая возможность пользователям обращаться к данным через представления, но не предоставляя им разрешений на непосредственный доступ к базовым таблицам, лежащим в основе представлений. Представления могут использоваться для обеспечения интерфейса обратной совместимости, моделирующего таблицу, которая существует, но схема которой изменилась. Представления также можно использовать при копировании данных в SQL Server и из нее для повышения производительности и секционирования данных.
Типы представлений
Помимо стандартной роли базовых пользовательских представлений SQL Server предоставляет следующие типы представлений, которые служат специальным целям в базе данных.
Индексированные представления
Индексированным называется материализованное представление. Это означает, что определение представления вычисляется, а результирующие данные хранятся точно так же, как и таблица. Индексировать представление можно, создав для него уникальный кластеризованный индекс. Индексированные представления могут существенно повысить производительность некоторых типов запросов. Индексированные представления эффективнее всего использовать в запросах, группирующих множество строк. Они не очень хорошо подходят для часто обновляющихся базовых наборов данных.
Секционированные представления
Секционированным называется представление, соединяющее горизонтально секционированные данные набора таблиц-элементов, находящихся на одном или нескольких серверах. При этом данные выглядят так, как будто находятся в одной таблице. Представление, которое объединяет таблицы-члены в том же экземпляре SQL Server, является локальным секционированием.
Системные представления
Системные представления предоставляют доступ к метаданным каталога. Системные представления можно использовать для возврата сведений об экземпляре SQL Server или объектах, определенных в экземпляре. Например, можно запросить sys.databases представление каталога, чтобы получить сведения о пользовательских базах данных, доступных в экземпляре. Дополнительные сведения см. в разделе «Системные представления» (Transact-SQL).
Распространенные задачи представления
В следующей таблице приведены ссылки на общие задачи, связанные с созданием или изменением представления.
| Задачи, связанные с представлениями | Тема |
|---|---|
| Описывает, как создать представление. | Создание представлений |
| Описывает, как создать индексированное представление. | Создание индексированных представлений |
| Описывает, как изменить определение представления. | Изменение представлений |
| Описывает, как изменить данные через представление. | Изменение данных через представление |
| Описывает, как удалить представление. | Удаление представлений |
| Описывает, как получить сведения о представлении, например его определение. | Получение сведений о представлении |
| Описывает, как переименовать представление. | Переименование представлений |
Связанный контент
- Создание представлений для столбцов XML
- CREATE VIEW (Transact-SQL)
- GRANT, предоставление разрешений на объект (Transact-SQL)
- Безопасность на уровне строк
