Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Квантор EXISTS




Подзапросы

Запросы на чтение данных

Язык запросов SQL

В следующих упражнения из [18] используется базы данных «Поставки» с таблицами (ключевые поля подчеркнуты):

S – поставщики (Номер_поставщика, Фамилия, состояние, Город);

Р – детали (Номер_детали, Название, цвет, Вес, Город);

SP – поставки деталей (Номер_поставщика, Номер_детали, Количество);

J – изделия (Номер_изделия, Название, Город);

SPJ поставка деталей для изделий – (Номер_поставщика, Номер_детали, Номер_изделия, Количество).

7. 1.1.1 Выдать названия изделий, для которых поставляются детали поставщиком S1.

7.1.1.2. Выдать цвета деталей, поставляемых поставщиком S1.

7.1.1.3. Выдать номера деталей, поставляемых для какого-либо изделия в Лондоне.

7.1.1.4. Выдать номера изделий, использующих по крайней мере одну деталь, поставляемую поставщиком S1.

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

7.1.1.6. Выдать номера поставщиков, имеющих состояние меньшее, чем у поставщика S1.

7.1.1.7. Выдать номера поставщиков, поставляющих детали для какого-либо изделия с деталью Р1 в количестве, большем, чем средний объем поставок детали Р1 для этого изделия.

7. 1.1.8. Повторите упражнение 7.1.1.3 и используйте в Вашем решении EXISTS.

7.1.1.9. Повторите упражнение 7.1.1.4 и используйте в Вашем решении EXISTS.

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

7.1.1.11. Выдать номера изделий, для которых детали полностью поставляет поставщик S1.

7. 1.1.12. Выдать номера деталей, поставляемых для всех изделий в Лондон.

7.1.1.13. Выдать номера поставщиков, поставляющих одну и ту же деталь для всех изделий.

7.1.1.14. Выдать номера изделий, для которых поставляются по крайней мере все детали, имеющиеся у поставщика S1.

Для следующих четырех упражнений преобразуйте приведенное предложение SELECT языка SQL обратно в его эквивалент на естественном языке.

7.1.1.15.

SELECT DISTINCT НОМЕР_ИЗДЕЛИЯ FROM SPJ SPJX
WHERE NOT EXISTS
(SELECT * FROM SPJ SPJY

WHERE SPJY.НОМЕР_ИЗДЕЛИЯ=SPJX. НОМЕР_ИЗДЕЛИЯ AND NOT EXISTS
(SELECT * FROM SPJ SPJZ
WHERE SPJZ.НОМЕР_ДЕТАЛИ = SPJY.НОМЕР_ДЕТАЛИ
AND SPJZ.НОМЕР_ПОСТАВЩИКА='S1'));

7.1.1.16.

DISTINCT НОМЕР_ИЗДЕЛИЯ FROM SPJ SPJX
WHERE NOT EXISTS
(SELECT * FROM SPJ SPJY WHERE EXISTS
(SELECT * FROM SPJ SPJX
WHERE SPJ А.НОМЕР_ПОСТАВЩИКА = 'S1'
AND SPJ А.НОМЕР_ДЕТАЛИ = SPJY.НОМЕР_ДЕТАЛИ)
AND NOT EXISTS
(SELECT * FROM SPJ SPJB
WHERE SPJB. НОМЕР_ПОСТАВЩИКА='S1'
AND SPJB. НОМЕР_ДETAЛИ=SPJY.НОМЕР_ДЕТАЛИ
AND SPJB.НОМЕР_ИЗДEЛИЯ=SPJX.НОМЕР_ИЗДЕЛИЯ));

7.1.1.17.

SELECT DISTINCT НОМЕР_ИЗДЕЛИЯ FROM SPJ SPJX
WHERE NOT EXISTS
(SELECT * FROM SPJ SPJY WHERE EXISTS
(SELECT * FROM SPJ SPJA
WHERE SPJA.НОМЕР_ДЕТАЛИ = SPJY.НОМЕР_ДЕТАЛИ
AND SPJA.НОМЕР_ИЗДЕЛИЯ =SPJX.НОМЕР_ИЗДЕЛИЯ)
AND NOT EXISTS
(SELECT * FROM SPJ SPJB
WHERE SPJB.НОМЕР_ПОСТАВЩИКА= 'S1'
AND SPJB.НОМЕР_ДЕТАЛИ = SPJY.НОМЕР_ДЕТАЛИ
AND SPJB.НОМЕР_ИЗДЕЛИЯ=SPJX.НОМЕР_ИЗДЕЛИЯ));

7.1.1.18.

SELECT DISTINCT НОМЕР_ИЗДЕЛИЯ FROM SPJ SPJX WHERE NOT EXISTS
(SELECT * FROM SPJ SPJY WHERE EXISTS
(SELECT * FROM SPJ SPJA
WHERE SPJA.НОМЕР_ПОСТАВЩИКА =PJY.НОМЕР_ПОСТАВЩИКА
AND SPJA. НОМЕР_ДЕТАЛИ IN
(SELECT НОМЕР_ДЕТАЛИ ROM P
WHERE ЦВЕТ = 'Красный') AND NOT EXISTS
(SELECT * FROM SPJ SPJB
WHERE SPJB.НОМЕР_ПОСТАВЩИКА =
SPJY.НОМЕР_ПОСТАВЩИКА
AND SPJB.НОМЕР_ИЗДЕЛИЯ =
SPJX.НОМЕР_ИЗДЕЛИЯ)));




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


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


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



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




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