Files
sql_advanced/lab2-6/task2.sql
T
Vitalii Litvinchuk 6deed0469a first commit
2026-05-04 23:15:09 +03:00

86 lines
3.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#####################################################
################ Завдання 2.1 ###################
1. На остнові таблиці Orders створіть представлення V_Orders з алгоритмом обробки TEMPTABLE,
яке б вивело увесь вміст таблиці.
CREATE ALGORITHM = TEMPTABLE VIEW V_Orders AS SELECT * FROM Orders;
SELECT * FROM V_Orders;
2. Переіменуйте представлення на VOrders
RENAME TABLE V_Orders TO VOrders;
SELECT * FROM VOrders;
3. Спробуйте використати переіменоване представлення для видалення запису з onum = 3001.
Поясніть результат.
DELETE FROM VOrders WHERE onum = 3001;
# Error: The target table VOrders of the DELETE is not updatable
# Видалення не відбулося, оскільки представлення було створено з алгоритмом TEMPTABLE.
#####################################################
################ Завдання 2.2 ###################
1. Створіть точну копію таблиці Salespeople, назвавши її Salespeople_1.
create table Salespeople_1 as select * from Salespeople;
2. На остнові таблиці Salespeople_1 створіть представлення V_Salespeople_1, яке б вивело увесь вміст
таблиці.
drop view if exists V_Salespeople_1;
CREATE VIEW V_Salespeople_1 AS SELECT * FROM Salespeople_1;
SELECT * FROM V_Salespeople_1;
3. Спробуйте використати представлення V_Salespeople_1 для додавання в якості продавця себе.
Перевірте наявність змін.
insert into
V_Salespeople_1 (SNUM, SNAME, CITY, COMM)
values (
1008,
'Vitalii',
'Zdolbuniv',
0.1
);
#####################################################
################ Завдання 2.3 ###################
1. На остнові таблиці Salespeople_1 створіть представлення V_Salespeople_2,
яке б вивело лише записи продавців, які проживають у місті London.
drop view if exists V_Salespeople_2;
create view V_Salespeople_2 as
select *
from Salespeople_1
where
CITY = 'London';
SELECT * FROM V_Salespeople_2;
2. Спробуйте використати представлення V_Salespeople_2 для зміни свого міста проживання на Texas.
Перевірте наявність змін.
update V_Salespeople_2 set CITY = 'Texas' where SNUM = 1008;
SELECT * FROM V_Salespeople_2;
3. Спробуйте самостійно знайти спосіб, який заборонить вносити зміни у записи,
які представленням не відображаються. Переконайтеся у працездатності такого обмеження
спробувавши видалити свій запис.
create view V_Salespeople_3 as
select *
from Salespeople_1
where
CITY = 'London'
with
check option;
update V_Salespeople_3 set CITY = 'Texas' where SNUM = 1001;
SELECT * FROM V_Salespeople_3;