Stored Procedure এবং Function তৈরি উদাহরণ

বাস্তব উদাহরণ এবং ব্যবহারিক ডেমো - মারিয়া ডিবি (MariaDB) - Database Tutorials

296

MariaDB-তে Stored Procedure এবং Function ডেটাবেসে নির্দিষ্ট কাজ করার জন্য ব্যবহার করা হয়। Stored Procedure সাধারণত একাধিক SQL স্টেটমেন্টের সঙ্কলন হয়, যা একবার এক্সিকিউট করার পরে প্রয়োজনীয় কাজগুলো সম্পন্ন করে। অন্যদিকে, Function হল একটি কাস্টম SQL ফাংশন যা কোনো নির্দিষ্ট মান রিটার্ন করে।

এখানে, আমরা Stored Procedure এবং Function তৈরির উদাহরণ দেখবো, যার মাধ্যমে আপনি এই দুটি গুরুত্বপূর্ণ ফিচার কীভাবে ব্যবহার করতে পারেন তা বুঝতে পারবেন।


১. Stored Procedure তৈরি

Stored Procedure সাধারণত একাধিক SQL স্টেটমেন্ট বা কাস্টম লজিক একত্রিত করার জন্য ব্যবহৃত হয়, যা বারবার চালানো যায়।

১.১. Stored Procedure উদাহরণ

ধরা যাক, আপনার একটি Employees টেবিল রয়েছে এবং আপনি একটি Stored Procedure তৈরি করতে চান যা একটি নির্দিষ্ট department-এর সমস্ত employee এর তথ্য রিটার্ন করবে।

Employees টেবিলের গঠন কিছুটা এরকম হতে পারে:

CREATE TABLE Employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    department VARCHAR(100),
    salary DECIMAL(10, 2)
);

এখন, একটি Stored Procedure তৈরি করুন যা department অনুসারে কর্মীদের তালিকা ফিরিয়ে দেবে।

DELIMITER CREATEPROCEDUREGetEmployeesByDepartment(INdeptnameVARCHAR(100))BEGINSELECTid,name,department,salaryFROMEmployeesWHEREdepartment=deptname;END

CREATE PROCEDURE GetEmployeesByDepartment(IN dept_name VARCHAR(100))
BEGIN
    SELECT id, name, department, salary
    FROM Employees
    WHERE department = dept_name;
END 

DELIMITER ;

ব্যাখ্যা:

  • DELIMITER </code>:িিিSQLি<codeinline="">;</code>িিিি<codeinline="">;</code>ি,<codeinline="">DELIMITER</code>: স্টোরড প্রোসিডিউরিতে SQL কোডের মধ্যে ডিফল্ট <code inline="">;</code> দিয়ে স্টেটমেন্ট শেষ করা হয়। তবে স্টোরড প্রোসিডিউরিতে <code inline="">;</code> অনেক বেশি ব্যবহৃত হয়, তাই <code inline="">DELIMITER ব্যবহার করে নতুন ডেলিমিটার সেট করা হয়।
  • CREATE PROCEDURE: নতুন একটি Stored Procedure তৈরি করতে ব্যবহৃত হয়।
  • IN dept_name VARCHAR(100): এটি ইনপুট প্যারামিটার হিসাবে dept_name গ্রহন করে।
  • SELECT স্টেটমেন্টের মাধ্যমে নির্দিষ্ট department-এর কর্মীদের তথ্য ফেরত দেওয়া হয়।

১.২. Stored Procedure কল করা

এখন, যদি আপনি HR ডিপার্টমেন্টের কর্মীদের তালিকা দেখতে চান, তবে আপনি এইভাবে Stored Procedure কল করতে পারেন:

CALL GetEmployeesByDepartment('HR');

২. Function তৈরি

MariaDB-তে Function একটি কাস্টম ফাংশন, যা নির্দিষ্ট মান রিটার্ন করে। সাধারণত এটি SQL কুয়েরি বা অ্যালগোরিদমের উপর ভিত্তি করে গণনা বা অন্যান্য কাজ করতে ব্যবহৃত হয়।

২.১. Function উদাহরণ

ধরা যাক, আপনার Employees টেবিল আছে এবং আপনি একটি Function তৈরি করতে চান যা কোনো কর্মীর salary এবং bonus যোগ করে মোট আয় হিসাব করবে।

DELIMITER CREATEFUNCTIONCalculateTotalSalary(empidINT)RETURNSDECIMAL(10,2)BEGINDECLAREtotalsalaryDECIMAL(10,2);DECLAREempsalaryDECIMAL(10,2);DECLAREempbonusDECIMAL(10,2);--GetemployeesalaryandbonusSELECTsalaryINTOempsalaryFROMEmployeesWHEREid=empid;SELECTbonusINTOempbonusFROMEmployeesWHEREid=empid;--CalculatetotalsalarySETtotalsalary=empsalary+empbonus;RETURNtotalsalary;END

CREATE FUNCTION CalculateTotalSalary(emp_id INT)
RETURNS DECIMAL(10, 2)
BEGIN
    DECLARE total_salary DECIMAL(10, 2);
    DECLARE emp_salary DECIMAL(10, 2);
    DECLARE emp_bonus DECIMAL(10, 2);

    -- Get employee salary and bonus
    SELECT salary INTO emp_salary FROM Employees WHERE id = emp_id;
    SELECT bonus INTO emp_bonus FROM Employees WHERE id = emp_id;

    -- Calculate total salary
    SET total_salary = emp_salary + emp_bonus;

    RETURN total_salary;
END 

DELIMITER ;

ব্যাখ্যা:

  • CREATE FUNCTION: একটি ফাংশন তৈরি করতে ব্যবহৃত হয়।
  • RETURNS DECIMAL(10, 2): এটি ফাংশনের আউটপুট টাইপ নির্দেশ করে, যা এই উদাহরণে DECIMAL(10, 2)
  • DECLARE: ফাংশনের মধ্যে লোকাল ভ্যারিয়েবল ঘোষণা করা হয়।
  • SELECT INTO: নির্দিষ্ট কর্মীর salary এবং bonus মান নেওয়া হয়।
  • RETURN: ফাংশনের ফলাফল হিসেবে total_salary রিটার্ন করা হয়।

২.২. Function কল করা

এখন, আপনি যদি কোনো কর্মীর total salary দেখতে চান, তাহলে আপনি এইভাবে Function কল করতে পারবেন:

SELECT CalculateTotalSalary(1);

এখানে, 1 হল কর্মীর ID যাকে আপনি Total Salary হিসাব করতে চান।


৩. Stored Procedure এবং Function এর মধ্যে পার্থক্য

বিষয়Stored ProcedureFunction
রিটার্ন ভ্যালুস্টোরড প্রোসিডিউর সাধারণত কোনো ভ্যালু রিটার্ন করে না।ফাংশন অবশ্যই একটি ভ্যালু রিটার্ন করে।
ব্যবহারএকটি নির্দিষ্ট কাজ বা কোয়েরি সম্পাদন করতে ব্যবহৃত হয়।সাধারণত একটি মান হিসাব বা প্রক্রিয়া সম্পাদন করতে ব্যবহৃত হয়।
CALL করার পদ্ধতিCALL কমান্ড ব্যবহার করে কল করা হয়।SELECT কমান্ডের মধ্যে কল করা হয়।
অপারেশনএকাধিক SQL স্টেটমেন্ট চালাতে পারে।একটি নির্দিষ্ট মান রিটার্ন করার জন্য উপযুক্ত।

সারাংশ

MariaDB-তে Stored Procedure এবং Function দুটি শক্তিশালী ফিচার, যা ডেটাবেসের নির্দিষ্ট কাজগুলো সংকলন করে। Stored Procedure সাধারণত একাধিক SQL কোয়েরি বা লজিক একত্রিত করে কাজ সম্পাদন করে, যখন Function একটি নির্দিষ্ট মান রিটার্ন করে। এই ফিচারগুলো MariaDB-তে ডেটাবেস পরিচালনা আরও সুবিধাজনক এবং দক্ষ করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...