SQL ASSIGNMENTS
--- QUESTION - 12 ABOUT STORED PROCEDURES IN SQL WITH PARAMETERS ---
CREATE DEFINER=`root`@`localhost` PROCEDURE
`GET_COUNTRY_PAYMENTS`(YEARNUM INT,COUNTRYNAME VARCHAR(30))
BEGIN
SELECT YEAR(PAYMENTS.PAYMENTDATE) AS YEAR,CUSTOMERS.COUNTRY AS
COUNTRY,CONCAT(ROUND(SUM(PAYMENTS.AMOUNT)/1000),"K") AS
TOTAL_AMOUNT
FROM CUSTOMERS INNER JOIN PAYMENTS ON CUSTOMERS.CUSTOMERNUMBER
= PAYMENTS.CUSTOMERNUMBER
WHERE YEAR(PAYMENTDATE) = YEARNUM AND COUNTRY = COUNTRYNAME
GROUP BY YEAR,COUNTRY;
END
--- QUESTION - 16 ABOUT ERROR HANDLING IN SQL ---
STEP – 1 :
CREATE TABLE EMP_BIT(NAME VARCHAR(30),OCCUPTION
VARCHAR(30),WORKING_DATE DATE,WORKING_HOURS INT);
STEP – 2:
CREATE DEFINER=`root`@`localhost` PROCEDURE
`ERROR_HANDLING`(ID INT,NAME VARCHAR(50),EMAIL VARCHAR(50))
BEGIN
DECLARE EXIT HANDLER FOR SQLEXCEPTION SELECT "ERROR
OCCURRED";
INSERT INTO EMP_EH(EMP_ID,EMP_NAME,EMAIL_ADDRESS)
VALUES(ID,NAME,EMAIL);
SELECT * FROM EMP_EH;
END
--- QUESTION-17 ABOUT TRIGGERS ---
STEP – 1:
CREATE TABLE EMP_BIT(NAME VARCHAR(30),OCCUPTION
VARCHAR(30),WORKING_DATE DATE,WORKING_HOURS INT);
STEP – 2:
CREATE DEFINER=`root`@`localhost` TRIGGER
`emp_bit_BEFORE_INSERT` BEFORE INSERT ON `emp_bit` FOR EACH
ROW BEGIN
IF NEW.WORKING_HOURS < 0 THEN
SET NEW.WORKING_HOURS = -(NEW.WORKING_HOURS);
END IF;
END
STEP – 3:
INSERT INTO EMP_BIT VALUES("Robin","Scientist", "2020-10-04",-12),
("Warner","Engineer","2020-10-04", -10),
("Peter", "Actor", "2020-10-04", 13),
("Marco", "Doctor", "2020-10-04", 14),
("Brayden", "Teacher", "2020-10-04", 12),
("Antonio", "Business", "2020-10-04", 11);