first commit
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
#####################################################
|
||||
################ Завдання 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;
|
||||
Reference in New Issue
Block a user