কম্পিউটার টিউটোরিয়াল

MySQL-এ ইউজার-ডিফাইন্ড ভেরিয়েবল vs লোকাল ভেরিয়েবল: পার্থক্য এবং ব্যবহার


MySQL-এ ইউজার-ডিফাইন্ড ভেরিয়েবল (Session Variable) এবং লোকাল ভেরিয়েবলের পার্থক্য

ইউজার-ডিফাইন্ড ভেরিয়েবল (User-Defined / Session Variable)

  • প্রিফিক্স: @ (যেমন @myVar)
  • সেশন-স্পেসিফিক: একই সেশনে যেকোনো জায়গা থেকে অ্যাক্সেসযোগ্য
  • লুজলি টাইপড (Loosely typed)
  • সেশন শেষ হলে ধ্বংস হয়
  • এক ইউজারের সেশন ভেরিয়েবল অন্য ইউজার দেখে না
  • ইনিশিয়ালাইজ: SET @var = value; বা SELECT @var := value;

লোকাল ভেরিয়েবল (Local Variable)

  • প্রিফিক্স নেই
  • শুধু স্টোরড প্রসিজার, ফাংশন, ট্রিগার-এর ভেতরে ডিক্লেয়ার করা যায়
  • DECLARE কীওয়ার্ড দিয়ে ডিক্লেয়ার: DECLARE varName dataType [DEFAULT value];
  • প্রতিবার প্রসিজার কল হলে নতুন করে ইনিশিয়ালাইজ হয় (DEFAULT মান দিয়ে বা NULL)
  • প্রসিজার শেষ হলে ধ্বংস হয়

মূল পার্থক্য

বিষয়ইউজার-ডিফাইন্ড (@var)লোকাল (DECLARE var)
স্কোপপুরো সেশনশুধু প্রসিজার/ফাংশন ব্লক
পুনরায় ইনিশিয়ালাইজেশননहीं (মান ধরে রাখে)প্রতিবার প্রসিজার কল-এ
দৃশ্যমানতাসেশন-স্পেসিফিকশুধু ব্লক-ভেতর
সিনট্যাক্স@varvar (কোনো @ নেই)

উদাহরণ: স্টোরড প্রসিজারে উভয় একসাথে

প্রসিজার তৈরি

mysql> DELIMITER //
mysql> CREATE PROCEDURE sp_LocalAndUserDefinedVariableDemo()
    -> BEGIN
    ->   DECLARE localVariable INT DEFAULT 10;
    ->   SET localVariable = localVariable + 10;
    ->   SET @userVariable = @userVariable + 10;
    ->   SELECT localVariable;
    ->   SELECT @userVariable;
    -> END;
    -> //
mysql> DELIMITER ;

ইউজার ভেরিয়েবল ইনিশিয়ালাইজ

mysql> SET @userVariable = 10;

১ম কল

mysql> CALL sp_LocalAndUserDefinedVariableDemo();
+---------------+   +---------------+
| localVariable |   | @userVariable |
+---------------+   +---------------+
| 20            |   | 20            |
+---------------+   +---------------+

২য় কল

mysql> CALL sp_LocalAndUserDefinedVariableDemo();
+---------------+   +---------------+
| localVariable |   | @userVariable |
+---------------+   +---------------+
| 20            |   | 30            |
+---------------+   +---------------+

৩য় কল

mysql> CALL sp_LocalAndUserDefinedVariableDemo();
+---------------+   +---------------+
| localVariable |   | @userVariable |
+---------------+   +---------------+
| 20            |   | 40            |
+---------------+   +---------------+

পরিমাণ: লোকাল ভেরিয়েবল প্রতিবার ১০ থেকে শুরু হয় (DEFAULT 10), কিন্তু ইউজার-ডিফাইন্ড ভেরিয়েবল মান ধরে রাখে (10 → 20 → 30 → 40)।

  1. MySQL-এ SELECT ফলাফল কাস্টম ভেরিয়েবলে সংরক্ষণ করা

  2. MySQL-এ ইউজার-ডিফাইনড ভেরিয়েবল ব্যবহার

  3. C-তে স্ট্যাটিক ভেরিয়েবল

  4. মাস্টার পাওয়ারশেল ভেরিয়েবল: দক্ষ স্ক্রিপ্টিংয়ের আপনার গাইড