first commit

This commit is contained in:
Vitalii Litvinchuk
2026-05-04 23:15:09 +03:00
commit 6deed0469a
49 changed files with 5366 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
#####################################################
###################### Task 1: ##################
1. Створіть SQL-функцію, яка виведе значення вартості (Cost) для угоди,
номер якої вкаже користувач при виклику фукнції.
2. Викличте функцію, використавши в якості вхідного параметра OrderID = 5.
USE Lucky_Shrub;
create function CalculateCost(order_id int)
returns int DETERMINISTIC
begin
declare v_cost int;
select Cost into v_cost from Orders where OrderID = order_id;
return v_cost;
end
set @OrderID = 8;
select CalculateCost (@OrderID);
+42
View File
@@ -0,0 +1,42 @@
#####################################################
###################### Task 2: ##################
1. Створіть збережену процедуру, яка довзволить вивести вартість замовлення із врахуванням знижки.
Як вхідний параметр процедура повинна використовувати значення ідентифікатора замовлення (OrderID).
Умови знижки:
якщо кількість товару у замовлення >= 20, тоді знижка становить 20%;
якщо кількість товару у замовленні < 20 і >= 10, тоді знижка становить 10%;
в іншому випадку знижка не передбачена.
2. Викличте створену процедуру зі значення ідентифікатора замовлення OrderID = 5.
#####################################################
drop procedure if exists CalculateDiscountedCost;
create procedure CalculateDiscountedCost(in order_id int)
begin
declare v_cost decimal(10,2);
declare v_discount decimal(5,2);
declare v_final_cost decimal(10,2);
declare v_quantity int;
select Cost, Quantity into v_cost, v_quantity
from Orders
where OrderID = order_id;
if v_quantity >= 20 then
set v_discount = 0.20;
elseif v_quantity >= 10 then
set v_discount = 0.10;
else
set v_discount = 0.00;
end if;
set v_final_cost = v_cost * (1 - v_discount);
select v_final_cost as FinalCost, v_cost as Cost, v_discount as Discount, v_quantity as Quantity, v_cost - v_cost * (1 - v_discount) as DiscountAmount;
end
set @OrderID = 8;
call CalculateDiscountedCost (@OrderID);
+285
View File
@@ -0,0 +1,285 @@
###################################################
Передумови
1. Створіть базу даних Lucky_Shrub (якщо не існує), та оберіть її.
CREATE DATABASE IF NOT EXISTS Lucky_Shrub;
USE Lucky_Shrub;
2.Створіть таблицю Orders (якщо не існує) та наповніть її відповідними даними (якщо потрібно).
CREATE TABLE Orders (
OrderID INT NOT NULL PRIMARY KEY,
ClientID VARCHAR(10),
ProductID VARCHAR(10),
Quantity INT,
Cost DECIMAL(6, 2),
Date DATE
);
-- Якщо база даних існує, порівняйте схему із запропонованою.
-- Для цього використаємо код наведений нижче:
SHOW CREATE TABLE Orders;
-- У разі потреби внесіть у схему необхідні зміни
---------------------------------------------------
Якщо Ваша таблиця вже містить певні дані,
щоб оновити їх й додати нові використайте запит
REPLACE INTO
Orders (
OrderID,
ClientID,
ProductID,
Quantity,
Cost,
Date
)
VALUES (
1,
"Cl1",
"P1",
10,
500,
"2020-09-01"
),
(
2,
"Cl2",
"P2",
5,
100,
"2020-09-05"
),
(
3,
"Cl3",
"P3",
20,
800,
"2020-09-03"
),
(
4,
"Cl4",
"P4",
15,
150,
"2020-09-07"
),
(
5,
"Cl3",
"P3",
10,
450,
"2020-09-08"
),
(
6,
"Cl2",
"P2",
5,
800,
"2020-09-09"
),
(
7,
"Cl1",
"P4",
22,
1200,
"2020-09-10"
),
(
8,
"Cl3",
"P1",
15,
150,
"2020-09-10"
),
(
9,
"Cl1",
"P1",
10,
500,
"2020-09-12"
),
(
10,
"Cl2",
"P2",
5,
100,
"2020-09-13"
),
(
11,
"Cl4",
"P5",
5,
100,
"2020-09-15"
),
(
12,
"Cl1",
"P1",
10,
500,
"2022-09-01"
),
(
13,
"Cl2",
"P2",
5,
100,
"2022-09-05"
),
(
14,
"Cl3",
"P3",
20,
800,
"2022-09-03"
),
(
15,
"Cl4",
"P4",
15,
150,
"2022-09-07"
),
(
16,
"Cl3",
"P3",
10,
450,
"2022-09-08"
),
(
17,
"Cl2",
"P2",
5,
800,
"2022-09-09"
),
(
18,
"Cl1",
"P4",
22,
1200,
"2022-09-10"
),
(
19,
"Cl3",
"P1",
15,
150,
"2022-09-10"
),
(
20,
"Cl1",
"P1",
10,
500,
"2022-09-12"
),
(
21,
"Cl2",
"P2",
5,
100,
"2022-09-13"
),
(
22,
"Cl2",
"P1",
10,
500,
"2021-09-01"
),
(
23,
"Cl2",
"P2",
5,
100,
"2021-09-05"
),
(
24,
"Cl3",
"P3",
20,
800,
"2021-09-03"
),
(
25,
"Cl4",
"P4",
15,
150,
"2021-09-07"
),
(
26,
"Cl1",
"P3",
10,
450,
"2021-09-08"
),
(
27,
"Cl2",
"P1",
20,
1000,
"2022-09-01"
),
(
28,
"Cl2",
"P2",
10,
200,
"2022-09-05"
),
(
29,
"Cl3",
"P3",
20,
800,
"2021-09-03"
),
(
30,
"Cl1",
"P1",
10,
500,
"2022-09-01"
);
#####################################################
Основні завдання:
Розробити визначену користувачем фукнцію
Розробити збережену процедуру
#####################################################