Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
work_3.doc
Скачиваний:
11
Добавлен:
09.11.2019
Размер:
215.04 Кб
Скачать
  1. Представления

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

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

CREATE [OR REPLACE] [TEMP | TEMPORARY] VIEW имя_представления [ (столбец [, ...] ) ] AS запрос

где запрос, следующий за AS и являющийся определением данного представления, не исполняется, а просто сохраняется в системном каталоге. Список имен столбцов должен быть обязательно определен лишь в тех случаях, когда хотя бы один из столбцов запроса не имеет имени (создается с помощью выражения, SQL-функции или константы) или два (или более) столбцов подзапроса имеют одно и то же имя. Если же список отсутствует, то представление наследует имена столбцов из подзапроса.

При использовании CREATE OR REPLACE, если представление с таким же именем уже существует в данной схеме, оно будет переопределено.

С помощью TEMP или TEMPORARY создаются временные представления. Если представление определяется на основе только временных таблиц, оно автоматически становится временным, независимо от того, указано ли TEMP/TEMPORARY при его создании.

Синтаксис инструкции удаления представления подобен синтаксису удаления базовых таблиц:

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

Преимущество использования представлений

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]