From 0654c9e8be826772a3415be94b231e418235d74a Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Sun, 18 Jun 2023 14:06:43 +0000 Subject: [PATCH 1/4] Setting up GitHub Classroom Feedback From 5aa504557fb71cc99abe5da17aca6df764772e67 Mon Sep 17 00:00:00 2001 From: 1907032_borhan <63269814+1907032Arif@users.noreply.github.com> Date: Sun, 18 Jun 2023 20:07:54 +0600 Subject: [PATCH 2/4] Create README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..0ef3018 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# database-project-1907032Arif +database-project-1907032Arif created by GitHub Classroom +Database Project Submission From 025bdf61cacd8665ea54a8b7b5da56cfe2fb30e4 Mon Sep 17 00:00:00 2001 From: 1907032_borhan <63269814+1907032Arif@users.noreply.github.com> Date: Sun, 18 Jun 2023 20:17:24 +0600 Subject: [PATCH 3/4] Project Submission --- Data Modification Language.sql | 340 +++++++++++++++++++++++++++++++++ Data definition language.sql | 42 ++++ ER diagram .jpg | Bin 0 -> 80046 bytes plsql and trigger.sql | 175 +++++++++++++++++ 4 files changed, 557 insertions(+) create mode 100644 Data Modification Language.sql create mode 100644 Data definition language.sql create mode 100644 ER diagram .jpg create mode 100644 plsql and trigger.sql diff --git a/Data Modification Language.sql b/Data Modification Language.sql new file mode 100644 index 0000000..babebdc --- /dev/null +++ b/Data Modification Language.sql @@ -0,0 +1,340 @@ +-----------------Insertion-----------------------------Insertion to customer tables + INSERT INTO Customers (customer_id, name, email, address, phone) + VALUES ('C1', 'John Doe', 'johndoe@example.com', '123 Main St, Anytown, +USA', '123-456-7890'); + INSERT INTO Customers (customer_id, name, email, address, phone) + VALUES ('C2', 'Jane Smith', 'janesmith@example.com', '456 Elm St, +Othertown, USA', '987-654-3210'); + INSERT INTO Customers (customer_id, name, email, address, phone) + VALUES ('C3', 'Alice Johnson', 'alicejohnson@example.com', '789 Oak Ave, +Anothercity, USA', '456-789-1234'); + INSERT INTO Customers (customer_id, name, email, address, phone) + VALUES ('C4', 'Bob Wilson', 'bobwilson@example.com', '321 Pine Rd, +Differenttown, USA', '789-123-4567'); + INSERT INTO Customers (customer_id, name, email, address, phone) + VALUES ('C5', 'Sarah Davis', 'sarahdavis@example.com', '567 Cedar Ln, +Somewhere, USA', '234-567-8901'); + INSERT INTO Customers (customer_id, name, email, address, phone) + VALUES ('C6', 'Michael Thompson', 'michaelthompson@example.com', '890 +Walnut Ave, Elsewhere, USA', '678-901-2345'); + INSERT INTO Customers (customer_id, name, email, address, phone) + VALUES ('C7', 'Emily Wilson', 'emilywilson@example.com', '432 Maple St, +Anytown, USA', '012-345-6789'); + INSERT INTO Customers (customer_id, name, email, address, phone) + VALUES ('C8', 'David Lee', 'davidlee@example.com', '765 Birch Rd, +Othertown, USA', '901-234-5678'); + INSERT INTO Customers (customer_id, name, email, address, phone) + VALUES ('C9', 'Jennifer Miller', 'jennifermiller@example.com', '109 Pine +Ln, Anothercity, USA', '345-678-9012'); + INSERT INTO Customers (customer_id, name, email, address, phone) + VALUES ('C10', 'Ryan Harris', 'ryanharris@example.com', '876 Oak St, +Differenttown, USA', '678-901-2345');---Insertion into products table + INSERT INTO Products (product_id, name, price, description) + VALUES ('P1', 'Product A', 10.99, 'Description for Product A'); + INSERT INTO Products (product_id, name, price, description) + VALUES ('P2', 'Product B', 19.99, 'Description for Product B'); + INSERT INTO Products (product_id, name, price, description) +VALUES ('P3', 'Product C', 8.49, 'Description for Product C'); + INSERT INTO Products (product_id, name, price, description) + VALUES ('P4', 'Product D', 14.99, 'Description for Product D'); + INSERT INTO Products (product_id, name, price, description) + VALUES ('P5', 'Product E', 6.99, 'Description for Product E'); + INSERT INTO Products (product_id, name, price, description) + VALUES ('P6', 'Product F', 12.49, 'Description for Product F'); + INSERT INTO Products (product_id, name, price, description) + VALUES ('P7', 'Product G', 9.99, 'Description for Product G'); + INSERT INTO Products (product_id, name, price, description) + VALUES ('P8', 'Product H', 17.99, 'Description for Product H'); + INSERT INTO Products (product_id, name, price, description) + VALUES ('P9', 'Product I', 5.99, 'Description for Product I'); + INSERT INTO Products (product_id, name, price, description) + VALUES ('P10', 'Product J', 11.99, 'Description for Product J');-- Insert into order table + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O1', 'C1', SYSDATE, 50.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O2', 'C2', SYSDATE, 30.49); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O3', 'C3', SYSDATE, 25.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O4', 'C4', SYSDATE, 40.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O5', 'C5', SYSDATE, 35.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O6', 'C6', SYSDATE, 45.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O7', 'C7', SYSDATE, 20.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O8', 'C8', SYSDATE, 15.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O9', 'C9', SYSDATE, 55.99); +INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O10', 'C10', SYSDATE, 60.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O11', 'C1', SYSDATE, 75.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O12', 'C1', SYSDATE, 62.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O13', 'C2', SYSDATE, 45.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O14', 'C3', SYSDATE, 28.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O15', 'C3', SYSDATE, 35.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O16', 'C5', SYSDATE, 39.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O17', 'C6', SYSDATE, 52.99); + INSERT INTO Orders (order_id, customer_id, order_date, total_amount) + VALUES ('O18', 'C6', SYSDATE, 67.99);-- Insert data into Order_Items table + INSERT INTO Order_Items (order_item_id, order_id, product_id, customer_id, +quantity) + VALUES ('OI4', 'O3', 'P4', 'C3', 4); + INSERT INTO Order_Items (order_item_id, order_id, product_id, customer_id, +quantity) + VALUES ('OI5', 'O4', 'P5', 'C4', 2); + INSERT INTO Order_Items (order_item_id, order_id, product_id, customer_id, +quantity) + VALUES ('OI6', 'O5', 'P6', 'C5', 1); + INSERT INTO Order_Items (order_item_id, order_id, product_id, customer_id, +quantity) +VALUES ('OI7', 'O6', 'P7', 'C6', 3); + INSERT INTO Order_Items (order_item_id, order_id, product_id, customer_id, +quantity) + VALUES ('OI8', 'O7', 'P8', 'C7', 2); + INSERT INTO Order_Items (order_item_id, order_id, product_id, customer_id, +quantity) + VALUES ('OI9', 'O8', 'P9', 'C8', 1); + INSERT INTO Order_Items (order_item_id, order_id, product_id, customer_id, +quantity) + VALUES ('OI10', 'O9', 'P10', 'C9', 3); + INSERT INTO Order_Items (order_item_id, order_id, product_id, customer_id, +quantity) + VALUES ('OI1', 'O1', 'P1', 'C1', 2); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI55', 'O18', 'P5', 3, 14.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI56', 'O18', 'P6', 2, 24.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI3', 'O2', 'P3', 3, 12.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI4', 'O2', 'P4', 2, 8.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI5', 'O3', 'P5', 1, 14.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI7', 'O3', 'P7', 1, 17.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI8', 'O4', 'P2', 2, 19.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI9', 'O4', 'P5', 3, 14.99); +INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI10', 'O4', 'P9', 1, 8.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI11', 'O5', 'P3', 2, 12.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI12', 'O5', 'P4', 1, 15.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI13', 'O5', 'P8', 1, 10.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI14', 'O6', 'P1', 2, 9.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI15', 'O6', 'P2', 1, 19.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI16', 'O6', 'P5', 3, 14.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI17', 'O7', 'P3', 2, 12.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI18', 'O7', 'P4', 1, 15.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI19', 'O7', 'P6', 1, 24.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI20', 'O8', 'P1', 1, 9.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI21', 'O8', 'P3', 3, 12.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI22', 'O8', 'P8', 2, 10.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) +VALUES ('OI23', 'O9', 'P2', 2, 19.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI24', 'O9', 'P4', 1, 15.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI25', 'O9', 'P7', 2, 17.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI26', 'O10', 'P1', 3, 9.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI27', 'O10', 'P3', 1, 12.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI28', 'O10', 'P5', 2, 14.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI29', 'O11', 'P2', 1, 19.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI30', 'O11', 'P4', 2, 15.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI31', 'O11', 'P8', 1, 10.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI32', 'O12', 'P1', 3, 9.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI33', 'O12', 'P2', 2, 19.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI34', 'O12', 'P6', 1, 24.99); +INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI35', 'O13', 'P3', 2, 12.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI36', 'O13', 'P5', 1, 14.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI37', 'O13', 'P9', 2, 8.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI38', 'O14', 'P2', 1, 19.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI39', 'O14', 'P4', 2, 15.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI40', 'O14', 'P7', 1, 17.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI41', 'O15', 'P1', 3, 9.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI42', 'O15', 'P3', 1, 12.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI43', 'O15', 'P5', 2, 14.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI44', 'O16', 'P4', 1, 15.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI45', 'O16', 'P6', 2, 24.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI46', 'O17', 'P2', 1, 19.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI47', 'O17', 'P3', 3, 12.99); +INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI48', 'O17', 'P5', 2, 14.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI49', 'O17', 'P7', 1, 17.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI50', 'O18', 'P1', 1, 9.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI51', 'O18', 'P4', 2, 15.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI52', 'O18', 'P6', 1, 24.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI53', 'O18', 'P8', 3, 11.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI54', 'O18', 'P10', 2, 9.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI55', 'O18', 'P9', 1, 8.99); + INSERT INTO order_items (order_item_id, order_id, product_id, quantity, +unit_price) + VALUES ('OI56', 'O18', 'P3', 2, 12.99);-------------------------------------Aggregate Function---------------------------Calculate the total number of customers: + SELECT COUNT(*) AS total_customers FROM Customers;--Calculate the average price of products: + SELECT AVG(price) AS average_price FROM Products;--Find the maximum price among all products: + SELECT MAX(price) AS max_price FROM Products;--Determine the minimum quantity ordered in Order_Items: + SELECT MIN(quantity) AS min_quantity FROM Order_Items;--Calculate the number of prouducts in each order: + SELECT order_id, count(*) as number_of_products +FROM Order_Items + GROUP BY order_id;----using group by and having-------- +SELECT customer_id, COUNT(*) as order_count + FROM Orders + GROUP BY customer_id + HAVING COUNT(*) > 1;--Calculate the total amount for each order: + SELECT order_id, SUM(quantity * unit_price) AS total_amount + FROM Order_Items + GROUP BY order_id;---------------------------Join------------------------------------Inner Join: + SELECT * + FROM Customers + INNER JOIN Orders ON Customers.customer_id = Orders.customer_id;--Left Join: + SELECT Customers.customer_id, Customers.name, Orders.order_id + FROM Customers + LEFT JOIN Orders ON Customers.customer_id = Orders.customer_id;--Right Join: + SELECT Customers.customer_id, Customers.name, Orders.order_id + FROM Customers + RIGHT JOIN Orders ON Customers.customer_id = Orders.customer_id;--Full Outer Join: + SELECT Customers.customer_id, Customers.name, Orders.order_id + FROM Customers + FULL OUTER JOIN Orders ON Customers.customer_id = Orders.customer_id;----------------------------Union, intercept, except--------------------------- +SELECT order_id FROM Orders + UNION + SELECT customer_id FROM Customers; + SELECT order_id FROM Orders + INTERSECT + SELECT customer_id FROM Customers;----customers who brought the product 'P1' using subquery +select customer_id from orders where order_id in (select order_id from +order_items where product_id in (select product_id from products where +product_id = 'P1'));----customers who brought the product 'P1' using join + select customer_id from orders join (order_items join products on +order_items.product_id = products.product_id) using(order_id) where +products.product_id = 'P1';-----customer name who brought the product 'P1' + select name from customers where customer_id in (select customer_id from +orders join (order_items join products on order_items.product_id = +products.product_id) using(order_id) where products.product_id = 'P1' + );-----------------------With statement to find max priced product + with max_price(val) as (select max(price) from products) + select * from products, max_price where products.price = max_price.val;------------------------set membership function------------- +select * from customers where customer_id = 'C1' and name in (select name +from customers where name like '%John%'); + select * from customers where customer_id = 'C1' or name in (select name +from customers where name like '%John%'); + select * from customers where customer_id = 'C1' and name not in (select +name from customers where name like '%John%');-----------------------some, all, exist, unique-------------- +select * from products where price > some (select price from products +where price > 10); + select * from products where price > all (select price from products where +price < 10); + select * from orders where total_amount > 50 and exists(select Customer_id +from orders); + select unique customer_id from orders where total_amount > 50;----------------------string operations------------------ +select name from customers where name like '________'; + select name from customers where name like '%John%';---------------------Views----------------------- +create view show_name as select name from customers; + select name from show_name;---views using other views + create view particular_name as select name from show_name where name like +'________'; + select name from particular_name; \ No newline at end of file diff --git a/Data definition language.sql b/Data definition language.sql new file mode 100644 index 0000000..83530e9 --- /dev/null +++ b/Data definition language.sql @@ -0,0 +1,42 @@ +drop table customers; + drop table products; + drop table order_items; + drop table orders; + CREATE TABLE Customers ( + customer_id VARCHAR2(20) PRIMARY KEY, + name VARCHAR2(100) NOT NULL, + email VARCHAR2(100) UNIQUE NOT NULL, + address VARCHAR2(200), + phone VARCHAR2(20) + ); + CREATE TABLE Products ( + product_id VARCHAR2(20) PRIMARY KEY, + name VARCHAR2(100) NOT NULL, + price NUMBER, + description VARCHAR2(200) + ); + CREATE TABLE Orders ( + order_id VARCHAR2(20) PRIMARY KEY, + customer_id VARCHAR2(20), + order_date DATE, + total_amount NUMBER check (total_amount > 0), + CONSTRAINT fk_orders_customers + FOREIGN KEY (customer_id) REFERENCES Customers (customer_id) on delete +cascade + ); + CREATE TABLE Order_Items ( + order_item_id VARCHAR2(20) PRIMARY KEY, + order_id VARCHAR2(20), + product_id VARCHAR2(20), + quantity NUMBER check (quantity > 0), + unit_price NUMBER check (unit_price > 0), + CONSTRAINT fk_order_items_orders + FOREIGN KEY (order_id) REFERENCES Orders (order_id), + CONSTRAINT fk_order_items_products + FOREIGN KEY (product_id) REFERENCES Products (product_id) + ); + ALTER TABLE Customers + ADD age NUMBER; + alter table Customers modify age varchar(20); + alter table Customers rename column age to customer_age; + ALTER TABLE Customers Drop column customer_age; \ No newline at end of file diff --git a/ER diagram .jpg b/ER diagram .jpg new file mode 100644 index 0000000000000000000000000000000000000000..7a8c03d61db5b88316e96a919d67a84445319e2b GIT binary patch literal 80046 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 1000 then +dbms_output.put_line('Order ' || p_id || 'is large'); +ELSIF amount <1000 AND amount>500 then +dbms_output.put_line('Order ' || p_id || 'is medium'); +ELSE +dbms_output.put_line('Order ' || p_id || 'is small'); +end if; +end; +/ +declare +p_id ORDERS.ORDER_ID%type := ’O4’; +begin +check_order_total(p_id); +end; +/ ----a function----- +create or replace function calculate_total(p_quantity in number, p_unit_price in number) +return number is +v_total_price number; +begin +v_total_price := p_quantity*p_unit_price; +return v_total_price; +end; +/ ------------function in a query----------- +SELECT order_id, calculate_total(2, 3) AS total_price +FROM Orders; +show errors procedure check_order_total; + + + + + + +----------Trigger-------- + +CREATE OR REPLACE TRIGGER update_customer_info_trigger +AFTER UPDATE ON Orders +FOR EACH ROW +BEGIN + -- Update the customer's phone number in the Customers table + UPDATE Customers + SET phone = :NEW.phone + WHERE customer_id = :NEW.customer_id; +END; +/ + + +CREATE OR REPLACE TRIGGER insert_into_order_items_trigger +AFTER INSERT ON Orders +FOR EACH ROW +BEGIN + -- Insert a row into Order_Items + INSERT INTO Order_Items (order_item_id, order_id, product_id, quantity, unit_price) + VALUES (:NEW.order_item_id, :NEW.order_id, :NEW.product_id, :NEW.quantity, :NEW.unit_price); +END; +/ + +CREATE OR REPLACE TRIGGER delete_from_order_items_trigger +AFTER DELETE ON Orders +FOR EACH ROW +BEGIN + -- Delete rows from Order_Items + DELETE FROM Order_Items + WHERE order_id = :OLD.order_id; +END; +/ \ No newline at end of file From f580bd3d0499afc00cc0689be893a92946ca113b Mon Sep 17 00:00:00 2001 From: 1907032_borhan <63269814+1907032Arif@users.noreply.github.com> Date: Sun, 18 Jun 2023 20:18:25 +0600 Subject: [PATCH 4/4] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 0ef3018..5857202 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,2 @@ # database-project-1907032Arif -database-project-1907032Arif created by GitHub Classroom -Database Project Submission +Database Project Submission by 1907032Arif