Professional Documents
Culture Documents
ODB Lab5
ODB Lab5
КІ-18
Лабораторна робота № 5.
Тема: Складання запитів до бази даних. Складні та вкладені запити.
Мета: Закріплення практичних навичок по роботі з таблицями БД та
формуванню запитів.
Хід виконання.
1. У власній БД створити схему lab5
2. Додати до схеми (створити) та заповнити наступні таблиці:
provider
id_ prov name_prov statu city_ prov
s
P1 Сміт 20 Кривий Ріг
P2 Джонес 10 Київ
P3 Блек 30 Київ
P4 Кларк 20 Кривий Ріг
P5 Адамс 30 Одеса
wine
id_win name_wine color aging city_wine
e
W1 Ай – Серез Червон 2 Кривий Ріг
е
W2 Піно – Грі Рожеве 4 Київ
W3 Мускат Біле 4 Львів
W4 Мускат Червон 3 Кривий Ріг
е
W5 Херес Біле 2 Київ
W6 Бастардо червоне 5 Кривий Ріг
restaurant
id_ name_ rest city_ rest
rest
R1 Метрополь Київ
Горбань Ю. В. КІ-18
R2 Рудана Львів
R3 Єва Одеса
R4 Бурштин Одеса
R5 Ліра Кривий Ріг
R6 Киянка Ялта
R7 Чорний кіт Кривий Ріг
supply
id id_ prov id_wine id_ amount
rest
01 P1 W1 R1 200
02 P1 W1 R4 700
03 P2 W3 R1 400
04 P2 W3 R2 200
05 P2 W3 R3 200
06 P2 W3 R4 500
07 P2 W3 R5 600
08 P2 W3 R6 400
09 P2 W3 R7 800
10 P2 W5 R2 100
11 P3 W3 R1 200
12 P3 W4 R2 500
13 P4 W6 R3 300
14 P4 W6 R7 300
15 P5 W2 R2 200
16 P5 W2 R4 100
17 P5 W5 R5 500
18 P5 W5 R7 100
Горбань Ю. В. КІ-18
19 P5 W6 R2 200
20 P5 W1 R4 100
21 P5 W3 R4 200
22 P5 W4 R4 800
23 P5 W5 R4 400
24 P5 W6 R4 500
Створення таблиць:
Заповнення таблиць:
SELECT id_wine
FROM lab5.supply
Горбань Ю. В. КІ-18
WHERE id_rest IN(
SELECT id_rest
FROM lab5.restaurant
WHERE city_rest IN(
SELECT city_prov
FROM lab5.provider
)
)
GROUP BY id_wine
SELECT SUM(amount)
FROM lab5.supply
WHERE id_wine = 'W1' AND id_prov = 'P1'
SELECT name_rest
FROM lab5.restaurant
WHERE id_rest IN (
SELECT id_rest
FROM lab5.supply
WHERE id_rest IN(
SELECT id_rest
FROM (
Горбань Ю. В. КІ-18
SELECT id_prov, id_rest
FROM lab5.supply
GROUP BY id_prov, id_rest
ORDER BY id_rest
) prov_rest
GROUP BY id_rest
HAVING COUNT(id_rest) = 1
ORDER BY id_rest
)
AND id_prov = 'P1'
)