diff --git a/km61/Dobra_Oleksandr/laboratory1.sql b/km61/Dobra_Oleksandr/laboratory1.sql index 5c9829b8..92be4389 100644 --- a/km61/Dobra_Oleksandr/laboratory1.sql +++ b/km61/Dobra_Oleksandr/laboratory1.sql @@ -1,2 +1,171 @@ --- LABORATORY WORK 1 --- BY Dobra_Oleksandr +/*--------------------------------------------------------------------------- +1.Створити схему даних з назвою – прізвище студента, у якій користувач може: +змінювати структуру таблиць. +4 бали + +---------------------------------------------------------------------------*/ +--Код відповідь: + +CREATE USER oDobra IDENTIFIED BY oDobra +DEFAULT TABLESPACE "USERS" +TEMPORARY TABLESPACE "TEMP"; + +ALTER USER oDobra QUOTA 100M ON USERS; + +Grant "CONNECT" TO oDobra ; + +Grant ALTER ANY TABLE TO oDobra ; + + + + + + + + + + +/*--------------------------------------------------------------------------- +2. Створити таблиці, у яких визначити поля та типи. Головні та зовнішні ключі +створювати окремо від таблиць використовуючи команди ALTER TABLE. +Книжка складається з сторінок, на яких є рядки тексту. +4 бали + +---------------------------------------------------------------------------*/ +--Код відповідь: +CREATE TABLE Book( + Book_Name VARCHAR2(30) NOT NULL +); +ALTER TABLE Book + ADD CONSTRAINT Book_TTT PRIMARY KEY (Book_Name); +/*-------------------------------------------------------*/ + +CREATE TABLE page( + page_num NUMBER(8,2) NOT NULL +); +ALTER TABLE page + ADD CONSTRAINT page_ttt PRIMARY KEY (page_num); + +/*-------------------------------------------------------*/ +CREATE TABLE Book_page( + Book_Name_ VARCHAR2(30) NOT NULL, + page_num NUMBER(8,2) NOT NULL +); + +ALTER TABLE Book_page + ADD CONSTRAINT book_page_ttt PRIMARY KEY (book_name_ttt,page_num_ttt); + +ALTER TABLE Book_page + ADD CONSTRAINT book_ttt FOREIGN KEY (book_name_ttt) REFERENCES Book (Book_Name); + +ALTER TABLE Book_page + ADD CONSTRAINT page_ttt FOREIGN KEY (page_num_ttt) REFERENCES page (page_num); + + + +/* --------------------------------------------------------------------------- +3. Надати додаткові права користувачеві (створеному у пункті № 1) для створення таблиць, +внесення даних у таблиці та виконання вибірок використовуючи команду ALTER/GRANT. +Згенерувати базу даних використовуючи код з теки OracleScript та виконати запити: + +---------------------------------------------------------------------------*/ +--Код відповідь: + + +Grant CREATE ANY TABLE TO oDobra ; +Grant ALTER ANY TABLE TO oDobra ; +Grant SELECT ANY TABLE TO oDobra ; + + + + + + +/*--------------------------------------------------------------------------- +3.a. +Як звуть покупця, що купив найдорожчий товар. +Виконати завдання в Алгебрі Кодда. +4 бали +---------------------------------------------------------------------------*/ + +--Код відповідь: + + + + + + + + + + + + + + +/*--------------------------------------------------------------------------- +3.b. +Яка країна, у якій живуть покупці має найкоротшу назву? +Виконати завдання в SQL. +4 бали + +---------------------------------------------------------------------------*/ + +--Код відповідь: + + + + + + + + + + + + + + + +/*--------------------------------------------------------------------------- +c. +Вивести країну та пошту покупця, як єдине поле client_name, для тих покупців, що мають замовлення, але воно порожнє (нема orderitems). +Виконати завдання в SQL. +4 бали + +---------------------------------------------------------------------------*/ +--Код відповідь: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/km61/Dobra_Oleksandr/laboratory2.sql b/km61/Dobra_Oleksandr/laboratory2.sql index 7be0d3ca..3c640df6 100644 --- a/km61/Dobra_Oleksandr/laboratory2.sql +++ b/km61/Dobra_Oleksandr/laboratory2.sql @@ -1,2 +1,29 @@ --- LABORATORY WORK 2 --- BY Dobra_Oleksandr +/*--------------------------------------------------------------------------- +1. Вивести ключ покупця та ключ продукту за умови, що постачальник купив більше 5 одиниць цього продукту. + +---------------------------------------------------------------------------*/ +--Код відповідь: + +SELECT * FROM ORDERS +INNER JOIN CUSTOMERS +ON ORDERITEMS.QUANTITY> 5; + + + + + + + + +/* --------------------------------------------------------------------------- +2. Вивести ключ постачальника на номери замовлень, що містять більше одного з його товарів. + + +---------------------------------------------------------------------------*/ +--Код відповідь: +SELECT * FROM VENDORS +INNER JOIN ORDER_NUM +ON ORDERITEMS.QUANTITY >1; + + +