1)Create a database named "Employee"
CREATE database Employee;
2) Create a table named "payroll"
CREATE TABLE payroll(name varchar(20),emp_id varchar(10),mobile int(10),email varchar(20),salary int(10),pf int(10),total_work_days int(10),emp_work_days int(10),extra_shifts int(12))
INSERT INTO `payroll` (`name`, `emp_id`, `mobile`, `email`, `salary`, `pf`, `total_work_days`, `emp_work_days`, `extra_shifts`) VALUES ('princy', '21ER', '45645456', 'princy@gmail.com', '20000', '10000', '30', '27', '2'), ('james', '13ER', '65766564', 'james@gmail.com', '50000', '1200', '31', '28','3'),('rosy','24ER','78878787','rosy2gmail.com','23000','1230','31','20','1'),('tina','24ER','76656545','tina@gmail.com','26000','2000','36','23','4'),('infant','25ER','765547097','infant@gmail.com','40000','3000','30','10','2'),('wiky','26ER','2345667','wiky@gmail.com','10000','200','30','12','0'),('dany','27ER','565656554','dany@gmail.com','70000','7000','29','27','1')
3) Create a variety of stored procedures
i. No parameter
BEGIN
CREATE PROCEDURE high salary()
SELECT * FROM payroll WHERE salary>20000;
SELECT * FROM payroll WHERE salary <40000;
END
ii. IN parameter
BEGIN
CREATE PROCEDURE `employee_details`(IN id INT(10))
SELECT emp_id FROM payroll LIMIT id;
SELECT name FROM payroll LIMIT id;
END
iii. OUT parameter
BEGIN
CREATE PROCEDURE `salary_details` (OUT maxsal INT(10))
SELECT max(salary) into maxsal FROM payroll;
SELECT min(salary) into minsal FROM payroll;
END
iv. INOUT parameter
BEGIN
CREATE PROCEDURE `personal_details`(INOUT `y` VARCHAR(20))
SELECT emp_work_days INTO y FROM payroll WHERE emp_id = y;
SELECT total_work_days INTO z FROM payroll WHERE emp_id = z;
END
Another one
Procedure without Parameter
CREATE PROCEDURE get merit student()
SELECT * FROM student_info WHERE marks > 70
CREATE PROCEDURE get_poor_student()
SELECT * FROM student Info WHERE marks < 60
CREATE PROCEDURE 'pickthree'()
SELECT * FROM student info LIMIT 3
CALL get_poor_student()
Procedures with IN Parameter
CREATE PROCEDURE get student(IN var1 INT)
SELECT * FROM student info LIMIT var1;
CALL get_student(4);
Multiple queries
BEGIN
SELECT * FROM student_info WHERE marks > 70 ;
SELECT COUNT(stud_code) AS Total_Student FROM student_info;
END
Procedures with OUT Parameter
CREATE PROCEDURE maxmarks(OUT high INT(10))
SELECT MAX(marks) INTO high FROM student_info
CALL `maxmarks`(@p0); SELECT @p0 AS `high`;
Procedures with INOUT Parameter
CREATE PROCEDURE `displaymarks`(INOUT `var1` VARCHAR(20))
SELECT marks INTO var1 FROM student_info WHERE stud_code = var1
SET @p0='21PDS801';
CALL `displaymarks`(@p0); SELECT @p0 AS `var1`;
Multiple queries
BEGIN
SELECT * FROM student_info WHERE marks > 70 ;
SELECT COUNT(stud_code) AS Total_Student FROM student_info;
END
SHOW PROCEDURE STATUS
SHOW PROCEDURE STATUS WHERE db = 'mystudentdb';
Drop the procedure
DROP PROCEDURE display_marks;

Comments
Post a Comment