SQL में कर्सर किसी भी डेटाबेस का एक अभिन्न अंग बनाते हैं जो मूल रूप से उपयोगकर्ता को बिना किसी परेशानी के डेटाबेस के माध्यम से ट्रैवर्स करने में मदद करता है। SQL में Cursor पर इस लेख के माध्यम से मैं आपको वे सभी आवश्यक विवरण दूंगा जिनकी आपको इससे पहले अपने पैरों को गीला करने की आवश्यकता होगी।
नीचे वे विषय हैं जिन पर मैं इस लेख में चर्चा करूंगा:
- SQL में Cursor क्या है?
- एसक्यूएल कर्सर के प्रकार
- SQL कर्सर का सिंटैक्स
- कर्सर जीवनचक्र
SQL में कर्सर क्या है?
SQL में कर्सर एक ऑब्जेक्ट है जो किसी भी परिणाम सेट की पंक्तियों पर ट्रैवर्सल की अनुमति देता है। इसके साथ, आप किसी क्वेरी द्वारा लौटाए गए डेटाबेस की एक व्यक्तिगत पंक्ति को संसाधित कर सकते हैं। यह एक अस्थायी कार्य क्षेत्र या संदर्भ क्षेत्र है जो SQL कथन के निष्पादन के दौरान मेमोरी सिस्टम में बनाया जाता है जो डेटाबेस से पुनर्प्राप्त डेटा को संग्रहीत करता है और इसके हेरफेर में सहायता करता है। आप इसे वर्तमान पंक्ति की ओर इशारा करते हुए एक पॉइंटर के साथ पंक्तियों की व्यवस्था के रूप में मान सकते हैं। कर्सर एक डेटाबेस ऑब्जेक्ट है जो एक से अधिक पंक्तियों को पकड़ सकता है लेकिन यह एक समय में केवल एक पंक्ति को संसाधित कर सकता है। कर्सर होल्ड द्वारा धारित पंक्तियों के समूह को सक्रिय . के रूप में जाना जाता है सेट। इस प्रकार आप एक सिंगलटन तकनीक में एक टेबल के रिकॉर्ड को नियंत्रित कर सकते हैं यानी किसी भी समय एक पंक्ति।
अब जब आप यह जान गए हैं कि SQL में कर्सर क्या है, तो आइए अब आगे बढ़ते हैं और इसके विभिन्न प्रकारों पर एक नज़र डालते हैं।
एसक्यूएल कर्सर के प्रकार
SQL दो प्रकार के कर्सर प्रदान करता है जिन्हें मैंने नीचे सूचीबद्ध किया है:
-
अंतर्निहित कर्सर
जब भी DML संचालन जैसे INSERT, UPDATE, और DELETE को डेटाबेस में संसाधित किया जाता है, अंतर्निहित कर्सर स्वचालित रूप से उत्पन्न होते हैं और फ्रेमवर्क द्वारा उपयोग किए जाते हैं। इस प्रकार के कर्सर आंतरिक प्रसंस्करण के लिए उपयोग किए जाते हैं और इन्हें किसी अन्य कोड क्षेत्र से नियंत्रित या संदर्भित नहीं किया जा सकता है। SQL में निहित कर्सर केवल ऑपरेशन द्वारा प्रभावित पंक्तियों को पकड़ते हैं और केवल कर्सर विशेषताओं का उपयोग करके सबसे हाल के कर्सर को संदर्भित कर सकते हैं जो नीचे तालिका में दिखाए गए हैं।
विशेषता | विवरण |
%FOUND | यदि कोई INSERT, UPDATE, या DELETE स्टेटमेंट एक या अधिक पंक्तियों को प्रभावित करता है या SELECT INTO स्टेटमेंट एक या अधिक पंक्तियों को लौटाता है, तो यह TRUE लौटाएगा। अन्य मामलों में, यह FALSE लौटाएगा। |
%NOTFOUND | यह तकनीकी रूप से %FOUND विशेषता के विपरीत है। यदि कोई INSERT, UPDATE, या DELETE स्टेटमेंट किसी भी पंक्ति को प्रभावित नहीं करता है या कोई SELECT INTO स्टेटमेंट कोई पंक्ति नहीं देता है, तो यह TRUE देता है। अन्यथा यह केवल FALSE लौटाता है। |
%ISOPEN | यह विशेषता हमेशा निहित कर्सर के लिए FALSE लौटाएगी क्योंकि संबंधित SQL कथन निष्पादित होने के तुरंत बाद SQL कर्सर स्वचालित रूप से बंद हो जाता है। |
%ROWCOUNT | यह INSERT, UPDATE, या DELETE स्टेटमेंट या SELECT INTO स्टेटमेंट द्वारा लौटाई गई पंक्तियों द्वारा प्रभावित पंक्तियों की कुल संख्या देता है। |
-
स्पष्ट कर्सर
इस प्रकार का कर्सर तब उत्पन्न होता है जब कोई उपयोगकर्ता डेटा को SQL ब्लॉक के माध्यम से संसाधित करता है। आम तौर पर, चयन क्वेरी का उपयोग एक स्पष्ट कर्सर के निर्माण को ट्रिगर करता है और एक से अधिक पंक्तियों को पकड़ सकता है लेकिन एक समय में केवल एक को संसाधित कर सकता है। इस प्रकार के कर्सर का उपयोग किसी कॉलम में मौजूद रिकॉर्ड को होल्ड करने के लिए किया जाता है। यह प्रोग्रामर को बेहतर नियंत्रण के लिए अपने डीएमएल संचालन को निष्पादित करने के लिए नामित संदर्भ क्षेत्र बनाने की अनुमति देता है। साथ ही, इसे SQL ब्लॉक में परिभाषित करने की आवश्यकता है और बदले में उस कोड का उपयोग करके एक SELECT क्वेरी के लिए बनाया गया है।
कर्सर की बेहतर समझ प्राप्त करने के लिए, आइए अब देखें कि SQL में कर्सर का सिंटैक्स क्या है।
SQL कर्सर का सिंटैक्स
एक स्पष्ट कर्सर बनाने के लिए सामान्य सिंटैक्स नीचे दिया गया है।
CURSOR cursorName IS selectStatement;
यहां:
कर्सरनाम - यह कर्सर के लिए एक मान्य नाम दर्शाता है
selectStatement - यह एक चुनिंदा क्वेरी का प्रतिनिधित्व करता है जो कई पंक्तियों को लौटाएगा
आइए अब इस लेख के साथ आगे बढ़ते हैं और SQL कर्सर का जीवनचक्र देखते हैं।
कर्सर जीवनचक्र
एसक्यूएल में एक कर्सर के जीवनचक्र में मूल रूप से 5 चरण होते हैं जिन्हें मैंने नीचे सूचीबद्ध किया है:
- घोषित करें
DECLARE cursorName CURSOR FOR selectStatement;
यह चरण कर्सर के नाम और डेटा प्रकार को निर्दिष्ट करने में आपकी सहायता करेगा और SELECT स्टेटमेंट इसके परिणाम सेट को परिभाषित करेगा।
- खोलें
OPEN cursorName;
यह चरण आपको कर्सर को निष्पादित करके खोलने और पॉप्युलेट करने देगा।
- प्राप्त करें
FETCH NEXT FROM cursor INTO variableList;
यह चरण कर्सर से एक पंक्ति प्राप्त करेगा और इसे एक या अधिक चरों में संग्रहीत करेगा।
[Optional] CheckStatus
WHILE @@FETCH_STATUS = 0 BEGIN FETCH NEXT FROM cursorName; END;
यह फ़ंक्शन कर्सर के विरुद्ध निष्पादित अंतिम FETCH स्टेटमेंट की स्थिति लौटाता है। यदि यह फ़ंक्शन 0 देता है तो इसका मतलब है कि FETCH ऑपरेशन सफल रहा। कर्सर से सभी पंक्तियों को लाने के लिए, WHILE क्लॉज का उपयोग किया जाता है।
- बंद करें
CLOSE cursorName;
यह चरण ऑपरेशन पूरा होने के बाद कर्सर को बंद करने में आपकी सहायता करेगा।
- निकालें
DEALLOCATE cursor_name;
यह चरण कर्सर को हटाने और मेमोरी स्पेस को खाली करने में मदद करेगा।
इसी के साथ, मैं SQL में Cursor पर इस लेख को समाप्त करना चाहूंगा। मुझे उम्मीद है कि इस लेख ने आपके ज्ञान में मूल्य जोड़ने में आपकी मदद की है। SQL या डेटाबेस के बारे में अधिक जानकारी के लिए, आप हमारी व्यापक पठन सूची यहाँ देख सकते हैं:डेटाबेस एडुरेका ।
शुरुआती के लिए SQL बेसिक्स | एसक्यूएल सीखें | शुरुआती के लिए एसक्यूएल ट्यूटोरियल | एडुरेका
'एसक्यूएल बेसिक्स फॉर बिगिनर्स' पर यह एडुरेका वीडियो आपको एसक्यूएल की मूल बातें और एसक्यूएल प्रश्नों को समझने में मदद करेगा जो बहुत लोकप्रिय और आवश्यक हैं।
यदि आप MySQL पर एक संरचित प्रशिक्षण प्राप्त करना चाहते हैं, तो हमारा MySQL DBA प्रमाणन प्रशिक्षण देखें। जो प्रशिक्षक के नेतृत्व वाले लाइव प्रशिक्षण और वास्तविक जीवन परियोजना अनुभव के साथ आता है। यह प्रशिक्षण आपको MySQL को गहराई से समझने और विषय पर महारत हासिल करने में मदद करेगा।
हमारे लिए एक प्रश्न है? कृपया इसका उल्लेख "SQL में कर्सर . के टिप्पणी अनुभाग में करें ” और मैं आपके पास वापस आऊंगा।