DBMS MP 97,85
DBMS MP 97,85
2. ALTER TABLE
3. DELETE TABLE
BEGIN;
INSERT INTO User (u_id, name, email) VALUES (101, 'Alice', '[email protected]');
SAVEPOINT savepoint1;
INSERT INTO User (u_id, name, email) VALUES (102, 'Bob', '[email protected]');
ROLLBACK TO savepoint1;
COMMIT;
8. concatenation operation ,
DESC User;
SELECT * FROM Product WHERE price > 50 AND price < 200;
SELECT * FROM User WHERE name = 'Alice' OR email = '[email protected]';
18. Using the ORDER BY Clause
SELECT * FROM Product WHERE price > (SELECT AVG(price) FROM Product);
SELECT name FROM User WHERE u_id IN (SELECT u_id FROM Order WHERE
order_amount > 100);
INSERT INTO User (u_id, name, email) VALUES (103, 'David', '[email protected]');
37. PL/SQL
BEGIN
INSERT INTO User (u_id, name, email) VALUES (104, 'Eve', '[email protected]');
COMMIT;
END;
BEGIN
FOR rec IN (SELECT * FROM User) LOOP
DBMS_OUTPUT.PUT_LINE(rec.name || ' - ' || rec.email);
END LOOP;
END;
DECLARE
CURSOR user_cur IS SELECT * FROM User;
user_rec user_cur%ROWTYPE;
BEGIN
OPEN user_cur;
LOOP
FETCH user_cur INTO user_rec;
EXIT WHEN user_cur%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(user_rec.name);
END LOOP;
CLOSE user_cur;
END;
BEGIN
FOR i IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE('Iteration: ' || i);
END LOOP;
END;
DECLARE
i NUMBER := 1;
BEGIN
LOOP
EXIT WHEN i > 5;
DBMS_OUTPUT.PUT_LINE('Loop iteration: ' || i);
i := i + 1;
END LOOP;
END;
DECLARE
num NUMBER := 0;
BEGIN
num := 10 / num;
EXCEPTION
WHEN ZERO_DIVIDE THEN
DBMS_OUTPUT.PUT_LINE('Cannot divide by zero');
END;
DECLARE
e_invalid_value EXCEPTION;
value NUMBER := -1;
BEGIN
IF value < 0 THEN
RAISE e_invalid_value;
END IF;
EXCEPTION
WHEN e_invalid_value THEN
DBMS_OUTPUT.PUT_LINE('Invalid value provided');
END;
For execution:-
SELECT get_user_total_orders(101) FROM dual;
2)
CREATE OR REPLACE FUNCTION get_category_product_count(c_id_in INT)
RETURN NUMBER IS
product_count NUMBER := 0;
BEGIN
SELECT COUNT(*)
INTO product_count
FROM Product
WHERE c_id = c_id_in;
RETURN product_count;
END;
For execution:-
SELECT get_category_product_count(1) FROM dual;