Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы и банки данных / Базы и банки данных (5 сем).doc
Скачиваний:
76
Добавлен:
01.05.2014
Размер:
705.54 Кб
Скачать

Задания

  • Написать выражение для запроса: «Получить города, в которых хранится более пяти красных деталей».

  • Написать выражение для запроса: «Получить города, в которых хранится не более пяти красных деталей» (!!!).

Операторы обновления

Операция присвоения дает возможность «запомнить» значение некоторых алгебраических выражений в базе данных и, таким образом, изменять состояние базы данных или, иначе говоря, обновлять базу данных. Так например, с помощью операции Union(объединение) можно вставить кортежи, аMinus(вычитание) – удалить кортежи. Однако присвоение – это несколько грубая операция, потому что она позволяет только полностью заменять значение отношения. на практике требуются более точные операции обновления. Ниже представлен синтаксис этих операций.

INSERT. Операторвставкиимеет следующий вид:

INSERT source INTO target;

Пример: INSERT (S WHERE CITY = ‘London’) INTO TEMP;

UPDATE. Операторобновленияимеет следующий вид:

UPDATEtargetсписок-присвоений, где список-присвоений имеет форму

Атрибут:=скалярное-выражение

Пример: UPDATEPWHERECOLOR=’RED’CITY:=’Paris’;

DELETE. Операторудаленияимеет следующий вид:

DELETEtarget, гдеtarget– реляционное выражение; все кортежи в результирующем отношении удаляются.

Пример: DELETE S WHERE STATUS <20;

Упражнения по запросам

Для выполнения упражнений используются следующие отношения:

ПоставщикиS(S# (номер поставщика),Sname(имя поставщика),Status,CITY(город))PRIMARYKEY(S#)

ДеталиP(P# (номер детали),Pname(название детали),Color(цвет детали),Weight,CITY)PRIMARYKEY(P#)

ПроектыJ(J#,JNAME(название проекта),CITY)PRIMARYKEY(J#)

ОтправкиSPJ(S#,P#,J#,Qty(количество))

PRIMARY KEY (S#, P#, J#) FOREIGN KEY (S#) REFERENCES S

FOREIGN KEY (P#) REFERENCES P

FOREIGN KEY (J#) REFERENCES J

  1. Получить полную информацию обо всех проектах.

  2. Получить полную информацию обо всех проектах в Лондоне.

  3. Получить номера поставщиков, которые обеспечивают проект J1.

  4. Получить все отправки, где количество находится в диапазоне от 300 до 750 включительно.

  5. Получить все сочетания «цвета деталей – города деталей».

  6. Получить все такие тройки «номера поставщиков – номера деталей – номера проектов», для которых выводимые поставщик, деталь и проект размещены в одном городе.

  7. Получить все такие тройки «номера поставщиков – номера деталей – номера проектов», для которых выводимые поставщик, деталь и проект не размещены в одном городе.

  8. Получить все такие тройки «номера поставщиков – номера деталей – номера проектов», для которых никакие из двух выводимых поставщиков, деталей и проектов не размещены в одном городе.

  9. Получить номера деталей, поставляемых поставщиком в Лондоне.

  10. Получить номера деталей, поставляемых поставщиком в Лондоне для проекта в Лондоне.

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

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

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

  14. Получить все такие пары номеров деталей, которые обе поставляются одновременно одним поставщиком.

  15. Получить общее число проектов, обеспечиваемых, поставщиком S1.

  16. Получить общее количество деталей Р1, поставляемых поставщиком S1.

  17. Для каждой детали, поставляемой для проекта, получить номер детали, номер проекта и соответствующее общее количество.

  18. Получить номера деталей, поставляемых для некоторого проекта со средним количеством больше 320.

  19. Получить имена проектов, обеспечиваемых поставщиком S1.

  20. Получить цвета деталей, поставляемых поставщиком S1.

  21. Получить номера деталей, поставляемых для какого-либо проекта в Лондоне.

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

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

  24. Получить номера поставщиков со статусом, меньшим чем у поставщика S1.

  25. Получить номера проектов, город которых стоит первым в алфавитном списке городов.

  26. Получить номера проектов, для которых среднее количество поставляемых деталей Р1 больше, чем наибольшее количество любых деталей, поставляемых для проекта J1.

  27. Получить номера поставщиков, поставляющих деталь Р1 для некоторого проекта в количестве, большем среднего количества деталей Р1 в поставках для этого проекта.

  28. Получить номера проектов, для которых не поставляются красные детали поставщиками из Лондона.

  29. Получить номера проектов, полностью обеспечиваемых для лондонских проектов.

  30. Получить номера поставщиков, поставляющих одну и ту же деталь для всех проектов.

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

  32. Получить все города, в которых расположен, по крайней мере, один поставщик, одна деталь или один проект.

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

  34. Получить пары «номер поставщика – номер детали», такие, что данный поставщик не поставляет данную деталь.

  35. Получить все пары номеров поставщиков, скажем SxиSy, такие, что оба эти поставщика поставляют в точности одно и то же множество деталей.