Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Немодифицируемое представление с данными из разных таблиц




CREATE VIEW view2 AS

SELECT Клиент.Фамилия, Клиент.Фирма,

Сделка.Количество

FROM Клиент INNER JOIN Сделка

ON Клиент.КодКлиента=Сделка.КодКлиента

 

Немодифицируемое представление с группировкой и итоговыми функциями.

CREATE VIEW view3(Тип, Общ_остаток) AS

SELECT Тип, Sum(Остаток)

FROM Товар

GROUP BY Тип

 

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

Модифицируемое представление с вычислениями

CREATE VIEW view4 (Код, Название,

Тип, Цена, Налог) AS

SELECT КодТовара, Название,

Тип, Цена, Цена*0.05 FROM Товар

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

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

 

Другая классификация представлений.

Горизонтальное представление. Этот вид представления широко применяется для уменьшения объема реальных таблиц в обработке и ограничения доступа пользователей к закрытой для них информации.

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

Пример

Таблица "Сотрудник" (EMPLOYEE) с полями "Табельный номер" (T_NUM), "ФИО" (NAME), "должность"(POSITION), "оклад"(SALARY), "надбавка"(PREMIUM), "отдел" (DEPARTMENT).

Для приложения, с которым работает начальник отдела продаж, будет создано представление

CREATE VIEW SAL_DEPT

AS

SELECT *

FROM EMPLOYEE

WHERE DEPARTMENT= "Отдел продаж"

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

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

CREATE VIEW TABEL

AS

SELECT T_NUM, NAME, POSITION, DEPARTMENT

FROM EMPLOYEE

 

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

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

CREATE VIEW RATE

DEPARTMENT, COUNT(*), SUM(SALARY), SUM(PREMIUM), MAX(SALARY), MIN(SALARY),

AVERAGE (SALARY), MAX(PREMIUM), MIN(PREMIUM), AVERAGE (PREMIUM)

AS

SELECT DEPARTMENT, COUNT(*), SUM(SALARY), SUM(PREMIUM), MAX(SALARY),

MIN(SALARY), AVERAGE (SALARY), MAX(PREMIUM), MIN(PREMIUM),

AVERAGE (PREMIUM)

FROM EMPLOYEE

GROUP BY DEPARTMENT

Объединенные представления. Часто представления базируются на многотабличных запросах.

Пример: (база данных "Библиотека" использовалась ранее) представление, которое содержит список читателей-должников с указанием книг, которые у них на руках, и указанных в базе сроков сдачи этих книг.

CREATE VIEW DEBTORS

ISBN,TITLE, NUM_READER, NAME, ADRES, HOME_PHON, WORK_PHON, DATA_OUT

AS

SELECT ISBN, TITLE, NUM_READER, NAME, ADRES, HOME_PHON, WORK_PHON, DATA_OUT

FROM BOOKS, EXEMPLAR, READERS

WHERE BOOKS.ISBN = EXEMPLAR.ISBN AND

EXEMPLAR.NUM_READER = READERS.NUM_READER AND

EXEMPLAR.PRESENT = FALSE AND

EXEMPLAR.DATA_OUT < GetDate()

 

Представление удаляется командой:

DROP VIEW имя_просмотра [,...n]

 

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...