Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Экзаменационный билет № 21




ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 20

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 19

ЭКЗАМЕНАЦИОННЫЙ БИЛЕТ № 18

 

2. Коррелированные подзапросы. Коррелированный подзапрос с использованием в коррелированном и внешнем запросе одной и той же таблицы.

Коррелированный подзапрос с использованием в коррелированном и внешнем запросе одной и той же таблицы.

Выдать номера деталей, поставляемых более чем одним поставщиком.

Select distinct spx.номер_детали

from SP spx

where spx.номер_детали in

(Select spy.номер_детали

from SP spy

where spy.номер_поставщика<>spx.номер_поставщика)

 

Подзапросы. Фраза EXISTS. Квантор существования EXISTS.

Фраза EXISTS.

4.1. Квантор существования EXISTS.

В языке SQL предикат с квантором существования представляется выражением вида:

EXISTS (select * from...)

Данное выражение истинно тогда и только тогда, когда результат вычисления подзапроса, представленного с помощью select * from является непустым множеством, т.е. когда существует какая-либо запись в таблице, указанной во фразе from подзапроса, который удовлетворяет условию where этого подзапроса.

Выдать фамилии поставщиков, поставляющих деталь P2.

Select фамилия

from S

where exists

(Select *

from SP

where номер_поставщика = S.номер_поставщика

and номер_детали = 'P2')

Последовательность обработки запроса:

  • выбирается первая строка из S (номер_поставщика='S1');
  • поскольку условие номер_поставщика = 'S1' и номер_детали = 'P2' - истина, результат обработки запроса для первой строки - фамилия Смит.

Подзапросы. Фраза EXISTS. Запрос, реализующий квантор общности.

Запрос, реализующий квантор общности.

Квантор общности FORALL в SQL не поддерживается, однако он может быть выражен через квантор существования при помощи тождества

FORALL x(p)=NOT(EXISTS x(NOT(p))).

Выдать фамилии поставщиков, которые поставляют все детали.

Эквивалентная формулировка задачи может звучать так:

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

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

Select фамилия

from S

where not exists

(Select * from P

where not exists

(Select * from SP

where номер_поставщика=S.номер_поставщика

and номер_детали=P.номер_детали))

 

Использование функций в подзапросе.

Использование функций в подзапросе.

Выдать номера поставщиков со значением поля рейтинг меньшим, чем максимальный рейтинг в таблице S.

Select номер_поставщика from S

where рейтинг <

(Select max(рейтинг) from S)

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

Select номер_поставщика, рейтинг, город

from S sx

where рейтинг >=

(Select avg(рейтинг)

from S sy

where sy.город=sx.город)

 




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 333; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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