एसक्यूएल सबक्वायरी बाहरी क्वेरी के साथ जुड़ें

Esakyu Ela Sabakvayari Bahari Kveri Ke Satha Jurem



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

SQL की सबसे शक्तिशाली विशेषताओं में से एक उपश्रेणी है। उपश्रेणियाँ एक बड़ी और अधिक जटिल क्वेरी के भीतर नेस्टेड प्रश्नों का एक समूह है। सबक्वायरी आपको डेटा पुनर्प्राप्त करने या एक इकाई के रूप में अधिक जटिल संचालन करने की अनुमति देती है।







हम डेटा फ़िल्टरिंग, सॉर्टिंग, कई तालिकाओं पर एकत्रीकरण, और बहुत कुछ करने के लिए उपश्रेणियों का उपयोग कर सकते हैं।



हालाँकि, एक अन्य विशेषता जो SQL सबक्वेरीज़ के अंतर्गत छिपी हुई है, उसे सबक्वेरी जॉइन के रूप में जाना जाता है। ये उपश्रेणियों के समान हैं; इसके बजाय, वे जुड़ते हैं जो आपको एक साथ तालिकाओं में शामिल होने के लिए एक बाहरी क्वेरी के भीतर उपश्रेणियों का उपयोग करने की अनुमति देते हैं।



यदि आपका सिर घूम रहा है, तो चिंता न करें क्योंकि सबक्वेरी में शामिल होना मास्टर के लिए चुनौतीपूर्ण हो सकता है, खासकर शुरुआत में। हालांकि, यह ट्यूटोरियल मौका पर बहुत अधिक छोड़े बिना प्रारंभिक चरणों में सबक्वायरी को तोड़ने का प्रयास करता है।





ध्यान रखें कि हम मानते हैं कि आप SQL, SQL Joins, SQL Subqueries, या इस तरह के लिए नए नहीं हैं। हालाँकि, यदि आप हैं, तो अधिक जानने के लिए विषयों पर हमारे ट्यूटोरियल देखें।

मास्टर SQL बाहरी जुड़ता है

यदि आप यह समझना चाहते हैं कि सबक्वेरी जॉइन के साथ कैसे काम किया जाए, तो बाहरी जॉइन के साथ काम करना सीखना एक महत्वपूर्ण कारक है।



यदि आप अपरिचित हैं, तो एक SQL बाहरी जुड़ाव आपको एक तालिका से सभी पंक्तियाँ और दूसरी तालिका से मिलान करने वाली पंक्तियाँ लाने देता है। यह उससे थोड़ा अधिक जटिल है, जिसमें बायाँ बाहरी जुड़ाव, दायाँ बाहरी जुड़ाव, पूर्ण बाहरी जुड़ाव आदि शामिल हैं।

एक SQL बाएँ बाहरी जुड़ाव में, क्वेरी बाईं तालिका से सभी पंक्तियाँ और दाएँ तालिका से मिलान करने वाली पंक्तियाँ लौटाती है। यदि सही तालिका में कोई मेल खाने वाली पंक्तियाँ नहीं हैं, तो परिणामी कॉलम में क्वेरी में NULL मान शामिल हैं।

दाएँ बाहरी जोड़ के मामले में, क्वेरी दाएँ तालिका से सभी पंक्तियों को लौटाती है, लेकिन बाईं तालिका से केवल मेल खाने वाली पंक्तियाँ। इसी तरह, क्वेरी में NULL मान शामिल होते हैं यदि बाईं तालिका से कोई मेल खाने वाली पंक्तियाँ नहीं हैं।

अंत में, हमारे पास पूर्ण बाहरी जुड़ाव है। यह जुड़ाव दाएँ और बाएँ तालिकाओं से सभी पंक्तियाँ और किसी भी गैर-मिलान वाले रिकॉर्ड के लिए NULL मान लौटाता है।

एसक्यूएल सबक्वायरी जुड़ती है

अब जब हम SQL सबक्वेरीज़ के बारे में समझ गए हैं, तो चलिए सबक्वेरी जॉइन के बारे में बात करते हैं। सबक्वायरी जॉइन हमें टेबल में शामिल होने के लिए बाहरी क्वेरी के भीतर सबक्वायरी का उपयोग करने की अनुमति देती है।

अगर आप पूछ रहे हैं, क्या यह है? हां, वह सब कुछ है जो सबक्वायरी में शामिल होता है।

इसे बेहतर ढंग से प्रदर्शित करने के लिए, निम्नलिखित सिंटैक्स उदाहरण लें जो निम्नलिखित में प्रदर्शित होता है:

चुनना *
तालिका 1 से
बाईं ओर का बाहरी जोड़ (
कॉलम 1, कॉलम 2 चुनें
तालिका 2 से
) एएस सबक्वायरी
टेबल पर 1. कॉलम 3 = सबक्वेरी. कॉलम 1;


पिछले सिंटैक्स में, हम सबक्वायरी के साथ जुड़ने के लिए बाएं बाहरी जोड़ का उपयोग करके तालिका एक से सभी स्तंभों का चयन करते हैं। सबक्वायरी की भूमिका तालिका 2 से परिभाषित कॉलम लाने के लिए है। फिर हम तालिका 1 से कॉलम 2 की स्थिति पर तालिका 1 और सबक्वायरी से कॉलम 1 में शामिल हो जाते हैं।

व्यावहारिक उदाहरण:

सैद्धांतिक रूप से, यह कम सहज लगता है लेकिन आइए हम सकीला डेटाबेस लेकर वास्तविक दुनिया का परिदृश्य लें।

मान लीजिए हम डेटाबेस और उनकी संबंधित भाषाओं में सभी फिल्मों की सूची को पुनः प्राप्त करना चाहते हैं। फ़िल्मों की भाषाएँ भाषा तालिका में संग्रहीत होती हैं, और फ़िल्मों के नाम फ़िल्म तालिका में संग्रहीत होते हैं।

हालांकि, फिल्म तालिका में भाषा तालिका से 'भाषा_आईडी' कॉलम नामक एक विदेशी कुंजी है। इसलिए, हम निम्नलिखित क्वेरी में प्रदर्शित दो तालिकाओं को एक साथ जोड़ने के लिए एक बाएं बाहरी जोड़ के साथ एक सबक्वेरी जॉइन का उपयोग कर सकते हैं:

f.title, l.name AS भाषा चुनें
फिल्म एफ से
बाईं ओर का बाहरी जोड़ (
भाषा_आईडी, नाम चुनें
भाषा से
) एएस एल
चालू f.language_id = l.language_id;


पिछले उदाहरण की क्वेरी में, हम फिल्म तालिका से शीर्षक कॉलम और भाषा तालिका से नाम कॉलम चुनते हैं।

फिर हम भाषा तालिका से language_id और name कॉलम चुनने के लिए एक सबक्वेरी का उपयोग करते हैं। अगला कदम फिल्म तालिका के साथ इस शर्त पर जुड़ना है कि फिल्म तालिका से भाषा_आईडी भाषा तालिका से भाषा_आईडी के बराबर है।

यह सुनिश्चित करने के लिए कि सभी फिल्मों को परिणाम में शामिल किया गया है, हमें बाएं बाहरी जुड़ाव का उपयोग करने की आवश्यकता है, जिसमें बाईं तालिका के सभी परिणाम शामिल हैं, जो इस मामले में फिल्म तालिका है।

एक उदाहरण आउटपुट इस प्रकार है:


हम एक सही बाहरी जुड़ाव के साथ भी ऐसा कर सकते हैं। वाक्य रचना इस प्रकार है:

चुनना *
तालिका 1 से
दायां बाहरी जुड़ाव (
कॉलम 1, कॉलम 2 चुनें
तालिका 2 से
) एएस सबक्वायरी
टेबल पर 1. कॉलम 3 = सबक्वेरी. कॉलम 1;


यह समान रूप से व्यवहार करता है लेकिन सही तालिका में सभी रिकॉर्ड शामिल करता है, भले ही कोई मिलान रिकॉर्ड न हो।

जानने योग्य उपयोगी बातें

यह समझना अच्छा है कि हालांकि सबक्वेरी जॉइन अविश्वसनीय रूप से उपयोगी हैं और आपके वर्कफ़्लो को अनुकूलित कर सकते हैं, सावधानी के साथ उनका उपयोग करें।

उदाहरण के लिए, बड़े डेटा सेट के साथ सबक्वेरी जॉइन का उपयोग करने से बचें। ऐसा इसलिए है क्योंकि वे व्यापक रिकॉर्ड लौटा सकते हैं जो डेटाबेस के प्रदर्शन को प्रभावित कर सकते हैं।

किसी भी सबक्वायरी में शामिल होने से पहले क्वेरी विश्लेषण टूल का उपयोग करने पर विचार करें।

निष्कर्ष

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