русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

CREATE VIEW STUDOCEN


Дата добавления: 2014-02-04; просмотров: 728; Нарушение авторских прав


GROUP BY STIP;

FROM STUDENTS

GROUP BY STIP;

FROM STUDENTS

FROM STIPCOUNT

FROM STUDENTS

CREATE VIEW STIPCOUNT(STIP,KOL)

FROM STUDENTS

FROM OTLSTUD

WHERE SNUM > 200201;

СУБД фактически осуществляет следующий запрос:

 

SELECT *

WHERE STIP >30 and SNUM > 200201;

 

Однако иногда возникают ситуации, когда появляются проблемы с представлением в результате комбинации из 2-х допустимых предикатов, которые не будут работать. В качестве иллюстрации создадим представление, которое содержит данные о количестве студентов, получающих ту или иную стипендию:

 

AS SELECT STIP,COUNT (*)

GROUP BY STIP;

 

Теперь обратимся к этому представлению, чтобы выяснить, есть ли такой размер стипендии, который получен двумя студентами:

 

SELECT *

WHERE COL =2;

Если запрос к представлению преобразовать к запросу к исходной таблице, то, скорее всего, будет получено

 

SELECT STIP,COUNT(*)

WHERE COUNT(*)=2

Последний запрос недопустим, так как агрегатные функции не могут использоваться в предикате. Возникает закономерное предположение о то, что СУБД в некоторых случаях не может правильно сформулировать запрос к базовым таблицам, а значит выполнить его. Все зависит от того, каким образом и по каким алгоритмам система интерпретирует пользовательские команды. Правильным способом формирования приведенного выше запроса будет такой:

SELECT STIP,COUNT(*)

HAVING COUNT(*)=2;

Однако SQL может не выполнить такого превращения. В этом случае следует проверить, справляется ли используемая СУБД с аналогичными запросам, и в соответствии с этим формировать запросы к представлениям.

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



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

 



<== предыдущая лекция | следующая лекция ==>
UPDATE STIPOFF | Модифицируемые и немодифицируемые представления


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.128 сек.