SQL वैरिएबल: SQL सर्वर वैरिएबल घोषित करें, सेट करें और चुनें
SQL सर्वर में वेरिएबल क्या है?
MS SQL में, वेरिएबल वह ऑब्जेक्ट है जो मेमोरी लोकेशन के लिए प्लेसहोल्डर के रूप में कार्य करता है। वेरिएबल एकल डेटा मान रखता है।
SQL में चर प्रकार: स्थानीय, वैश्विक
MS SQL में दो प्रकार के वेरिएबल होते हैं:
- स्थानीय चर
- वैश्विक चर.
हालाँकि, उपयोगकर्ता केवल स्थानीय चर ही बना सकता है।
नीचे दिया गया चित्र दो प्रकार के चर उपलब्ध होने की व्याख्या करता है एमएस एसक्यूएल सर्वर.
स्थानीय चर
- उपयोगकर्ता स्थानीय चर घोषित करता है।
- डिफ़ॉल्ट रूप से, स्थानीय चर इससे शुरू होता है @.
- प्रत्येक स्थानीय चर क्षेत्र में निम्नलिखित प्रतिबंध हैं: वर्तमान बैच या प्रक्रिया किसी भी सत्र के भीतर.
वैश्विक चर
- सिस्टम वैश्विक चर को बनाए रखता है। उपयोगकर्ता उन्हें घोषित नहीं कर सकता।
- वैश्विक चर से शुरू होता है @@
- यह संग्रहीत करता है सत्र से संबंधित जानकारी.
SQL में किसी चर को कैसे घोषित करें?
- बैच या प्रक्रिया में किसी भी चर का उपयोग करने से पहले, आपको चर घोषित करें.
- DECLARE कमांड का उपयोग उस वेरिएबल को घोषित करने के लिए किया जाता है जो मेमोरी लोकेशन के लिए प्लेसहोल्डर के रूप में कार्य करता है।
- एक बार घोषणा हो जाने के बाद ही किसी चर का उपयोग बैच या प्रक्रिया के अगले भाग में किया जा सकता है।
TSQL सिंटैक्स:
DECLARE { @LOCAL_VARIABLE[AS] data_type [ = value ] }
नियम:
- घोषणा करते समय आरंभीकरण एक वैकल्पिक चीज़ है।
- डिफ़ॉल्ट रूप से, DECLARE चर को NULL पर आरंभीकृत करता है।
- कीवर्ड 'AS' का प्रयोग वैकल्पिक है।
- एक से अधिक स्थानीय चर घोषित करने के लिए, पहले स्थानीय चर परिभाषा के बाद अल्पविराम का उपयोग करें, और फिर अगले स्थानीय चर नाम को परिभाषित करें और डाटा प्रकार.
चर घोषित करने के उदाहरण
प्रश्न: 'AS' के साथ
DECLARE @COURSE_ID AS INT;
प्रश्न: 'AS' के बिना
DECLARE @COURSE_NAME VARCHAR (10);
प्रश्न: दो चर घोषित करें
DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);
SQL वेरिएबल को मान निर्दिष्ट करना
आप निम्नलिखित में किसी चर को मान निर्दिष्ट कर सकते हैं तीन तरीके:
- चर घोषणा के दौरान DECLARE कीवर्ड का उपयोग करें।
- SET का उपयोग करना
- SELECT का उपयोग करना
आइये तीनों तरीकों पर विस्तार से नजर डालें:
चर घोषणा के दौरान DECLARE कीवर्ड का उपयोग करना
टी-एसक्यूएल सिंटैक्स:
DECLARE { @Local_Variable [AS] Datatype [ = value ] }
यहाँ, डेटाटाइप के बाद हम '=' का उपयोग कर सकते हैं, उसके बाद मान निर्दिष्ट किया जा सकता है
प्रश्न:
DECLARE @COURSE_ID AS INT = 5 PRINT @COURSE_ID
SQL SET VARIABLE का उपयोग करना
कभी-कभी हम घोषणा और आरंभीकरण को अलग रखना चाहते हैं। SET का उपयोग चर घोषित करने के बाद, चर को मान निर्दिष्ट करने के लिए किया जा सकता है। नीचे SET का उपयोग करके मान निर्दिष्ट करने के विभिन्न तरीके दिए गए हैं:
उदाहरण: SET का उपयोग करके किसी चर को मान निर्दिष्ट करना
सिंटेक्स:
DECLARE @Local_Variable <Data_Type> SET @Local_Variable = <Value>
प्रश्न:
DECLARE @COURSE_ID AS INT SET @COURSE_ID = 5 PRINT @COURSE_ID
उदाहरण: को एक मान निर्दिष्ट करें एकाधिक चर SET का उपयोग करें.
सिंटेक्स:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>, SET @Local_Variable_1 = <Value_1> SET @Local_Variable_2 = <Value_2>
नियम: एक SET कीवर्ड का उपयोग केवल एक मान निर्दिष्ट करने के लिए किया जा सकता है एक चर.
प्रश्न:
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SET @COURSE_ID = 5 SET @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
उदाहरण: किसी चर को मान निर्दिष्ट करना स्केलर सबक्वेरी SET का उपयोग करना
सिंटेक्स:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)
नियम:
- प्रश्न को कोष्ठक में रखें।
- क्वेरी एक स्केलर क्वेरी होनी चाहिए। स्केलर क्वेरी एक क्वेरी है जिसके परिणाम सिर्फ़ एक पंक्ति और एक कॉलम के रूप में होते हैं। अन्यथा, क्वेरी एक त्रुटि उत्पन्न करेगी।
- यदि क्वेरी शून्य पंक्तियाँ लौटाती है, तो वेरिएबल को EMPTY, अर्थात NULL पर सेट कर दिया जाता है।
कल्पना: मान लें कि हमारे पास 'Guru99' नामक तालिका है जिसमें दो कॉलम हैं जैसा कि नीचे दिखाया गया है:
हम आगे के ट्यूटोरियल्स में 'गुरु99' टेबल का उपयोग करेंगे
उदाहरण 1: जब सबक्वेरी परिणाम के रूप में एक पंक्ति लौटाती है।
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3) PRINT @COURSE_NAME
उदाहरण 2: जब सबक्वेरी परिणाम के रूप में शून्य पंक्ति लौटाती है
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
इस विशेष मामले में, चर मान EMPTY, अर्थात NULL है।
SQL SELECT VARIABLE का उपयोग करना
SET की तरह ही, हम DECLARE का उपयोग करके चर घोषित करने के बाद, चरों को मान निर्दिष्ट करने के लिए SELECT का भी उपयोग कर सकते हैं। SELECT का उपयोग करके मान निर्दिष्ट करने के विभिन्न तरीके नीचे दिए गए हैं:
उदाहरण: SELECT का उपयोग करके किसी चर को मान निर्दिष्ट करना
सिंटेक्स:
DECLARE @LOCAL_VARIABLE <Data_Type> SELECT @LOCAL_VARIABLE = <Value>
प्रश्न:
DECLARE @COURSE_ID INT SELECT @COURSE_ID = 5 PRINT @COURSE_ID
उदाहरण: SELECT का उपयोग करके एकाधिक चर को मान निर्दिष्ट करना
सिंटेक्स:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>, @Local_Variable _2 = <Value_2>
नियम: SET के विपरीत, SELECT का उपयोग मान निर्दिष्ट करने के लिए किया जा सकता है अनेक चरों के लिए द्वारा अलग किया गया अल्पविराम.
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
उदाहरण: SELECT का उपयोग करके सबक्वेरी के साथ एक चर को मान निर्दिष्ट करना
सिंटेक्स:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)
नियम:
- प्रश्न को कोष्ठक में संलग्न करें।
- क्वेरी एक स्केलर क्वेरी होनी चाहिए। स्केलर क्वेरी वह क्वेरी है जिसका परिणाम एक पंक्ति और एक कॉलम है। अन्यथा, क्वेरी एक त्रुटि फेंक देगी।
- यदि क्वेरी शून्य पंक्तियाँ लौटाती है, तो वेरिएबल EMPTY, यानि NULL है।
- हमारी 'गुरु99' तालिका पर पुनर्विचार करें
उदाहरण 1: जब सबक्वेरी परिणाम के रूप में एक पंक्ति लौटाती है।
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1) PRINT @COURSE_NAME
उदाहरण 2: जब सबक्वेरी परिणाम के रूप में शून्य पंक्ति लौटाती है
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
इस विशेष मामले में, चर खाली है, अर्थात शून्य।
उदाहरण 3: नियमित SELECT कथन द्वारा किसी चर को मान निर्दिष्ट करें।
सिंटेक्स:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>
नियम:
- SET के विपरीत, यदि क्वेरी के परिणामस्वरूप कई पंक्तियाँ प्राप्त होती हैं तो चर मान को अंतिम पंक्ति के मान पर सेट कर दिया जाता है।
- यदि क्वेरी शून्य पंक्तियाँ लौटाती है, तो वेरिएबल को EMPTY, अर्थात NULL पर सेट कर दिया जाता है।
क्वेरी 1: क्वेरी एक पंक्ति लौटाती है.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3 PRINT @COURSE_NAME
क्वेरी 2: क्वेरी एकाधिक पंक्तियाँ लौटाती है.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 PRINT @COURSE_NAME
इस विशेष मामले में, चर मान है अंतिम पंक्ति के मान पर सेट करें.
क्वेरी 3: क्वेरी शून्य पंक्तियाँ लौटाती है.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5 PRINT @COURSE_NAME
इस विशेष मामले में, चर EMPTY, यानि NULL है।
अन्य SQL चर उदाहरण
क्वेरी में वेरिएबल का उपयोग करना
प्रश्न:
DECLARE @COURSE_ID Int = 1 SELECT * from Guru99 where Tutorial_id = @COURSE_ID
SQL सर्वर वेरिएबल्स के बारे में रोचक तथ्य!
- स्थानीय चर को PRINT के साथ-साथ SELECT COMMAND का उपयोग करके प्रदर्शित किया जा सकता है
- तालिका डेटा प्रकार घोषणा के दौरान 'AS' के उपयोग की अनुमति नहीं देता है।
- SET ANSI मानकों का अनुपालन करता है जबकि SELECT नहीं करता।
- @ नाम से स्थानीय चर बनाना भी संभव है। हम इसे इस तरह घोषित कर सकते हैं, उदाहरण के लिए:
'DECLARE @@ as VARCHAR (10)'
सारांश
- चर वह ऑब्जेक्ट है जो प्लेसहोल्डर के रूप में कार्य करता है।
- दो प्रकार के चर मौजूद हैं: स्थानीय और वैश्विक
- हम वेरिएबल को निम्नलिखित तीन तरीकों से असाइन कर सकते हैं: 1) DECLARE का उपयोग करते हुए 2) SET का उपयोग करते हुए 3) SELECT का उपयोग करते हुए