You are on page 1of 13

Міністерство освіти і науки України

Тернопільський національний технічний університет імені


Івана Пулюя

Кафедра комп’ютерних наук

ЗВІТ
Про виконання лабораторної роботи №4
З дисципліни «Бази даних»
На тему: “ Маніпулювання даними реляційної БД засобами SQL.”

Виконав: студент групи CН-22

Перевірив:
Бондарчук І.О.

Тернопіль 2022
Тема: Маніпулювання даними реляційної БД засобами SQL.
Мета: Проілюструвати на прикладі готової бази даних роботу запитів
групи маніпулювання даними. Засвоїти основні елементи інтерфейсу
користувача програми SQL Server Management Studio для виконання SQL-
запитів.
Завдання на роботу
1) вибірка з сортуванням та умовою відбору по числовому полю;
2) вибірка із сортуванням та відбором записів по діапазону значень
числового поля;
3) вибірка із сортуванням з відбором записів за значеннями стрічкового поля
з використанням шаблонів (інструкція LIKE у фразі WHERE запиту на
вибірку);
4) вибірка із складеним сортуванням (за двома стовпцями) з відбором на
наявність порожніх/непорожніх значень;
5) вибірка унікальних значень поля;
6) вибірка даних з використанням обчислюваних полів та аліасів до них;
7) вибірка з групуванням, відбором груп та викликом агрегатної функції;
8) вибірка з внутрішнім з’єднання таблиць;
9) вибірка з зовнішнім з’єднанням таблиць;
10) вибірка з об’єднанням (перетином, різницею таблиць);
11) вибірка з використанням під запиту для обрахунку виразів;
12) вибірка з під запитом для відбору рядків;
13) оновлення значень в таблиці;
14) вставка рядків у таблицю з використанням під запиту;
15) витирання рядків з таблиці.
Виконання завдання
1) вибірка з сортуванням та умовою відбору по числовому полю;
Код SQL:
use library
select member_no, out_date
from loan
where title_no = 20
order by title_no desc;

На рисунку 1 зображено ідентифікатори всіх читачів та дата видачі, в


котрих знаходиться книга з ідентифікатором 20.

Рисунок 1 – Ідентифікатори всіх читачів та дата видачі, в котрих знаходиться


книга з ідентифікатором 20

2) вибірка із сортуванням та відбором записів по діапазону значень


числового поля;
Код SQL:
use library
select member_no, out_date, title_no
from loan
where title_no between 20 and 50
order by title_no desc;
На рисунку 2 зображено ідентифікатори всіх читачів та дати видачі, в
котрих знаходяться книги з ідентифікатором між 20 та 50.

Рисунок 2 – Ідентифікатори всіх читачів та дати видачі, в котрих знаходяться


книги з ідентифікатором між 20 та 50

3) вибірка із сортуванням з відбором записів за значеннями


стрічкового поля з використанням шаблонів (інструкція LIKE у фразі WHERE
запиту на вибірку);
Код SQL:
use library
select member_no, street, city, ZIP
from adult
where street LIKE 'Larch%';

На рисунку 3 зображено ідентифікатори читачів та їх адреси для тих, де в


назві вулиці міститься слово 'Larch'.
Рисунок 3 – Ідентифікатори читачів та їх адреси для тих, де в назві вулиці
міститься слово 'Larch'

4) вибірка із складеним сортуванням (за двома стовпцями) з відбором


на наявність порожніх/непорожніх значень;
Код SQL:
use library
select member_no, out_date, due_date
from loanhist
where fine_assessed > 0 and fine_paid is null
order by out_date asc, due_date desc;

На рисунку 4 зображено ідентифікатори читачів, дати видачі книги та


дату, повернення книги, котрим штраф нараховано, але котрі його не сплатили.

Рисунок 4 – Ідентифікатори читачів, дати видачі книги та дату, повернення


книги, котрим штраф нараховано, але котрі його не сплатили
5) вибірка унікальних значень поля;
Код SQL:
use library
select distinct city
from adult
order by city desc;

На рисунку 5 зображено міста, в яких проживають читачі бібліотеки.

Рисунок 5 – Міста, в яких проживають читачі бібліотеки

6) вибірка даних з використанням обчислюваних полів та аліасів до


них;
Код SQL:
use library
select member_no, copy_no, fine_assessed*2 as fine_double
from loanhist
where fine_assessed is not NULL
order by member_no desc;

На рисунку 6 зображено перерахований розмір нарахованого штрафу.


Рисунок 6 – Перерахований розмір нарахованого штрафу

7) вибірка з групуванням, відбором груп та викликом агрегатної


функції;
Код SQL:
use library
select member_no, sum(fine_paid) as fine
from loanhist
group by member_no
having sum(fine_paid) < 150
order by fine desc;

На рисунку 5 зображено ідентифікатори користувачів із штрафами


меншими за 150$.

Рисунок 7 – Ідентифікатори користувачів із штрафами меншими за 150$


8) вибірка з внутрішнім з’єднання таблиць;
Код SQL:
use library
select firstname, lastname, out_date, due_date
from loanhist l INNER JOIN member m ON l.member_no =
m.member_no
order by firstname asc, lastname asc;

На рисунку 8 зображено Внутрішнім з’єднання таблиць.

Рисунок 8 – Внутрішнім з’єднання таблиць

9) вибірка з зовнішнім з’єднанням таблиць;


Код SQL:
use library
select firstname, lastname, out_date, due_date, fine_paid
from loanhist l full outer join member m ON l.member_no
= m.member_no
where fine_paid is not null
order by firstname asc, lastname asc;

На рисунку 9 зображено зовнішнє з’єднання таблиць.


Рисунок 9 – Зовнішнє з’єднання таблиць

10) вибірка з об’єднанням (перетином, різницею таблиць);


Код SQL:
use library
select member_no
from loanhist
where fine_assessed is null
union select member_no
from member;

На рисунку 10 зображено об’єднання таблиць.

Рисунок 10 – Об’єднання таблиць


11) вибірка з використанням під запиту для обрахунку виразів;
Код SQL:
use library
select distinct member_no,fine_paid, fine_paid - (select
avg(fine_paid) from loanhist) as diff
from loanhist
where fine_paid is not null
order by diff desc;

На рисунку 11 зображено підзапит для обрахунку різниці.

Рисунок 11 – Підзапит для обрахунку різниці

12) вибірка з під запитом для відбору рядків;


Код SQL:
use library
select firstname, lastname
from member
where member_no in (select member_no from adult where
city = 'Baton Rouge');

На рисунку 12 зображено користувачів, що проживають на вулиці “Baton


Rouge”.
Рисунок 12 – Користувачі, що проживають на вулиці “Baton Rouge”

13) оновлення значень в таблиці;


Код SQL:
use library
alter table adult alter column city char(20);
update adult set city = 'Бостон' where city = 'Boston';

На рисунку 13 зображено поле Бостон до і після оновлення.

Рисунок 13 – Поле Бостон до і після оновлення


14) вставка рядків у таблицю з використанням під запиту;
Код SQL:
use library
insert into reservation (isbn, member_no)
values (4,7), (1,5), (3,2);

На рисунку 14 зображено додані записи в порожню таблицю.

Рисунок 14 – Записи до і після додавання в порожню таблицю

15) витирання рядків з таблиці.


Код SQL:
use library
delete from reservation where member_no = 2;

На рисунку 14 зображено записи таблиці до і після видалення.

Рисунок 15 – Записи таблиці до і після видалення


ВИСНОВОК
В даній лабораторній роботі було проілюстровано на прикладі готової
бази даних роботу запитів групи маніпулювання даними. Засвоєно основні
елементи інтерфейсу користувача програми SQL Server Management Studio для
виконання SQL-запитів.

You might also like