КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Создание представлений
Для создания представлений в SQL существует инструкция CREATE VIEW, синтаксическая диаграмма которой изображена на рисунке:
Команда CREATE VIEW состоит из слов CREATE VIEW, имени представления, которое нужно создать, ключевого слова AS и запроса. Представления не требуют, чтобы их вывод осуществлялся из одной базовой таблицы. Так как почти любой допустимый запрос SQL может быть использован в представлении, оно может выводить информацию из любого числа базовых таблиц или из других представлений. Представления могут также использовать и подзапросы, включая коррелированные подзапросы Преимущество использования представления, по сравнению с основной таблицей, в том, что представление будет модифицировано автоматически всякий раз, когда изменится одна или несколько таблиц, лежащих в его основе. Содержание представления не фиксировано и переназначается каждый раз, когда представление используется как операнд какой-либо команды SQL. Представления значительно расширяют возможности управления данными. Это превосходный способ дать публичный доступ к некоторой, но не всей, информации в одной или нескольких таблицах. Для иллюстрации вышесказанного создадим представление, отображающее студентов, названия специальностей и номера курсов, на которых они учатся, в удобном для просмотра виде:
CREATE VIEW full_stud_view AS SELECT g.spec, g.kurs, i.name FROM students AS s, groups AS g, stud_info AS i WHERE (s.group_id = g.id) and (s.id = i.id);
Данный запрос создаст виртуальную таблицу вида
Если в одной из исходных таблиц (“students”, “groups” или “stud_info”) произойдут какие-либо изменения (добавление, изменение или удаление строк), то эти изменения автоматически отобразятся и в данном представлении. После создания данного представления можно обращаться к нему в предложении SELECT, как к таблице, содержащей данные для выборки. Например, для извлечения имен всех студентов с 4-го курса специальности “AC” можно воспользоваться следующим запросом:
SELECT name FROM full_stud_view WHERE (spec = ‘AC’) AND (kurs = 4);
Таким образом можно упростить процесс выборки некоторых данных, создав для них представления. Ведь в данном случае используется однотабличная форма запроса на выборку вместо многотабличной с соединением и отпадает необходимость прописывать условия соединения таблиц, вследствие чего можно полностью сконцентрироваться на составлении предиката отбора необходимых данных.
|