Stored Procedure তৈরি এবং ব্যবহারের উদাহরণ

MySQL Stored Procedure এবং Functions - মাইএসকিউএল (MySQL) - Database Tutorials

301

Stored Procedure হল MySQL ডেটাবেসে সংরক্ষিত একটি সিরিজ SQL স্টেটমেন্ট যা একটি নির্দিষ্ট কাজ বা কার্যকলাপ সম্পাদন করে। Stored Procedure তৈরি করার মাধ্যমে আপনি কোড পুনরায় ব্যবহারযোগ্য করে তুলতে পারেন এবং ডেটাবেসে কিছু নির্দিষ্ট লজিক সংরক্ষণ করতে পারেন। এটি কোডের পুনরাবৃত্তি কমিয়ে দেয় এবং ডেটাবেসের পারফরম্যান্স উন্নত করে।

MySQL এ Stored Procedure তৈরি এবং ব্যবহারের জন্য আপনাকে নিম্নলিখিত পদক্ষেপগুলি অনুসরণ করতে হবে।


1. Stored Procedure তৈরি করা

Stored Procedure তৈরি করতে CREATE PROCEDURE কমান্ড ব্যবহার করা হয়। একটি Stored Procedure ডেটাবেসে সংরক্ষিত থাকে এবং আপনি যেকোনো সময় এটি কল করতে পারেন।

Stored Procedure তৈরি করার Syntax:

CREATE PROCEDURE procedure_name (parameter1 datatype, parameter2 datatype, ...)
BEGIN
    -- SQL statements
END;
  • procedure_name: এটি প্রোসিজারের নাম।
  • parameter: যদি প্রোসিজারের আর্গুমেন্ট থাকে, তবে এখানে তাদের নাম এবং ডেটা টাইপ উল্লেখ করা হবে।
  • SQL statements: এখানে আপনার প্রোসিজারের কাজের জন্য SQL কুয়েরি বা লজিক থাকবে।

2. Stored Procedure এর উদাহরণ

** উদাহরণ 1: Simple Stored Procedure**

এখানে একটি Stored Procedure তৈরি করা হলো যা একটি employees টেবিল থেকে নির্দিষ্ট department এর কর্মচারীদের নাম দেখাবে।

CREATE PROCEDURE GetEmployeesByDepartment (IN dept_name VARCHAR(50))
BEGIN
    SELECT first_name, last_name
    FROM employees
    WHERE department = dept_name;
END;

এটি একটি Stored Procedure তৈরি করবে যার নাম GetEmployeesByDepartment। এটি একটি ইনপুট প্যারামিটার dept_name গ্রহণ করবে এবং সেই ডিপার্টমেন্টের সকল কর্মচারীর নাম রিটার্ন করবে।

ব্যাখ্যা:

  • IN dept_name VARCHAR(50): এটি ইনপুট প্যারামিটার, যেখানে ডিপার্টমেন্টের নাম পাঠানো হবে।
  • SELECT first_name, last_name FROM employees WHERE department = dept_name;: এটি কর্মচারীদের নাম দেখানোর জন্য একটি SQL কুয়েরি।

3. Stored Procedure কল করা

একবার Stored Procedure তৈরি করার পর, আপনি এটি CALL কমান্ড ব্যবহার করে কল করতে পারবেন।

Stored Procedure কল করার Syntax:

CALL procedure_name (parameter1, parameter2, ...);

উদাহরণ 1: Stored Procedure কল করা

CALL GetEmployeesByDepartment('HR');

এটি employees টেবিল থেকে HR ডিপার্টমেন্টের সকল কর্মচারীর নাম রিটার্ন করবে।


4. Stored Procedure এর সাথে OUT প্যারামিটার ব্যবহার করা

OUT প্যারামিটার ব্যবহার করে আমরা Stored Procedure এর মধ্যে গণনা বা ফলাফল বের করে কল করা টেবিল বা অ্যাপ্লিকেশনকে ফেরত পাঠাতে পারি।

** উদাহরণ 2: OUT প্যারামিটার ব্যবহার**

CREATE PROCEDURE GetEmployeeCountByDepartment (IN dept_name VARCHAR(50), OUT emp_count INT)
BEGIN
    SELECT COUNT(*)
    INTO emp_count
    FROM employees
    WHERE department = dept_name;
END;

এটি একটি Stored Procedure তৈরি করবে যার নাম GetEmployeeCountByDepartment। এটি দুটি প্যারামিটার নেবে:

  • dept_name (IN প্যারামিটার): ডিপার্টমেন্টের নাম।
  • emp_count (OUT প্যারামিটার): নির্দিষ্ট ডিপার্টমেন্টের কর্মচারীর সংখ্যা বের করে এটি ফেরত পাঠাবে।

Stored Procedure কল করা এবং OUT প্যারামিটার ব্যবহারের উদাহরণ:

-- Declare a variable to hold the employee count
SET @emp_count = 0;

-- Call the stored procedure
CALL GetEmployeeCountByDepartment('IT', @emp_count);

-- Retrieve the result
SELECT @emp_count AS total_employees;

এটি IT ডিপার্টমেন্টের কর্মচারীদের সংখ্যা বের করবে এবং @emp_count ভেরিয়েবলে সেই মান রাখবে। পরে, SELECT কমান্ড দ্বারা সেই ফলাফল দেখা যাবে।


5. Stored Procedure এর মধ্যে লুপ ব্যবহার

MySQL Stored Procedure-এ লুপ ব্যবহার করা সম্ভব, যা একাধিক রেকর্ড প্রক্রিয়া করার জন্য উপকারী হতে পারে।

উদাহরণ 3: লুপ ব্যবহার করে প্রতিটি কর্মচারীর নাম প্রিন্ট করা

CREATE PROCEDURE PrintEmployeeNames ()
BEGIN
    DECLARE done INT DEFAULT 0;
    DECLARE emp_name VARCHAR(50);
    DECLARE emp_cursor CURSOR FOR 
        SELECT CONCAT(first_name, ' ', last_name) FROM employees;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

    OPEN emp_cursor;

    read_loop: LOOP
        FETCH emp_cursor INTO emp_name;
        IF done THEN
            LEAVE read_loop;
        END IF;
        SELECT emp_name;
    END LOOP;

    CLOSE emp_cursor;
END;

এটি একটি Stored Procedure তৈরি করবে যার মাধ্যমে employees টেবিল থেকে প্রতিটি কর্মচারীর নাম আনা হবে এবং তা প্রিন্ট করা হবে। এখানে একটি cursor ব্যবহার করা হয়েছে, যা একে একে প্রতিটি রেকর্ড নির্বাচন করে প্রিন্ট করবে।


6. Stored Procedure এ Error Handling

MySQL Stored Procedure এ আপনি error handling ব্যবহার করে প্রোসেসের কোনো ত্রুটি হলে তা শনাক্ত এবং মোকাবেলা করতে পারেন।

উদাহরণ 4: Error Handling

CREATE PROCEDURE UpdateEmployeeSalary (IN emp_id INT, IN new_salary DECIMAL(10,2))
BEGIN
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
    BEGIN
        SELECT 'An error occurred while updating the salary';
    END;

    UPDATE employees
    SET salary = new_salary
    WHERE employee_id = emp_id;
    
    SELECT 'Salary updated successfully';
END;

এটি একটি Stored Procedure তৈরি করবে যা কর্মচারীর বেতন আপডেট করবে। যদি কোনো ত্রুটি ঘটে, তবে এটি একটি কাস্টম ত্রুটি বার্তা দেখাবে।


সারাংশ

  • Stored Procedure হল MySQL ডেটাবেসে সংরক্ষিত SQL কোডের একটি সেট, যা নির্দিষ্ট কাজ করার জন্য তৈরি হয়।
  • এটি ডেটাবেসে সংরক্ষিত থাকে এবং পুনরায় কল করা যায়, যা কোডের পুনরাবৃত্তি কমায় এবং কোড পরিচালনাকে সহজ করে।
  • Stored Procedure তে IN, OUT, এবং INOUT প্যারামিটার ব্যবহার করা হয়, যা আপনাকে ইনপুট, আউটপুট এবং দুটি সংমিশ্রণ প্যারামিটার গ্রহণ করতে সক্ষম করে।
  • Cursor, Loop, এবং Error Handling এর মতো আরও উন্নত বৈশিষ্ট্য ব্যবহারের মাধ্যমে, আপনি জটিল এবং প্রয়োজনীয় কার্যকারিতা অর্জন করতে পারেন।

Stored Procedure ডেটাবেসের লজিক এবং কর্মক্ষমতা উন্নত করতে একটি শক্তিশালী টুল।

Content added By
Promotion

Are you sure to start over?

Loading...