|
Программирование >> Построение запросов sql
из таблицы Request будут выбраны неисправности газового оборудования, представлен на рис. 4.6. все ремонтные заявки с кодом равным 1. Результат запроса
Рис. 4.6. Результат выполнения запроса к представлению FailureReq Вертикальное представление представляет собой вертикальное подмножество строк одиночной таблицы и предназначено для ограничения доступа к столбцам таблицы. Запрос в таком представлении выбирает из таблицы требуемые столбцы, а ограничение на выбор строк отсутствует. Например, если необходимо создать представление AbonentPhone, которое должно содержать ФИО абонента и его телефон, следует выполнить следующий запрос: CREATE VIEW Abonent Phone (Abon Fio, Abon Phone) AS SELECT Fio, Phone FROM Abonent;. В этом примере AbonFio и AbonPhone - имена столбцов представления. Если не указывать обозначение имен в скобках после имени представления, то столбцы представления получат соответственно имена Fio и Phone. Следующий запрос: SELECT * FROM Abonent Phone; даст результат, представленный на рис. 4.7.
Рис. 4.7. Результат выполнения запроса к представлению AbonentPhone Смешанное представление представляет собой подмножество строк и столбцов одиночной таблицы. Оно является представлением, разделяющим исходную таблицу как в горизонтальном, так и в вертикальном направлениях. Пусть необходимо создать представление NachislService, отображающее номера лицевых счетов абонентов и начисленные им суммы за услугу газоснабжения с кодом, равным 2. Для решения этой задачи следует выполнить следующий запрос: CREATE VIEW Nachisl Service AS SELECT AccountCD, GazServiceCD, NachislSum FROM NachislSumma WHERE GazServiceCD = 2;. Сгруппированное представление основано на запросе, содержащем предложение GROUP BY и, как следствие, использующем агрегатные функции. Оно выполняет ту же функцию, что и запросы с группировкой определенных столбцов. В них родственные строки данных объединяются в группы, и для каждой группы в таблице результатов запроса создается одна строка, содержащая итоговые данные по этой группе. С помощью сгруппированного представления запрос с группировкой превращается в виртуальную таблицу, к которой в дальнейшем можно обращаться. В отличие от горизонтальных и вертикальных представлений, каждой строке сгруппированного представления не соответствует какая-то одна строка исходной таблицы. Сгруппированное представление не является просто фильтром исходной таблицы. Оно, в силу использования агрегатных функций, отображает исходную таблицу в виде суммарной информации и требует от СУБД значительного объема вычислений. Например, если необходимо создать представление Abonent All Pay с полями AccountCD и All Pay, показывающее общую сумму оплат для каждого абонента, то следует выполнить следующий запрос: CREATE VIEW Abonent All Pay (AccountCD, All Pay) AS SELECT AccountCD, Sum (PaySum) FROM PaySumma GROUP BY AccountCD;. Результат выполнения следующего запроса: SELECT * FROM Abonent All Pay; представлен на рис. 4.8.
Соединенное представление - это подмножество строк и столбцов из нескольких таблиц. Задавая в определении представления, например, двух- или многотабличный запрос, можно создать виртуальную таблицу, данные в которую считываются соответственно из двух или трех различных таблиц. После создания такого представления к нему можно обращаться с помощью однотабличного запроса. Например, необходимо создать представление с именем AbonentExecutor, в котором будут содержаться ФИО абонентов и назначенных по их ремонтным заявкам исполнителей. Для решения данной задачи подойдет следующий запрос: CREATE VIEW Abonent Executor (Abonent Name, Executor Name) AS SELECT A. Fio, E. Fio FROM Abonent A, Executor E, Request R WHERE R. AccountCD = A.AccountCD AND R.ExecutorCD = E. ExecutorCD;. Результат выполнения следующего запроса: SELECT * FROM Abonent Executor; представлен на рис. 4.9.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |