- •1. Вступ
- •2. Коротка історія PostgreSql
- •3. Оновні концепції роботи з PostgreSql
- •3.1 Створення таблиць
- •3.1.1 Типи даних
- •3.2 Внесення даних у таблицю
- •3.3 Редагування таблиць
- •3.4 Обмеження
- •Immediate – всі або конкретне обмеження перевіряються наприкінці кожної команди.
- •3.5 Послідовності
- •3.6 Запити
- •3.7 Об'єднання таблиць (Join)
- •3.8 Агрегатні функції
- •3.9 Курсори sql
- •4. Основні елементи мови pLpgSql
- •4.1 Структура мови, функції користувача.
- •4.2 Розгалуження, цикли, масиви.
- •4.3 Курсори
- •5. Практична частина
- •Регіон: код регіону, назва регіону; Область: код регіону, код області, назва області;
- •5.1 Завдання 1
- •5.2 Завдання 2
- •5.3 Завдання 3
- •5.3 Завдання 3
- •5.3 Завдання 3
- •5.4 Завдання 4
- •5.4 Задача 4
- •5.4 Задача 7
- •5.4 Задача 9
- •6. Висновки
- •7. Список використаної літератури
5.2 Завдання 2
Підготувати і занести в таблиці контрольні дані
Розв'язок задачі
-- Вставляємо контрольні дані в таблицю ‘Регіони’
insert into region values(1, 'Передкарпатська нафтогазоносна область');
insert into region values(2, 'Днiпровсько-Донецька нафтогазоносна область');
insert into region values(3, 'Причорноморсько-Кримська газонафтоносна впадина');
-- Вставляємо контрольні дані в таблицю ‘області’
insert into oblast values(1,1,'Івано-Франківська');
insert into oblast values(2,2,'Дніпропетровська');
insert into oblast values(3,3,'Одесська');
insert into oblast values(1,4,'Львівська');
insert into oblast values(2,5,'Донецька');
insert into oblast values(3,6,'Миколаївська');
insert into oblast values(1,7,'Закарпатська');
insert into oblast values(2,8,'Харківська');
insert into oblast values(3,9,'Херсонська');
insert into oblast values(1,10,'Чернівецька');
insert into oblast values(2,11,'Запорізька');
-- Вставляємо контрольні дані в таблицю ‘бази’
insert into baza values(1,1,'Майдан НБ');
insert into baza values(2,7,'Чернiїв НБ');
insert into baza values(3,12,'Яворів НБ');
insert into baza values(4,11,'Есхар НБ');
insert into baza values(5,13,'Берізка НБ');
insert into baza values(6,5,'Проспект НБ');
insert into baza values(7,3,'Паливо НБ');
insert into baza values(8,4,' Хотин НБ');
insert into baza values(8,10,'Міжгір’я НБ');
insert into baza values(9,6,'Запоріжжя НБ');
insert into baza values(10,2,'Вільно НБ');
insert into baza values(11,8,'Микантил НБ');
insert into baza values(11,9,'Бурманськ НБ');
-- Вставляємо контрольні дані в таблицю ‘паливо’
insert into paluvo values(1,'01-10-2012',145,250,333);
insert into paluvo values(2,'02-10-2010',123,321,531);
insert into paluvo values(3,'04-10-2005',455,562,145);
insert into paluvo values(4,'07-11-2007',754,125,645);
insert into paluvo values(5,'18-11-2003',874,985,121);
insert into paluvo values(6,'17-10-2008',158,247,833);
insert into paluvo values(7,'13-10-2009',844,347,175);
insert into paluvo values(8,'17-10-2002',559,577,48);
insert into paluvo values(9,'09-11-2002',891,147,614);
insert into paluvo values(10,'28-11-2001',198,549,178);
insert into paluvo values(11,'04-10-2000',189,277,400);
insert into paluvo values(12,'02-10-2008',151,578,844);
insert into paluvo values(13,'03-10-2007',478,562,237);
Результати виконання завдання




5.3 Завдання 3
Виготовити запити, де відібрати дані для звітів.
Задача 3.1
Виготовити запити для перегляду вмісту таблиць зі всіма даними. Розв'язок задачі
SELECT
region.n_reg , oblast.n_obl, baza.n_b, paluvo.data, paluvo.kilk_m, paluvo.kilk_b, paluvo.kilk_d
FROM
paluvo INNER JOIN baza INNER JOIN oblast INNER JOIN region
ON region.kod_reg = oblast.kod_reg
ON oblast.kod_obl = baza.kod_obl
ON baza.kod_b = paluvo.kod_b;
Результати запиту

Задача 3.2
Побудувати запит про запаси ресурсів на базах протягом останніх 11 років. Додати назву цього родовища.
Розв'язок задачі
SELECT
baza.n_b,
paluvo.kilk_b,
paluvo.kilk_d,
paluvo.data
FROM baza INNER JOIN paluvo
ON baza.kod_b = paluvo.kod_b
WHERE extract(YEAR FROM current_date) < (extract(YEAR FROM paluvo.data) + 11)
GROUP BY n_b, kilk_b, kilk_d ,data ;
Результатизадачі 3.2

Задача 3.3
Виготовити запит з відомостями про родовища: назва регіону, назва області, назва нафтобази, кількість бензину, масла, дизпалива . Вказати, що база бідна, якщо її запаси бензину і масла менше 350 тонн, а дизпалива менше 400 тонн.
Розв'язок задачі
SELECT
region.n_reg, oblast.n_obl, baza.n_b,paluvo.kilk_m,
paluvo.kilk_b, paluvo.kilk_d,
CASE WHEN paluvo.kilk_m<550and paluvo.kilk_b<570 and paluvo.kilk_d<580 THEN 'бідна база' END AS text
FROM
paluvo,baza,oblast,region
WHERE
region.kod_reg = oblast.kod_reg AND
oblast.kod_obl=baza.kod_obl AND
baza.kod_b=paluvo.kod_b
Результати запиту:

