Stored Procedures & Functions
64. What is a stored procedure?
Stored Procedure হলো একগুচ্ছ SQL স্টেটমেন্টের একটি কালেকশন বা গ্রুপ, যা ডাটাবেজে একটি নির্দিষ্ট নামে সেভ করে রাখা হয়। সহজ কথায়, এটি ডাটাবেজের ভেতর তৈরি করা একটি Function-এর মতো, যা আপনি একবার লিখে রাখলে বারবার কল করে ব্যবহার করতে পারেন।
Technical Definition: Stored Procedure হলো database-এ সংরক্ষিত reusable routine। এটি parameter নিতে এবং result/output দিতে পারে। Engine execution plan cache করতে পারে, কিন্তু procedure হওয়াই ad-hoc query-এর চেয়ে দ্রুত হওয়ার guarantee নয়।
Basic Stored Procedure Syntax (MySQL):
No parameter:
সব active কর্মচারীদের লিস্ট দেখার জন্য একটি সহজ procedure:
Code ExampleSQLClick to view details
DELIMITER //
CREATE PROCEDURE GetAllActiveEmployees()
BEGIN
SELECT * FROM employees WHERE status = 'ACTIVE';
END //
DELIMITER ;
-- কল করার নিয়ম:
CALL GetAllActiveEmployees();
IN Parameter:
নির্দিষ্ট ডিপার্টমেন্টের কর্মচারীদের বেতন আপডেট করার জন্য:
Code ExampleSQLClick to view details
DELIMITER //
CREATE PROCEDURE UpdateDeptSalary(
IN dept_name VARCHAR(50),
IN increment_pct DECIMAL(5,2)
)
BEGIN
UPDATE employees
SET salary = salary + (salary * increment_pct / 100)
WHERE department = dept_name;
END //
DELIMITER ;
-- কল করার নিয়ম (IT ডিপার্টমেন্টের বেতন ৫% বৃদ্ধি):
CALL UpdateDeptSalary('IT', 5.00);
OUT Parameter:
টোটাল কর্মচারীর সংখ্যা একটি ভ্যারিয়েবলে ব্যাক পাওয়ার জন্য:
Code ExampleSQLClick to view details
DELIMITER //
CREATE PROCEDURE GetEmployeeCount(OUT total INT)
BEGIN
SELECT COUNT(*) INTO total FROM employees;
END //
DELIMITER ;
-- কল করার নিয়ম:
CALL GetEmployeeCount(@employee_total);
SELECT @employee_total;