Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
R_2-10.doc
Скачиваний:
5
Добавлен:
13.11.2019
Размер:
799.74 Кб
Скачать

9.3.2. Використання структурованої мови запитів (sql)

Усі вправи в цьому розділі ґрунтуються на моделі даних, яка визначається так:

DOMAIN

S#

CHARACTER (5)

DOMAIN

SNAME

CHARACTER (20)

DOMAIN

STATUS

NUMERIC (3)

DOMAIN

CITY

CHARACTER (15)

DOMAIN

P#

CHARACTER (5)

DOMAIN

PNAME

CHARACTER (20)

DOMAIN

COLOR

CHARACTER (6)

DOMAIN

WEIGHT

NUMERIC (4)

DOMAIN

J#

CHARACTER (5)

DOMAIN

JNAME

CHARACTER (20)

DOMAIN

QTY

NUMERIC (5)

RELATION S (S#, SNAME, STATUS, CITY) KEY (S#)

RELATION P (P#, PNAME, COLOR, WEIGHT, CITY) KEY (P#)

REATIONS j (j#, jname, city) key (j#)

RELATION SPJ (S#, P#, J#, QTY) KEY (S#, P#, J#)

Припускається, що в цих відношеннях є невідомий користувачеві порядок. Суть кортежу відношення SPJ така: заданий постачальник (S#) поставляє задану деталь (P#) для заданого проекту (J#) в заданій кількості. Приклади деяких значень даних наведені нижче у таблицях. Самостійне розв’язання цих вправ дасть можливість зрозуміти, як правильно будувати запити мовою SQL. Вправи розташовані в порядку зростання складності. Всі виконувати не обов’язково, але розв’язувати потрібно доти, доки не стане зрозумілим механізм побудови запитів мовою SQL.

S

S#

SNAME

STATUS

CITY

S1

Smith

20

London

S2

Jones

10

Paris

S3

Blake

30

Paris

S4

Clark

20

London

S5

Adams

30

Athens

P

P#

PNAME

COLOR

WEIGHT

P1

Nut

Red

12

P2

Bolt

Green

17

P3

Screw

Blue

17

P4

Screw

Red

14

P5

Cam

Blue

12

P6

Cog

Red

19

J

J#

JNAME

CITY

J1

Sorter

Paris

J2

Panch

Rome

J3

Reader

Athens

J4

Console

Athens

J5

Collator

London

J6

Terminal

Oslo

J7

Tape

London

SPJ

S#

P#

J#

QTY

S1

P1

J1

200

S1

P1

J4

700

S2

P3

J1

400

S2

P3

J2

200

S2

P3

J3

200

S2

P3

J4

500

S2

P3

J5

600

S2

P3

J6

400

S2

P3

J7

800

S2

P5

J2

100

S3

P3

J1

200

S3

P4

J2

500

S4

P6

J3

300

S4

P6

J7

300

S5

P2

J2

200

S5

P2

J4

100

S5

P5

J5

500

S5

P5

J7

100

S5

P6

J2

200

S5

P1

J4

1000

S5

P3

J4

1200

S5

P4

J4

800

S5

P5

J4

400

S5

P6

J4

500

Вправа 1. Одержати повні відомості про всі проекти.

Вправа 2. Одержати повні відомості про всі проекти у Лондоні.

Вправа 3. Одержати номер деталі, для якої немає іншої деталі, що має менше значення ваги.

Вправа 4. Одержати значення S# для постачальників, які виконують поставки для проекту J1.

Вправа 5. Одержати значення S# для постачальників, які постачають для проекту J1 деталь P1.

Вправа 6. Одержати назви проектів (JNAME), для яких виконує поставки постачальник S1.

Вправа 7. Одержати назви кольорів (COLOR) для деталей, які постачає постачальник S1.

Вправа 8. Одержати номери постачальників (S#), які постачають деталі для проектів J1 i J2.

Вправа 9. Одержати значення S# для постачальників, які постачають для проекту J1 червону (RED) деталь.

Вправа 10. Одержати значення P# для деталей, які постачаються для будь-якого проекту в Лондоні.

Вправа 11. Одержати значення S# для постачальників, які постачають для проектів у Лондоні та Парижі червону (RED) деталь.

Вправа 12. Одержати значення P# для деталей, що постачаються для будь-якого проекту постачальником, який перебуває у цьому ж місті.

Вправа 13. Одержати значення P# для деталей, що постачаються для будь-якого проекту в Лондоні постачальниками, які перебувають у Лондоні.

Вправа 14. Одержати значення J# для проектів, що постачаються щонайменше одним постачальником, який перебуває не в цьому самому місті.

Вправа 15. Одержати значення J# для проектів, для яких не постачається жодної червоної деталі постачальником з Лондона.

Вправа 16. Одержати значення S# для постачальників, які постачають щонайменше одну деталь, що надходить хоча б від одного постачальника, який постачає хоча б одну червону деталь.

Вправа 17. Одержати значення J# для проектів, що використовують щонайменше одну деталь, яку можна одержати від постачальника S1.

Вправа 18. Одержати всі пари значень міст (CITY) таких, що постачальник у першому місті постачає проект у другому місті.

Вправа 19. Одержати всі триплети (CITY, P#, CITY) таких, що постачальник у першому місті постачає певну деталь для проекту в другому місті.

Вправа 20. Повторити вправу 19, але не робити вибірки триплетів, у яких два значення CITY збігаються.

Вправа 21. Одержати значення S# для постачальників, які постачають одну й ту саму деталь для всіх проектів.

Вправа 22. Одержати значення J# для проектів, які постачаються повністю постачальником S1.

Вправа 23. Одержати значення номерів тих деталей (P#), які постачаються для всіх проектів у Лондоні.

Вправа 24. Одержати значення J# для проектів, що використовують лише деталі, які постачаються постачальником S1.

Вправа 25. Одержати значення J# для проектів, що використовують лише ті деталі, що надходять від постачальника S1.

Вправа 26. Одержати значення J# для проектів, що постачаються постачальником S1 усіма деталями, які S1 постачає.

Вправа 27. Одержати значення J# для проектів, що одержують щонайменше кілька деталей від постачальника S1.

Вправа 28. Одержати значення J# для проектів, що постачаються всіма постачальниками червоної деталі.

Вправа 29. Змінити назву проекту J6 на «VIDEO».

Вправа 30. Змінити колір усіх червоних деталей на оранжевий.

Вправа 31. Зробити всі необхідні зміни для випадку, коли певна кількість деталей P1, що постачаються для проекту J1 постачальником S1, має тепер постачатися постачальником S2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]