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

MySQL में उपयोगकर्ता द्वारा परिभाषित चर बनाम स्थानीय चर?

<घंटा/>

उपयोगकर्ता परिभाषित चर को सत्र-विशिष्ट चर के रूप में भी जाना जाता है। यह एक प्रकार का शिथिल रूप से टाइप किया गया वैरिएबल है जिसे सत्र में कहीं भी आरंभ किया जा सकता है और इसमें सत्र समाप्त होने तक उपयोगकर्ता परिभाषित चर का मान होता है।

उपयोगकर्ता परिभाषित चर @ प्रतीक के साथ उपसर्ग है। उदाहरण के लिए:

@anyVariableName;

दो दृष्टिकोण हैं जिनके द्वारा आप उपयोगकर्ता द्वारा परिभाषित चर को प्रारंभ कर सकते हैं। आप SET कमांड का उपयोग कर सकते हैं या SELECT क्वेरी का उपयोग कर सकते हैं। पहला तरीका इस प्रकार है:

सेट @anyVariableName=anyValue;

दूसरा तरीका इस प्रकार है:

चुनें @anyVariableName :=anyValue;

यदि आप SELECT क्वेरी में कोलन (:) का उपयोग नहीं करते हैं तो यह इसे अभिव्यक्ति के रूप में मूल्यांकन करता है। परिणाम या तो सही होगा या गलत:

mysql> @m=10 चुनें;

निम्न आउटपुट है:

<पूर्व>+----------+| @एम=10 |+----------+| 1 |+----------+1 पंक्ति सेट में (0.00 सेकंड)

स्थानीय चर का उपयोग संग्रहीत प्रक्रिया, कार्य आदि में किया जा सकता है। इसका उपयोग DECLARE कीवर्ड के साथ किया जाता है। उपयोगकर्ता द्वारा परिभाषित चर जैसे @ उपसर्ग की आवश्यकता नहीं है।

वाक्य रचना स्थानीय चर के लिए इस प्रकार है।

अपना वैरिएबलनाम डेटा टाइप घोषित करें;

नोट :स्थानीय चर और उपयोगकर्ता-परिभाषित चर के बीच मुख्य अंतर यह है कि जब भी सत्र-विशिष्ट चर या उपयोगकर्ता-परिभाषित चर को NULL के साथ पुन:प्रारंभ नहीं किया जाता है, तो स्थानीय चर को हर बार NULL मान के साथ पुन:प्रारंभ किया जाता है। एक उपयोगकर्ता द्वारा निर्धारित एक उपयोगकर्ता-परिभाषित चर अन्य उपयोगकर्ता द्वारा नहीं देखा जा सकता है। किसी उपयोगकर्ता के बाहर निकलने पर किसी दिए गए उपयोगकर्ता के लिए जो भी सत्र चर स्वचालित रूप से नष्ट हो जाता है।

यहां संग्रहीत कार्यविधि के साथ सत्र-विशिष्ट चर और स्थानीय चर का डेमो दिया गया है। स्थानीय चर और उपयोगकर्ता-परिभाषित चर के साथ संग्रहीत कार्यविधि बनाने की क्वेरी इस प्रकार है:

mysql> DELIMITER //mysql> क्रिएट प्रोसीजर sp_LocalAndUserDefinedVariableDemo() -> BEGIN -> DECLARE localVariable int default 10; -> स्थानीय वैरिएबल सेट करें =स्थानीय वैरिएबल + 10; -> सेट @userVariable=@userVariable+10; -> स्थानीय चर चुनें; -> @userVariable चुनें; -> अंत; -> // क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित हुई हैं (0.39 सेकंड)mysql> DELIMITER;

अब उपयोगकर्ता द्वारा परिभाषित चर के लिए मान सेट करें। क्वेरी इस प्रकार है:

mysql> SET @userVariable=10;क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.00 सेकंड)

अब संग्रहीत प्रक्रिया को कॉल करें। पहली कॉल में, उपयोगकर्ता द्वारा परिभाषित चर 10+10=20 होगा जबकि स्थानीय चर 10+10=20 होगा।

कॉल कमांड का उपयोग करके संग्रहीत कार्यविधि को कॉल करें:

mysql> कॉल करें sp_LocalAndUserDefinedVariableDemo();

निम्न आउटपुट है:

<पूर्व>+---------------+| स्थानीय चर |+---------------+| 20 |+---------------+1 पंक्ति सेट में (0.32 सेकंड)+---------------+| @userVariable |+---------------+| 20 |+---------------+1 पंक्ति सेट में (0.34 सेकंड) क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.36 सेकंड)

दूसरी कॉल में, उपयोगकर्ता द्वारा परिभाषित चर का मान 20 होगा और 20+10=30 की तरह 10 जोड़ देगा जबकि स्थानीय चर को फिर से 10 के साथ फिर से शुरू किया जाएगा और 10 को 10+10=20 की तरह जोड़ा जाएगा।

संग्रहीत कार्यविधि को कॉल करें और नमूना आउटपुट की जांच करें:

mysql> कॉल करें sp_LocalAndUserDefinedVariableDemo();

निम्न आउटपुट है:

<पूर्व>+---------------+| स्थानीय चर |+---------------+| 20 |+---------------+1 पंक्ति सेट में (0.00 सेकंड)+---------------+| @userVariable |+---------------+| 30 |+---------------+1 पंक्ति सेट में (0.01 सेकंड) क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.02 सेकंड)

तीसरे कॉल में, उपयोगकर्ता द्वारा परिभाषित वैरिएबल का मान 30 होगा और 30+10=40 की तरह 10 जोड़ देगा जबकि स्थानीय वैरिएबल को फिर से 10 के साथ फिर से शुरू किया जाएगा और 10 को 10+10=20 की तरह जोड़ा जाएगा।

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


  1. MySQL में उपयोगकर्ता-परिभाषित चर का उपयोग करना

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

  1. C . में स्थिर चर

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

  1. पावरशेल में चर

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