SQL क्वेरी RDBMS CRUD के मांस और आलू हैं (बनाएं, पढ़ें, अपडेट करें, हटाएं)। लेकिन जब आपका एप्लिकेशन या एंटरप्राइज़ डेटाबेस बढ़ता है, तो सशर्त, आवश्यकता-विशिष्ट डेटा पुनर्प्राप्त करने के लिए बुद्धिमान प्रश्नों की आवश्यकता अनिवार्य हो जाती है।

SQL अपेक्षाकृत व्यापक है, जिसमें कई कार्यात्मकताएं शामिल हैं—जिनमें से प्रत्येक विभिन्न व्यावसायिक उपयोगों के लिए उपयुक्त है। ऐसी ही एक कार्यक्षमता में उप-प्रश्नों का उपयोग शामिल है।

अपने कोड को कुशल और प्रभावी बनाने के लिए, आप डेटा लाने, मौजूदा चर में हेरफेर करने और एक बार में कई लक्ष्यों को प्राप्त करने के लिए अपने SQL कोड के भीतर उप-प्रश्नों का उपयोग कर सकते हैं।

SQL उप-प्रश्न क्या हैं?

उप-क्वेरी एक नेस्टेड क्वेरी है, जो किसी अन्य मुख्य क्वेरी के भीतर एक पैरामीटर के रूप में काम करती है। उप-क्वेरी है a आंतरिक क्वेरी, जबकि मुख्य प्रश्न है बाहरी क्वेरी.

माना जाता है कि उप-क्वेरी मुख्य क्वेरी के लिए इन-कोष्ठक तर्क के रूप में डेटा लौटाती है, जबकि मुख्य क्वेरी अंतिम परिणाम को पुनः प्राप्त करती है।

उप-प्रश्न के भीतर एम्बेड किए गए हैं चुनते हैं बयान या में कहां

instagram viewer
खंड। ऐसी संरचना उप-क्वेरी को एक अच्छी तरह से वर्णित डेटा निस्पंदन स्थिति के रूप में व्यवहार करने की अनुमति देती है। दुर्भाग्य से, उप-प्रश्न केवल का उपयोग कर सकते हैं समूह द्वारा आदेश और नहीं द्वारा आदेश कमांड, क्योंकि उन्हें केवल मुख्य क्वेरी में अनुमति है।

सम्बंधित: एसक्यूएल ग्रुप बाय स्टेटमेंट के बारे में आपको जो कुछ पता होना चाहिए

आमतौर पर, प्रत्येक उप-क्वेरी में एक कॉलम होता है जिसमें चुनते हैं खंड। हालांकि, ऐसे परिदृश्य हैं जहां मुख्य क्वेरी में एकाधिक कॉलम होते हैं। एक उप-क्वेरी को किसी अन्य उप-क्वेरी में नेस्ट किया जा सकता है, जिससे यह नेस्टिंग सब-क्वेरी बन जाती है।

एक उप-क्वेरी की सख्ती इस प्रकार है:

तालिका से कॉलम_नाम चुनें जहां स्थिति = 
(तालिका से सशर्त_स्तंभ चुनें) उपनाम के रूप में;

उदाहरण के लिए, मान लें कि आपके पास निम्न तालिका है:

पहचान पहला नाम दूसरा नाम एजेंसी शुल्क
1 जॉन विक्की 5000
2 रॉबर्ट ग्राहम 4000
3 स्टीफन हिक्स 8000
4 बीओबी मार्ले 1000
5 मेरी एलेन 9000

इस तालिका में, औसत एजेंसी शुल्क से अधिक कमाई करने वाले लोगों के नाम खींचने के लिए, आप कोड की कई पंक्तियों को लिखने के बजाय एक उप-क्वेरी लिख सकते हैं।

सम्बंधित: SQL में एक टेबल कैसे बनाएं

यहां बताया गया है कि क्वेरी कैसी दिखती है:

Agent_details से * चुनें
जहां एजेंसी_फी > (एजेंट_विवरण से औसत (एजेंसी_फी) चुनें);

से पहले आदेश > साइन बाहरी क्वेरी है, जबकि, के बाद सब कुछ > संकेत आंतरिक क्वेरी है।

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

SQL में उप-प्रश्नों का उपयोग कैसे करें?

कुछ अलग तरीके हैं जिनसे आप SQL में उप-प्रश्नों का उपयोग कर सकते हैं।

उप-प्रश्न जहां खंड के साथ

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

क्वेरी संरचना:

table_name. से * चुनें
जहां कॉलम_नाम = (तालिका_नाम से कॉलम_नाम चुनें);

आइए इसे एक उदाहरण से समझाते हैं।

मान लीजिए कि आप एजेंसी_विवरण तालिका से दूसरी सबसे बड़ी एजेंसी शुल्क खोजना चाहते हैं। ऐसा करने के लिए, SQL के भीतर वैकल्पिक कार्य हैं; फिर भी, उप-क्वेरी का उपयोग करने का सबसे अच्छा तरीका है।

यहां बताया गया है कि आप उप-क्वेरी को कैसे परिभाषित कर सकते हैं:

* चुनें, अधिकतम (एजेंसी_फी)
एजेंट_विवरण से
जहां एजेंसी_फी < (एजेंट_विवरण से अधिकतम (एजेंसी_फी) चुनें);

परिणामी कथन आपको दिखाएगा 8000, जो दी गई तालिका में दूसरा सबसे अधिक शुल्क है। जब क्वेरी चलती है, तो उप-क्वेरी शुल्क की सूची से अधिकतम मूल्य की गणना करती है। उच्चतम शुल्क राशि (9000) मेमोरी में स्टोर होता है।

एक बार इस भाग की गणना करने के बाद, क्वेरी के दूसरे भाग की गणना की जाती है, जो तालिका से दूसरा सबसे अधिक शुल्क पाता है (क्योंकि < चिन्ह का प्रयोग किया जाता है।) अंतिम परिणाम है 8000, जो तालिका में दूसरा सबसे बड़ा शुल्क है।

उप-प्रश्न खंड से. के भीतर

उप-प्रश्नों के भीतर एक और भिन्नता इस स्थिति को पारित कर रही है से खंड। एक समान अवधारणा के रूप में, आंतरिक क्वेरी को पहले संसाधित किया जाता है, और बाहरी क्वेरी को बाद में संसाधित किया जाता है। आंतरिक क्वेरी डेटा पर फ़िल्टर करेगी और परिणाम दिखाएगी जहां आईडी = 3।

यहाँ संदर्भ के लिए क्वेरी है:

a.* से चुनें (
Agent_details से एजेंसी_फी का चयन करें
जहां आईडी = 3) एक के रूप में;

यह एक बहुत ही बुनियादी संरचना है; हालाँकि, आपकी डेटा तालिकाएँ जितनी जटिल होंगी, आपको डेटा की अधिक पंक्तियाँ मिलेंगी, जो आपकी शर्तों से मेल खाती हैं।

कथन में सम्मिलित करने के साथ उप-प्रश्नों का उपयोग करना

यदि आप किसी मौजूदा तालिका को कुछ नई डेटा पंक्तियों के साथ अपडेट करना चाहते हैं, तो आप इसका उपयोग कर सकते हैं में सम्मिलित करें बयान। यदि आप किसी विशिष्ट स्थिति (शर्तों) के आधार पर मान जोड़ना चाहते हैं, तो एक उप-क्वेरी काफी फायदेमंद साबित हो सकती है।

क्वेरी संरचना:

तालिका_नाम में डालें 
table_name. से * चुनें
जहां column_name = शर्तें;
तालिका_नाम से * चुनें;

यहां एक उदाहरण दिया गया है कि आप सब-क्वेरी के साथ इंसर्ट इन स्टेटमेंट का उपयोग कैसे कर सकते हैं:

एजेंट_विवरण में डालें
Agent_details से * चुनें
जहां एजेंसी_फी (1000, 5000);
Agent_details से * चुनें;

एक बार क्वेरी चलने के बाद, शर्त से मेल खाने वाले मानों को मौजूदा तालिका में फिर से डाला जाएगा। चुनते हैं * संदर्भ सभी स्तंभों को एक साथ उठाता है, और इसे एजेंट_विवरण तालिका में सम्मिलित करता है जैसा कि यह है। में स्टेटमेंट का उपयोग एक साथ कई फिल्टर स्थितियों को परिभाषित करने के लिए किया जाता है।

अद्यतन विवरण के साथ उप-प्रश्नों का उपयोग करना

ऐसी स्थितियां हैं जिनमें आप क्वेरी चलाते समय अंतर्निहित तालिकाओं को अपडेट करना चाहते हैं। ऐसा करने के लिए, आप का उपयोग कर सकते हैं अपडेट करें क्वेरी कमांड के साथ स्टेटमेंट।

तालिका में जानकारी को एक उदाहरण में अद्यतन करने के लिए आप उप-क्वेरी इस प्रकार लिखेंगे:

अद्यतन तालिका_नाम 
कॉलम_नाम सेट करें = new_value
जहां कॉलम_नाम =
(तालिका_नाम से कॉलम_नाम चुनें जहां =);

यहाँ एक उदाहरण है जो अद्यतन कथन के उपयोग को प्रदर्शित करता है:

अद्यतन एजेंट_विवरण 
SET एजेंसी_फी = 35000
जहां एजेंसी_शुल्क =
(एजेंट_विवरणों से एजेंसी_शुल्क चुनें जहां First_name='जॉन');
Agent_details से * चुनें;

उप-क्वेरी कॉलम एजेंसी_फी पर फ़िल्टर करेगी और उन पंक्तियों को बाहर कर देगी जहां First_Name मेल खाता है जॉन. बाहरी क्वेरी को आगे निष्पादित किया जाता है, जिसमें जॉन विक के लिए एजेंसी शुल्क 35000 तक अपडेट किया जाता है।

आप पास कर सकते हैं चुनते हैं * अंतिम परिणामों की जांच के लिए बयान; आप देखेंगे कि जॉन विक के लिए एजेंसी शुल्क 35000 में अपडेट किया गया है, क्योंकि क्वेरी में परिभाषित शर्तों से मेल खाने वाला केवल उदाहरण है।

डिलीट स्टेटमेंट के साथ सब-क्वेरी का उपयोग करना

अपडेट स्टेटमेंट की तरह, जिसमें आप मौजूदा टेबल के भीतर डेटा की पंक्तियों को अपडेट कर रहे हैं, हटाना कथन एक शर्त के आधार पर डेटा की पंक्ति (पंक्तियों) को हटा देता है।

डिलीट स्टेटमेंट स्ट्रक्चर है:

तालिका_नाम से हटाएं जहां चर/स्तंभ नाम = 
(तालिका_नाम से कॉलम_नाम चुनें जहां = स्थिति);

यहाँ एक उदाहरण है:

Agent_details से मिटाएं 
जहां First_name IN
(एजेंट_विवरण से First_name चुनें जहां एजेंसी_फी = 9000);
Agent_details से * चुनें;

SQL के भीतर उप-प्रश्नों का उपयोग करना

उप-प्रश्न SQL के भीतर एक उत्कृष्ट विशेषता है, जो आपको अनावश्यक कोड की अंतहीन पंक्तियों को लिखने से बचा सकता है। जब आप अपनी बोली लगाने के लिए उप-प्रश्नों की बुनियादी कार्यक्षमताओं का उपयोग करने में सक्षम होते हैं, तो आप कभी भी SQL कोडिंग की जटिलताओं में जाने के बारे में चिंता नहीं करना चाहेंगे।

यह सुनिश्चित करने के लिए कि आप हमेशा अपने खेल में शीर्ष पर हैं, अपने मौजूदा SQL ज्ञान को बढ़ाना हमेशा सर्वोत्तम होता है। निश्चिंत रहें, SQL चीट शीट आपको एक नज़र में अपने बेसिक्स पर ब्रश करने के बारे में एक अच्छा विचार दे सकती है।

शुरुआती के लिए आवश्यक एसक्यूएल कमांड चीट शीट

एसक्यूएल के बारे में और जानना चाहते हैं? विभिन्न SQL क्वेरी कमांड पर एक हैंडल रखना आगे बढ़ने का एक शानदार तरीका है।

आगे पढ़िए

साझा करनाकलरवईमेल
संबंधित विषय
  • प्रोग्रामिंग
  • प्रोग्रामिंग
  • एसक्यूएल
  • प्रोग्रामिंग टूल्स
लेखक के बारे में
गौरव सियाल (35 लेख प्रकाशित)

गौरव सियाल के पास डिजिटल मार्केटिंग फर्मों और सॉफ्टवेयर जीवनचक्र दस्तावेजों की एक श्रृंखला के लिए लेखन का दो साल का अनुभव है।

गौरव सियाल की अन्य फ़िल्में-टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें