Представление создается командой CREATE VIEW, после которой указывается имя представления, а затем следует запрос, формирующий тело представления.
Создание представлений рассматривается на примере БД, содержащей следующие таблицы:
Например, для создания представления о студентах, получивших стипендию в размере выше 70 рублей можно использовать следующую команду
AS SELECT *
WHERE STIP > 70;
В БД теперь существует представление с именем OTLSTUD, которое можно использовать также как любую таблицу. Это представление является горизонтальным, так как оно позволяет ограничить доступ пользователей к определенным строкам.
Преимущество представления по сравнению с запросами к БД заключается в том, что оно будет модифицировано автоматически всякий раз, когда таблица, лежащая в его основе изменяется. Например, если появится еще один студент со стипендией выше 30 т.р., он автоматически отобразиться в представлении.
Вертикальные представления позволяют ограничить доступ пользователей к нескольким столбцам таблицы, исключив некоторые поля. Например, для того, чтобы скрыть данные о стипендии, надо отобрать в таблицу все поля, исключая поле STIP.
Представление можно изменять командами модификации DML, но фактически, команды будут перенаправлены к базовой таблице. Например, выполнение команды
SET SNAME=”Степан”
WHERE NOM_ZACH= 200201;
аналогично выполнению той же команды для таблицы STUDENTS.
Однако команда модификации размера стипендии у того же студента будет отвергнута системой, т.к. поле STIP отсутствует в представлении. Кроме того, не все представления могут быть модифицированы.
В рассмотренном примере поля представлений имеют имена, полученные непосредственно из имен полей основной таблицы. Однако иногда возникает необходимость назвать столбцы новыми именами. Это, например, может потребоваться в случае, если столбцы являются вычисляемыми и поэтому не имеющими имен.
Имена, которые необходимо присвоить полям, записываются в круглых скобках после имени таблиц. Они могут не указываться, если совпадают с именами полей запрашиваемой таблицы.
Когда делается запрос к представлению, то на самом деле система обращается к базовым таблицам. Например, при выполнении команды