From 9ad782391eda59e36138948332e7fb33ef68f509 Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Tue, 23 May 2023 16:12:49 +0000 Subject: [PATCH 1/5] Setting up GitHub Classroom Feedback From 097f56429d625e84c29b6bddbbda5d7296ea7739 Mon Sep 17 00:00:00 2001 From: Jobair Al Nahian Date: Sat, 27 May 2023 02:53:57 +0600 Subject: [PATCH 2/5] three files uploaded --- DDL.sql | 84 ++++++++++ DML.sql | 469 +++++++++++++++++++++++++++++++++++++++++++++++++++++ PL_SQL.sql | 187 +++++++++++++++++++++ 3 files changed, 740 insertions(+) create mode 100644 DDL.sql create mode 100644 DML.sql create mode 100644 PL_SQL.sql diff --git a/DDL.sql b/DDL.sql new file mode 100644 index 0000000..93a06be --- /dev/null +++ b/DDL.sql @@ -0,0 +1,84 @@ +DROP TABLE ORDER_ITEMS; + +DROP TABLE PRODUCTS; + +DROP TABLE ORDERS; + +DROP TABLE CATEGORIES; + +DROP TABLE CUSTOMERS; + +--Create the Customers table +CREATE TABLE CUSTOMERS( + CUSTOMER_ID NUMBER PRIMARY KEY, + FIRST_NAME VARCHAR(30), + LAST_NAME VARCHAR(30), + EMAIL VARCHAR(30) UNIQUE, + PHONE_NUMBER VARCHAR(20), + ADDRESS VARCHAR(40) +); + +-- Create the Categories table +CREATE TABLE CATEGORIES ( + CATEGORY_ID NUMBER PRIMARY KEY, + CATEGORY_NAME VARCHAR2(50) +); + +-- Create the Orders table +CREATE TABLE ORDERS ( + ORDER_ID NUMBER PRIMARY KEY, + CUSTOMER_ID NUMBER, + ORDER_DATE DATE, + TOTAL_PRICE NUMBER(10, 2), + FOREIGN KEY (CUSTOMER_ID) REFERENCES CUSTOMERS(CUSTOMER_ID) ON DELETE CASCADE +); + +--Create the Products table +CREATE TABLE PRODUCTS ( + PRODUCT_ID NUMBER PRIMARY KEY, + PRODUCT_NAME VARCHAR2(30), + PRICE NUMBER(10, 2), + DESCRIPTION VARCHAR2(100), + CATEGORY_ID NUMBER, + FOREIGN KEY (CATEGORY_ID) REFERENCES CATEGORIES(CATEGORY_ID) ON DELETE CASCADE +); + +--Create the Order_Items table +CREATE TABLE ORDER_ITEMS ( + ORDER_ID NUMBER, + PRODUCT_ID NUMBER, + QUANTITY NUMBER, + UNIT_PRICE NUMBER(10, 2) CHECK(UNIT_PRICE > 0), + PRIMARY KEY (ORDER_ID, PRODUCT_ID), + FOREIGN KEY (ORDER_ID) REFERENCES ORDERS(ORDER_ID) ON DELETE CASCADE, + FOREIGN KEY (PRODUCT_ID) REFERENCES PRODUCTS(PRODUCT_ID) ON DELETE CASCADE +); + +--showing the attributes of all the tables +DESC CUSTOMERS; + +DESCRIBE CATEGORIES; + +DESC ORDERS; + +DESC ORDER_ITEMS; + +--add column in the table +ALTER TABLE CATEGORIES ADD DESCRIPTION CHAR(20); + +--modify domain type of a column +ALTER TABLE CATEGORIES MODIFY DESCRIPTION VARCHAR(20); + +--ramane column +ALTER TABLE CATEGORIES RENAME COLUMN DESCRIPTION TO CATEGORY_DESC; + +--deleting a column +ALTER TABLE CATEGORIES DROP COLUMN CATEGORY_DESC; + +-- computed column +-- ALTER TABLE Orders +-- ADD total_price AS ( +-- SELECT SUM(quantity * unit_price) +-- FROM Order_Items +-- WHERE order_id = Orders.order_id +-- ); \ No newline at end of file diff --git a/DML.sql b/DML.sql new file mode 100644 index 0000000..b7542d3 --- /dev/null +++ b/DML.sql @@ -0,0 +1,469 @@ +-- Insert data into the Customers table +INSERT INTO CUSTOMERS VALUES ( + 1, 'John', 'Doe', 'johndoe@example.com', '1234567890', '123 Main St' +); + +INSERT INTO CUSTOMERS VALUES ( + 2, 'Jane', 'Smith', 'janesmith@example.com', '9876543210', '456 Elm St' +); + +INSERT INTO CUSTOMERS VALUES ( + 3, 'David', 'Johnson', 'davidjohnson@example.com', '4567890123', '789 Oak Ave' +); + +INSERT INTO CUSTOMERS VALUES ( + 4, 'Sarah', 'Williams', 'sarahwilliams@example.com', '0123456789', '987 Pine Rd' +); + +INSERT INTO CUSTOMERS VALUES ( + 5, 'Michael', 'Brown', 'michaelbrown@example.com', '5432109876', '654 Cedar Ln' +); + +INSERT INTO CUSTOMERS VALUES ( + 6, 'Emily', 'Taylor', 'emilytaylor@example.com', '1029384756', '321 Birch Dr' +); + +INSERT INTO CUSTOMERS VALUES ( + 7, 'Daniel', 'Anderson', 'danielanderson@example.com', '5678901234', '876 Maple Ave' +); + +INSERT INTO CUSTOMERS VALUES ( + 8, 'Olivia', 'Martinez', 'oliviamartinez@example.com', '4321098765', '219 Oak St' +); + +INSERT INTO CUSTOMERS VALUES ( + 9, 'James', 'Lopez', 'jameslopez@example.com', '6789012345', '543 Pine Ave' +); + +INSERT INTO CUSTOMERS VALUES ( + 10, 'Sophia', 'Gonzalez', 'sophiagonzalez@example.com', '9012345678', '987 Elm Ln' +); + +INSERT INTO CATEGORIES VALUES ( + 1, 'Clothing' +); + +INSERT INTO CATEGORIES VALUES ( + 2, 'Footwear' +); + +INSERT INTO CATEGORIES VALUES ( + 3, 'Fitness' +); + +-- Insert data into the Products table +INSERT INTO PRODUCTS VALUES ( + 1, 'T-shirt', 19.99, 'A classic cotton T-shirt', 1 +); + +INSERT INTO PRODUCTS VALUES ( + 2, 'Jeans', 59.99, 'Durable denim jeans for everyday wear', 1 +); + +INSERT INTO PRODUCTS VALUES ( + 3, 'Running Shoes', 79.99, 'Lightweight and comfortable for long runs', 2 +); + +INSERT INTO PRODUCTS VALUES ( + 4, 'Yoga Mat', 29.99, 'Non-slip surface with a comfortable cushion', 3 +); + +INSERT INTO PRODUCTS VALUES ( + 5, 'Resistance Bands', 14.99, 'Set of 3 resistance bands for strength training', 3 +); + +-- Insert data into the Orders table +INSERT INTO ORDERS VALUES ( + 1, 1, TO_DATE('2023-03-01', 'YYYY-MM-DD'), 39.98 +); + +INSERT INTO ORDERS VALUES ( + 2, 2, TO_DATE('2023-03-02', 'YYYY-MM-DD'), 149.97 +); + +INSERT INTO ORDERS VALUES( + 3, 3, TO_DATE('2023-03-03', 'YYYY-MM-DD'), 44.97 +); + +INSERT INTO ORDERS VALUES( + 4, 4, TO_DATE('2023-03-04', 'YYYY-MM-DD'), 89.97 +); + +INSERT INTO ORDERS VALUES( + 5, 5, TO_DATE('2023-03-05', 'YYYY-MM-DD'), 94.97 +); + +INSERT INTO ORDERS VALUES( + 6, 6, TO_DATE('2023-03-06', 'YYYY-MM-DD'), 159.98 +); + +INSERT INTO ORDERS VALUES( + 7, 7, TO_DATE('2023-03-07', 'YYYY-MM-DD'), 49.99 +); + +INSERT INTO ORDERS VALUES( + 8, 8, TO_DATE('2023-03-08', 'YYYY-MM-DD'), 179.97 +); + +INSERT INTO ORDERS VALUES( + 9, 9, TO_DATE('2023-03-09', 'YYYY-MM-DD'), 104.96 +); + +INSERT INTO ORDERS VALUES( + 10, 10, TO_DATE('2023-03-10', 'YYYY-MM-DD'), 199.98 +); + +-- Create a trigger to update the total_price column in the Orders table +CREATE OR REPLACE TRIGGER UPDATE_TOTAL_PRICE AFTER + INSERT OR UPDATE OR DELETE ON ORDER_ITEMS FOR EACH ROW +DECLARE + V_TOTAL_PRICE NUMBER; +BEGIN + -- Calculate the total price for the order + SELECT SUM(QUANTITY * UNIT_PRICE) INTO V_TOTAL_PRICE + FROM ORDER_ITEMS + WHERE ORDER_ID = :NEW.ORDER_ID; + -- Update the total_price column in the Orders table + UPDATE ORDERS + SET + TOTAL_PRICE = V_TOTAL_PRICE + WHERE + ORDER_ID = :NEW.ORDER_ID; +END; +/ + +-- Insert data into the Order_Items table +INSERT INTO ORDER_ITEMS VALUES ( + 1, 1, 2, 19.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 2, 2, 1, 59.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 2, 3, 1, 79.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 3, 4, 1, 29.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 3, 5, 3, 14.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 4, 1, 1, 19.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 5, 2, 1, 59.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 5, 3, 1, 79.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 6, 4, 2, 29.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 6, 5, 1, 14.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 7, 1, 1, 19.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 8, 2, 1, 59.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 8, 3, 1, 79.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 8, 4, 1, 29.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 9, 5, 2, 14.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 10, 1, 3, 19.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 10, 2, 1, 59.99 +); + +INSERT INTO ORDER_ITEMS VALUES ( + 10, 3, 1, 79.99 +); + +-- update total price in orders table +UPDATE ORDERS O +SET + TOTAL_PRICE = ( + SELECT SUM(OI.QUANTITY * OI.UNIT_PRICE) FROM ORDER_ITEMS OI WHERE OI.ORDER_ID = O.ORDER_ID + ) +WHERE + O.ORDER_ID IN ( + SELECT ORDER_ID FROM ORDER_ITEMS + ); + +SELECT * +FROM CUSTOMERS; + +SELECT * +FROM CATEGORIES; + +SELECT * +FROM PRODUCTS; + +SELECT * +FROM ORDERS; + +SELECT * +FROM ORDER_ITEMS; + +-- UPDATE +UPDATE CUSTOMERS +SET + EMAIL ='johndoe@gmail.com' +WHERE + CUSTOMER_ID=1; + +SELECT * +FROM CUSTOMERS +WHERE CUSTOMER_ID=1; + +-- INSERT +INSERT INTO CUSTOMERS VALUES ( + 11, 'Jobair', 'Nahian', 'jobairnahian2017@gmail.com', '01876023389', 'fulbari gate, khulna' +); + +-- DELETE +DELETE FROM CUSTOMERS +WHERE + CUSTOMER_ID = 11; + +--Distict data. selects name who have ordered items +SELECT DISTINCT(FIRST_NAME) +FROM CUSTOMERS C, ORDERS O, ORDER_ITEMS OI +WHERE C.CUSTOMER_ID = O.CUSTOMER_ID + AND O.ORDER_ID = OI.ORDER_ID; + +-- Comparison search +SELECT PRODUCT_NAME, PRICE +FROM PRODUCTS +WHERE PRICE > 20 + AND PRICE < 75; + +-- Range search +SELECT PRODUCT_NAME, PRICE +FROM PRODUCTS +WHERE PRICE BETWEEN 10 + AND 60; + +--set membership +SELECT PRODUCT_NAME, PRICE +FROM PRODUCTS +WHERE PRICE IN (19.99, 29.99); + +-- string matching +SELECT FIRST_NAME, LAST_NAME +FROM CUSTOMERS +WHERE EMAIL LIKE '%gmail%'; + +-- ordering descending +SELECT ORDER_ID, ORDER_DATE +FROM ORDERS +ORDER BY ORDER_DATE DESC; + +-- with clause +--finding the detais about the maximum price product +WITH MAX_PRICE(VAL) AS ( + SELECT MAX(PRICE) + FROM PRODUCTS +) +SELECT * +FROM PRODUCTS, MAX_PRICE +WHERE PRODUCTS.PRICE=MAX_PRICE.VAL; + +--- aggregate functions --- + +-- how many orders placed in a date. +SELECT COUNT(*) AS ORDER_COUNT +FROM ORDERS +WHERE ORDER_DATE = TO_DATE('2023-03-02', 'YYYY-MM-DD'); + +-- finding secnd maximum price +SELECT MAX(PRICE) +FROM PRODUCTS +WHERE PRICE < ( + SELECT MAX(PRICE) + FROM PRODUCTS + ); + +-- minimum price of prouducts +SELECT MIN(PRICE) +FROM PRODUCTS; + +--- with group by --- + +-- finding the total price of orderd items of every customer +SELECT SUM(UNIT_PRICE * QUANTITY) AS TOTAL_PRICE +FROM ORDER_ITEMS +GROUP BY ORDER_ID; + +-- finding the average price ordered by a customer +SELECT AVG(UNIT_PRICE * QUANTITY) +FROM ORDER_ITEMS +GROUP BY ORDER_ID; + +-- having , finding the category of products with avg price > 30 +SELECT CATEGORY_ID, AVG(PRICE) +FROM PRODUCTS +GROUP BY CATEGORY_ID +HAVING AVG(PRICE)> 30; + +---- union intersect and except ---- + +-- finding the customers with email 'gmail' and last name has char 'o' +SELECT FIRST_NAME +FROM CUSTOMERS +WHERE EMAIL LIKE '%gmail%' UNION + SELECT FIRST_NAME + FROM CUSTOMERS + WHERE LAST_NAME LIKE '%o%'; + +--finding the customer who have on orders +SELECT CUSTOMER_ID +FROM CUSTOMERS INTERSECT + SELECT CUSTOMER_ID + FROM ORDERS; + +--finding the products without the maximum priced product +SELECT PRODUCT_ID +FROM PRODUCTS EXCEPT + SELECT PRODUCT_ID + FROM PRODUCTS + WHERE PRICE=( + SELECT MAX(PRICE) + FROM PRODUCTS + ); + +--Nested Query,finding one product bought by a customer +SELECT PRODUCT_NAME +FROM PRODUCTS +WHERE PRODUCT_ID= ( + SELECT PRODUCT_ID + FROM ORDER_ITEMS + WHERE ORDER_ID=( + SELECT ORDER_ID + FROM ORDERS + WHERE CUSTOMER_ID=1 + ) + ); + +-- set membership AND/OR/NOT +SELECT * +FROM PRODUCTS +WHERE PRODUCT_NAME LIKE '%e%' + AND CATEGORY_ID NOT IN ( + SELECT CATEGORY_ID + FROM CATEGORIES + WHERE CATEGORY_NAME LIKE '%oo%' + ); + +--some/all/exists +SELECT PRODUCT_NAME +FROM PRODUCTS +WHERE PRICE > SOME ( + SELECT PRICE + FROM PRODUCTS + WHERE PRICE> 50 + ); + +SELECT PRODUCT_NAME +FROM PRODUCTS +WHERE PRICE > ALL ( + SELECT PRICE + FROM PRODUCTS + WHERE PRICE> 50 + ); + +SELECT * +FROM CUSTOMERS +WHERE FIRST_NAME LIKE '%e%' + AND EXISTS( + SELECT * + FROM PRODUCTS + WHERE PRICE > 20 + ); + +---- string operation ---- +SELECT LAST_NAME +FROM CUSTOMERS +WHERE LAST_NAME LIKE '___'; + +--- Join --- + +--natural join +SELECT PRODUCT_NAME, CATEGORY_NAME +FROM PRODUCTS + NATURAL JOIN CATEGORIES; + +-- selecting category name which price are >20 +SELECT PRODUCT_NAME, CATEGORY_NAME +FROM PRODUCTS P + JOIN CATEGORIES C USING (CATEGORY_ID) +WHERE P.PRICE>20; + +--self join ,-- find the order id who has at least two products +SELECT O1.ORDER_ID +FROM ORDER_ITEMS O1, ORDER_ITEMS O2 +WHERE (O1.ORDER_ID = O2.ORDER_ID + AND O1.PRODUCT_ID <> O2.PRODUCT_ID); + +-- finding the products bought by a customer. +SELECT PRODUCT_NAME +FROM PRODUCTS P + JOIN ORDER_ITEMS OI ON P.PRODUCT_ID = OI.PRODUCT_ID JOIN ORDERS O ON OI.ORDER_ID = O.ORDER_ID +WHERE O.CUSTOMER_ID=2; + +-- left outer join +SELECT PRODUCT_ID, PRODUCT_NAME, CATEGORY_NAME +FROM PRODUCTS + LEFT OUTER JOIN CATEGORIES USING(CATEGORY_ID); + +-- right outer join +SELECT FIRST_NAME, LAST_NAME, ORDER_ID +FROM CUSTOMERS + RIGHT OUTER JOIN ORDERS USING(CUSTOMER_ID); + +--- view --- +CREATE VIEW PRODUCT_CATEGORY AS + SELECT PRODUCT_NAME + FROM PRODUCTS + WHERE CATEGORY_ID = ( + SELECT CATEGORY_ID + FROM CATEGORIES + WHERE CATEGORY_NAME = 'Fitness' + ); + +SELECT * +FROM PRODUCT_CATEGORY; + +CREATE VIEW CUSTOM AS + SELECT * + FROM PRODUCT_CATEGORY + WHERE PRODUCT_NAME LIKE '%ga%'; + +SELECT * +FROM CUSTOM; \ No newline at end of file diff --git a/PL_SQL.sql b/PL_SQL.sql new file mode 100644 index 0000000..8061614 --- /dev/null +++ b/PL_SQL.sql @@ -0,0 +1,187 @@ + +--- set variable declaration and print value +SET SERVEROUTPUT ON +DECLARE + P_ID PRODUCTS.PRODUCT_ID%TYPE; + P_NAME PRODUCTS.PRODUCT_NAME%TYPE; + PRICE PRODUCTS.PRICE%TYPE; + DESCRIPTION PRODUCTS.DESCRIPTION%TYPE; +BEGIN + SELECT PRODUCT_ID, PRODUCT_NAME,PRICE,DESCRIPTION into + P_ID,P_NAME,PRICE,DESCRIPTION FROM PRODUCTS WHERE PRODUCT_ID=1; + + DBMS_OUTPUT.PUT_LINE('product id: '||P_ID|| 'product name: '||P_NAME||'price: '||PRICE||'description: '||DESCRIPTION); + end; + / + +---- Inset and set default value +SET SERVEROUTPUT ON +DECLARE + C_ID CUSTOMERS.CUSTOMER_ID%TYPE := 12; + C_FNAME CUSTOMERS.FIRST_NAME%TYPE :='jobair al'; + C_LNAME CUSTOMERS.LAST_NAME%TYPE := 'nahian'; + EMAIL CUSTOMERS.EMAIL%TYPE := 'cse@kuet.ac.bd'; + PHONE CUSTOMERS.PHONE_NUMBER%TYPE :='01576183'; + ADDRESS CUSTOMERS.ADDRESS%TYPE :='holodia, borguna'; + + BEGIN + INSERT into CUSTOMERS VALUES (C_ID,C_FNAME,c_LNAME,EMAIL,PHONE,ADDRESS); + END; + / + +--row type +set SERVEROUTPUT ON +DECLARE +c_row CATEGORIES%rowtype; +BEGIN +SELECT CATEGORY_ID,CATEGORY_NAME into c_row.CATEGORY_ID,c_row.CATEGORY_NAME from CATEGORIES WHERE CATEGORY_ID=2; +END; +/ + +--- curson and rowcount + set SERVEROUTPUT ON + DECLARE + cursor category_cursor is SELECT * FROM CATEGORIES; + c_row CATEGORIES%rowtype; + BEGIN + open category_cursor; + FETCH category_cursor into c_row.CATEGORY_ID,c_row.CATEGORY_NAME; + WHILE category_cursor%found LOOP + DBMS_OUTPUT.PUT_LINE(' Category id '|| c_row.CATEGORY_ID||' Category name '|| c_row.CATEGORY_NAME); + + + FETCH category_cursor into c_row.CATEGORY_ID,c_row.CATEGORY_NAME; + END LOOP; + DBMS_OUTPUT.PUT_LINE(' Row count '|| category_cursor%rowcount); + close category_cursor; + end; + / + +---- array with loop + +set SERVEROUTPUT on +declare + counter NUMBER; + c_name CUSTOMERS.FIRST_NAME%type; + type namearray is VARRAY(10) of CUSTOMERS.FIRST_NAME%type; + a_name namearray :=namearray(); +BEGIN + counter :=1; + FOR x in 5..10 LOOP + SELECT FIRST_NAME into c_name FROM CUSTOMERS WHERE CUSTOMER_ID = x; + a_name.extend(); + a_name(counter) := c_name; + counter:=counter+1; + end loop; + counter:=1; + WHILE counter<=a_name.count LOOP + DBMS_OUTPUT.PUT_LINE(a_name(counter)); + counter := counter+1; + end LOOP; +end; +/ + +-- if elseif else +set SERVEROUTPUT ON +DECLARE + p_name PRODUCTS.PRODUCT_NAME%TYPE; + +BEGIN + + FOR x IN 1..5 + LOOP + SELECT Product_name INTO p_name FROM PRODUCTS WHERE PRODUCT_ID=x; + if p_name='Jeans' + then + dbms_output.put_line(p_name||' is a '||'clothing'); + elsif p_name='Running Shoes' + then + dbms_output.put_line(p_name||' is a '||'footwear'); + else + dbms_output.put_line(p_name||' is a '||'other category'); + end if; + END LOOP; +END; +/ + +---- procedure + +create or REPLACE PROCEDURE proc(var1 in NUMBER, + var2 out VARCHAR, + var3 in out NUMBER) +AS +t_show CHAR(30); +BEGIN +t_show := 'From procedure: '; +SELECT CATEGORY_NAME into var2 FROM CATEGORIES WHERE CATEGORY_ID in ( + select CATEGORY_ID from PRODUCTS WHERE PRODUCT_ID = var1 +); +var3:=var1+1; +DBMS_OUTPUT.PUT_LINE(t_show|| var2 || ' code is ' || var1 || ' In out parameter: ' || var3); +END; +/ + +set SERVEROUTPUT on +DECLARE +P_ID PRODUCTS.PRODUCT_ID%type:=3; +C_NAME CATEGORIES.CATEGORY_NAME%type; +extra number:=0; +BEGIN +proc(P_ID,C_NAME,extra); +end; +/ + + +--- function + +set SERVEROUTPUT on +CREATE or REPLACE function fun(var1 in NUMBER) return varchar as +value CUSTOMERS.FIRST_NAME%type; +BEGIN +SELECT FIRST_NAME into value from CUSTOMERS WHERE CUSTOMER_ID=var1; +return value; + +end; +/ + +set SERVEROUTPUT on +DECLARE +value VARCHAR(20); +BEGIN +VALUE := fun(1); +DBMS_OUTPUT.PUT_LINE('function returned '||VALUE); +end; +/ + +---- to identify the price range + +set SERVEROUTPUT on +DECLARE +CURSOR proc_cursor is select PRICE from PRODUCTS; +price PRODUCTS.PRICE%type; +BEGIN +OPEN proc_cursor; +FETCH proc_cursor into price ; +WHILE proc_cursor%found LOOP + +if price >100 + THEN + dbms_output.PUT_LINE('greater than 100'); + elsif price>50 + then DBMS_OUTPUT.PUT_LINE('between 100 and 50' ); + ELSE + DBMS_OUTPUT.PUT_LINE('less than 50' ); +end if; +FETCH proc_cursor into price ; + +end loop; +close proc_cursor; +end; +/ + + + + + + + From db521d511b8058f13715e026b9db417aff89391c Mon Sep 17 00:00:00 2001 From: Jobair Al Nahian Date: Sat, 27 May 2023 10:32:27 +0600 Subject: [PATCH 3/5] Update DML.sql --- DML.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DML.sql b/DML.sql index b7542d3..118e8cc 100644 --- a/DML.sql +++ b/DML.sql @@ -342,7 +342,7 @@ WHERE EMAIL LIKE '%gmail%' UNION FROM CUSTOMERS WHERE LAST_NAME LIKE '%o%'; ---finding the customer who have on orders +--finding the customer who have no orders SELECT CUSTOMER_ID FROM CUSTOMERS INTERSECT SELECT CUSTOMER_ID @@ -466,4 +466,4 @@ CREATE VIEW CUSTOM AS WHERE PRODUCT_NAME LIKE '%ga%'; SELECT * -FROM CUSTOM; \ No newline at end of file +FROM CUSTOM; From b07dac0c4f2d0b9770fbaa7fdd302fff26e6fd04 Mon Sep 17 00:00:00 2001 From: Jobair Al Nahian Date: Sat, 27 May 2023 10:33:55 +0600 Subject: [PATCH 4/5] 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..a744669 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# database-project-Jobair2020 +Roll - 1907071 +database-project-Jobair2020 created by GitHub Classroom From 7b7b27089ae1550bc00c5fb6d3e97af1c33c31d2 Mon Sep 17 00:00:00 2001 From: Jobair Al Nahian Date: Sat, 27 May 2023 11:11:03 +0600 Subject: [PATCH 5/5] Update DML.sql --- DML.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DML.sql b/DML.sql index 118e8cc..28154cc 100644 --- a/DML.sql +++ b/DML.sql @@ -342,7 +342,7 @@ WHERE EMAIL LIKE '%gmail%' UNION FROM CUSTOMERS WHERE LAST_NAME LIKE '%o%'; ---finding the customer who have no orders +--finding the customer who have orders SELECT CUSTOMER_ID FROM CUSTOMERS INTERSECT SELECT CUSTOMER_ID