Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में यूजर-डिफाइंड वेरिएबल vs लोकल वेरिएबल: अंतर समझें

MySQL में दो प्रकार के वेरिएबल होते हैं: **यूजर-डिफाइंड (सत्र-विशिष्ट) वेरिएबल** और **लोकल वेरिएबल**। इनके स्कोप, जीवनचक्र और उपयोग में महत्वपूर्ण अंतर हैं।

यूजर-डिफाइंड वेरिएबल (सत्र-विशिष्ट)

विशेषताएं

  • प्रीफिक्स: @ (उदाहरण: @myVar)
  • स्कोप: वर्तमान सत्र/कनेक्शन
  • जीवनचक्र: सत्र समाप्त होने तक मान बरकरार रहता है
  • टाइपिंग: ढीली टाइपिंग (स्वचालित रूपांतरण)
  • दृश्यता: केवल उसी सत्र में दिखते हैं, अन्य उपयोगकर्ता नहीं देख सकते

आरंभीकरण के दो तरीके

-- तरीका 1: SET कमांड
SET @myVar = 10;

-- तरीका 2: SELECT में := ऑपरेटर
SELECT @myVar := 10;

⚠️ सामान्य गलती

SELECT @m = 10;  -- यह तुलना है! परिणाम: 1 (TRUE)

:= असाइनमेंट है, = तुलना है (SELECT में)।

लोकल वेरिएबल

विशेषताएं

  • कोई प्रीफिक्स नहीं (उदाहरण: myVar)
  • स्कोप: स्टोर्ड प्रोसीजर/फंक्शन/ट्रिगर ब्लॉक (BEGIN...END)
  • जीवनचक्र: प्रत्येक कॉल पर पुनः आरंभ (NULL या डिफॉल्ट मान)
  • घोषणा: DECLARE आवश्यक
  • टाइपिंग: सख्त (डेटा टाइप घोषित करना पड़ता है)

सिंटैक्स

DECLARE yourVariableName DATA_TYPE [DEFAULT default_value];

मुख्य अंतर

विशेषतायूजर-डिफाइंड (@var)लोकल (DECLARE)
स्कोपसत्र (कनेक्शन)BEGIN...END ब्लॉक
जीवनचक्रसत्र समाप्ति तकप्रत्येक कॉल पर रीसेट
प्रीफिक्स@ आवश्यककोई नहीं
घोषणाआवश्यक नहींDECLARE आवश्यक
डेटा टाइपनहीं (ढीला)हाँ (सख्त)
दृश्यतासत्र-निजीब्लॉक-निजी
उपयोग स्थानकहीं भी सत्र मेंकेवल प्रोसीजर/फंक्शन/ट्रिगर में

व्यावहारिक डेमो: स्टोर्ड प्रोसीजर में दोनों

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

-- यूजर वेरिएबल सेट करें
SET @userVariable = 10;

-- पहली कॉल
CALL sp_LocalAndUserDefinedVariableDemo();
-- localVariable: 20 (10+10)
-- @userVariable: 20 (10+10)

-- दूसरी कॉल
CALL sp_LocalAndUserDefinedVariableDemo();
-- localVariable: 20 (फिर से 10+10, रीसेट हुआ)
-- @userVariable: 30 (20+10, मान बरकरार)

-- तीसरी कॉल
CALL sp_LocalAndUserDefinedVariableDemo();
-- localVariable: 20 (फिर से 10+10)
-- @userVariable: 40 (30+10)

कब क्या उपयोग करें?

यूजर-डिफाइंड वेरिएबल (@var) उपयोग करें जब:

  • सत्र के दौरान मान साझा करना हो
  • कई क्वेरी/प्रोसीजर के बीच मान पास करना हो
  • त्वरित गणना/डीबगिंग के लिए

लोकल वेरिएबल (DECLARE) उपयोग करें जब:

  • स्टोर्ड प्रोसीजर/फंक्शन में अस्थायी गणना
  • प्रत्येक कॉल पर स्वच्छ स्थिति चाहिए
  • सख्त टाइपिंग आवश्यक हो
  • कोड पठनीयता और रखरखाव

नोट

  • यूजर वेरिएबल सत्र समाप्त होने पर नष्ट हो जाते हैं
  • एक उपयोगकर्ता का @var दूसरा उपयोगकर्ता नहीं देख सकता
  • MySQL 8.0+ में SET PERSIST से ग्लोबल वेरिएबल भी सेट कर सकते हैं
  1. - MySQL में उपयोगकर्ता-परिभाषित वेरिएबल का उपयोग करना

    आइए समझते हैं कि उपयोगकर्ता वेरिएबल क्या हैं और MySQL में उनका उपयोग कैसे किया जा सकता है। हम नियम भी देखेंगे: उपयोगकर्ता वेरिएबल को @var_name के रूप में लिखा जाता है। यहां, var_name वेरिएबल नाम को संदर्भित करता है, जिसमें अल्फान्यूमेरिक कैरेक्टर, ., _, और $ होते हैं। एक उपयोगकर्ता वेरिएबल नाम में

  1. - C में स्टेटिक वेरिएबल्स

    स्टेटिक वेरिएबल्स केवल एक बार इनिशियलाइज़ किए जाते हैं। कंपाइलर प्रोग्राम के अंत तक वेरिएबल के साथ बना रहता है। स्टेटिक वेरिएबल्स को फ़ंक्शन के अंदर या बाहर परिभाषित किया जा सकता है। वे ब्लॉक के लिए लोकल होते हैं। स्टेटिक वेरिएबल्स का डिफ़ॉल्ट मान शून्य होता है। स्टेटिक वेरिएबल्स प्रोग्राम के एक्ज़ी

  1. - पावरशेल वेरिएबल में महारत: कुशल स्क्रिप्टिंग के लिए आपका गाइड

    कंप्यूटर साइंस (और कैज़ुअल कंप्यूटिंग) में, एक वेरिएबल मेमोरी में एक स्थान है जो बाद में उपयोग के लिए मनमाना जानकारी रखता है। दूसरे शब्दों में, यह आपके लिए डेटा डालने और निकालने के लिए एक अस्थायी स्टोरेज कंटेनर है। बैश शेल में, वह डेटा एक शब्द (कंप्यूटर भाषा में एक स्ट्रिंग) या एक संख्या (एक इंटीजर)