1. MySQL चरों का अवलोकन
MySQL में चरों की भूमिका और लाभ
MySQL चर उपयोगी उपकरण हैं जो आपको एक क्वेरी के भीतर मान संग्रहीत करने और उन्हें कई क्वेरीज़ में पुन: उपयोग करने की अनुमति देते हैं। इससे एक ही डेटा को बार-बार प्राप्त करने की आवश्यकता समाप्त हो जाती है, जिससे SQL स्टेटमेंट्स साफ-सुथरे और अधिक कुशल हो जाते हैं।
MySQL में चरों के दो मुख्य प्रकार हैं:
- उपयोगकर्ता-परिभाषित चर : एक विशिष्ट सत्र के भीतर उपयोग किए जाने वाले अस्थायी चर।
- सिस्टम चर : MySQL सर्वर व्यवहार को नियंत्रित करने वाले कॉन्फ़िगरेशन चर।
इस खंड में, हम पहले उपयोगकर्ता-परिभाषित चरों को विस्तार से देखेंगे, उसके बाद सिस्टम चर और उनका उपयोग कैसे करें।
2. MySQL चरों के प्रकार
2.1 उपयोगकर्ता-परिभाषित चर
उपयोगकर्ता-परिभाषित चर एक ही सत्र के भीतर उपयोग किए जाते हैं और अन्य क्लाइंट्स द्वारा सुलभ नहीं होते। इससे एक ही सत्र के भीतर चरों का सुरक्षित पुन: उपयोग सुनिश्चित होता है। चरों को @ प्रतीक का उपयोग करके घोषित किया जाता है।
उदाहरण:
SET @user_id = 123;
SELECT @user_id;
यहाँ, SET का उपयोग चर को परिभाषित करने के लिए किया जाता है, और उसके बाद इसकी वैल्यू को बाद की क्वेरीज़ में पुन: उपयोग किया जा सकता है। मान असाइन करने का एक अन्य तरीका SELECT INTO का उपयोग करना है।
SELECT name INTO @user_name FROM users WHERE id = @user_id;
2.2 सिस्टम चर
सिस्टम चर MySQL सर्वर व्यवहार को कॉन्फ़िगर करने के लिए उपयोग किए जाते हैं। उदाहरण के लिए, वे अधिकतम कनेक्शनों या टाइमआउट सेटिंग्स को नियंत्रित कर सकते हैं।
उदाहरण:
SHOW VARIABLES LIKE 'max_connections';
यह क्वेरी MySQL सर्वर पर अनुमत समवर्ती कनेक्शनों की अधिकतम संख्या प्रदर्शित करती है। सिस्टम चरों को SET कमांड का उपयोग करके बदला जा सकता है, चाहे सर्वर-व्यापी हो या सत्र-प्रति।

3. चरों को घोषित करना और उपयोग करना
3.1 चरों को घोषित करना
चरों को SET या SELECT INTO का उपयोग करके घोषित किया जा सकता है। SET सरल है और आपको वैल्यू सीधे असाइन करने की अनुमति देता है।
उदाहरण:
SET @user_name = 'Sato';
SELECT @user_name;
दूसरी ओर, SELECT INTO आपको क्वेरी परिणामों को सीधे एक चर में संग्रहीत करने की अनुमति देता है।
उदाहरण:
SELECT name INTO @user_name FROM users WHERE id = 123;
3.2 क्वेरीज़ में चरों का उपयोग
चरों को क्वेरीज़ के भीतर पैरामीटर्स के रूप में पुन: उपयोग किया जा सकता है। उदाहरण के लिए, निम्नलिखित क्वेरी @user_id चर का उपयोग करके उपयोगकर्ता जानकारी प्राप्त करती है।
उदाहरण:
SELECT * FROM users WHERE id = @user_id;
इससे आपको एक ही सत्र के भीतर कई क्वेरीज़ में डेटा को बनाए रखने की अनुमति मिलती है।
4. सामान्य उपयोग के मामले
4.1 क्वेरी अनुकूलन
बार-बार उपयोग की जाने वाली वैल्यूज़ को चरों में संग्रहीत करके और बाद की क्वेरीज़ में उन्हें पुन: उपयोग करके, आप प्रदर्शन में सुधार कर सकते हैं।
उदाहरण:
SELECT MAX(id) INTO @max_id FROM users;
यहाँ, अधिकतम उपयोगकर्ता आईडी को एक चर में संग्रहीत किया जाता है और बाद की क्वेरीज़ में पुन: उपयोग किया जाता है।
4.2 तिथि और समय संचालन
चर समय-आधारित गणनाओं और ऐतिहासिक डेटा प्रबंधन को संभालना आसान बनाते हैं।
उदाहरण:
SELECT NOW() INTO @current_time;
SELECT @current_time - INTERVAL 1 DAY INTO @yesterday;
इस उदाहरण में, वर्तमान टाइमस्टैंप और एक समय ऑफ़सेट को चरों में संग्रहीत किया जाता है ताकि अन्य क्वेरीज़ में उनका पुन: उपयोग किया जा सके।

5. संग्रहीत प्रक्रियाओं में चरों का उपयोग
संग्रहीत प्रक्रियाओं के अंदर चर आपको जटिल लॉजिक को कुशलतापूर्वक संभालने की अनुमति देते हैं, जिससे कोड पुन: उपयोगिता में सुधार होता है। निम्नलिखित उपयोगकर्ता जानकारी प्राप्त करने के लिए एक संग्रहीत प्रक्रिया का उदाहरण है:
उदाहरण:
CREATE PROCEDURE get_user_info(IN user_id INT, OUT user_name VARCHAR(255))
BEGIN
SELECT name INTO user_name FROM users WHERE id = user_id;
END;
इस प्रक्रिया को कॉल करने से आपको एक उपयोगकर्ता आईडी को इनपुट के रूप में पास करने और परिणाम को एक चर में संग्रहीत करने की अनुमति मिलती है।
6. चरों का उपयोग करने के लिए सर्वोत्तम अभ्यास
6.1 प्रारंभिकरण का महत्व
चरों का उपयोग करने से पहले हमेशा उन्हें प्रारंभ करें। अप्रारंभिकृत चर NULL लौटा सकते हैं। यह विशेष रूप से महत्वपूर्ण है जब एक ही चर को कई क्वेरीज़ में उपयोग किया जाता है।
6.2 सत्र स्कोप प्रबंधन
उपयोगकर्ता-परिभाषित चर केवल वर्तमान सत्र के भीतर ही वैध होते हैं। जब सत्र समाप्त होता है, तो चर रीसेट हो जाते हैं। यदि आपको सत्रों के पार स्थिरता की आवश्यकता है, तो अस्थायी तालिकाओं जैसे विकल्पों पर विचार करें।

7. उन्नत तकनीकें
7.1 डेटा प्रसंस्करण के लिए कर्सर का उपयोग
बड़े डेटासेट के साथ काम करते समय, आप क्वेरी परिणामों को पंक्ति दर पंक्ति संसाधित करने के लिए कर्सर का उपयोग कर सकते हैं। इससे आपको मानों को चरों में संग्रहीत करने और उन्हें क्रमिक रूप से संसाधित करने की अनुमति मिलती है।
उदाहरण:
DECLARE cursor_user CURSOR FOR SELECT id, name FROM users;
कर्सर के साथ, आप डेटा की कई पंक्तियों को कुशलतापूर्वक संसाधित कर सकते हैं।
8. निष्कर्ष
MySQL चरों का उपयोग करके, आप क्वेरी को अधिक कुशलतापूर्वक प्रबंधित कर सकते हैं, जिससे पठनीयता और प्रदर्शन दोनों में सुधार होता है। उपयोगकर्ता-परिभाषित और सिस्टम चरों का उचित उपयोग अधिक परिष्कृत डेटा संचालन को सक्षम बनाता है। विशेष रूप से, संग्रहीत प्रक्रियाओं और कर्सर जैसी उन्नत तकनीकों के साथ चरों को जोड़ने से MySQL डेटा प्रसंस्करण को बहुत बढ़ाया जा सकता है।


