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;
यहाँ, अधिकतम प्रयोगकर्ता ID लाई भेरिएबलमा संग्रह गरी पछि आउने क्वेरीहरूमा पुन: प्रयोग गरिएको छ।
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;
यो प्रोसीजरलाई कल गर्दा प्रयोगकर्ता ID इनपुटको रूपमा पास गर्न सकिन्छ र परिणामलाई भेरिएबलमा संग्रह गर्न सकिन्छ।
6. भेरिएबल प्रयोगका उत्तम अभ्यासहरू
6.1 आरम्भिकरणको महत्व
भेरिएबल प्रयोग गर्नु अघि सधैं आरम्भिकरण गर्नुहोस्। आरम्भ नहुनु भएका भेरिएबलहरूले NULL फिर्ता गर्न सक्छन्। यो विशेष गरी एउटै भेरिएबललाई धेरै क्वेरीहरूमा प्रयोग गर्दा महत्त्वपूर्ण हुन्छ।
6.2 सत्र स्कोप व्यवस्थापन
User-defined variables are valid only within the current session. When the session ends, the variables are reset. If you need persistence across sessions, consider alternatives such as temporary tables.

७. उन्नत प्रविधिहरू
७.१ डेटा प्रशोधनको लागि कर्सर प्रयोग
When working with large datasets, you can use cursors to process query results row by row. This allows you to store values into variables and process them sequentially.
उदाहरण:
DECLARE cursor_user CURSOR FOR SELECT id, name FROM users;
With cursors, you can efficiently process multiple rows of data.
८. निष्कर्ष
By using MySQL variables, you can manage queries more efficiently, improving both readability and performance. Proper use of user-defined and system variables enables more refined data operations. In particular, combining variables with advanced techniques such as stored procedures and cursors can greatly enhance MySQL data processing.


