अनुशंसित, 2019

संपादक की पसंद

लेफ्ट, राइट और फुल आउटर के बीच अंतर

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

तुलना चार्ट

तुलना के लिए आधारबाईं ओर का बाहरी जोड़राइट आउटर जॉइन करेंपूर्ण बाहरी सम्मिलित हों
बुनियादीपरिणाम में बाईं तालिका के सभी टुपल्स बने हुए हैं।सही तालिका के सभी टुपल्स परिणाम में रहते हैं।परिणाम में बाईं और साथ ही दाईं ओर के सभी ट्यूपल्स बने हुए हैं।
पूर्ण विस्तारबाएँ तालिका के ट्यूपल्स जिसमें राइट टेबल में मेल खाने वाला टपल नहीं है, उन्हें राइट टेबल की विशेषताओं के लिए NULL मान के साथ बढ़ाया जाता है।दाएं तालिका के ट्यूपल्स जिसमें बाईं तालिका में एक मिलान ट्यूपल नहीं है, बाईं तालिका की विशेषताओं के लिए NULL मान के साथ विस्तारित हैं।
बाएँ और साथ ही साथ दाईं तालिका में क्रमशः मेल खाने वाले tuples के दाएँ और बाएँ तालिका की विशेषताओं के लिए NULL मान के साथ विस्तारित किए गए हैं।

लेफ्ट आउटर जॉइन की परिभाषा

मान लीजिए, हमारे पास " Table_A Left Outer Join Table_B " है। तो Table_A हमारी बाईं टेबल है क्योंकि यह लेफ्ट आउटर जॉइन ऑपरेशन के बाईं ओर दिखाई देता है और Table_B हमारी राइट टेबल है।

प्रारंभ में, आंतरिक जुड़ाव Table_A और Table_B पर लागू किया जाएगा जो तालिका ए और बी से सभी मिलान ट्यूपल लौटाएगा।

इसके बाद, यह Table_A से सभी टुपल्स लौटाएगा जिनके पास टेबल_ में मेल खाने वाला टपल नहीं है। ऐसा है कि, परिणामी टुपल्स को सही तालिका की विशेषताओं के लिए NULL मानों के साथ गद्देदार किया जाएगा।

इसलिए, लेफ्ट आउटर जॉइन से प्राप्त परिणाम लेफ्ट टेबल से सभी ट्यूपल्स को बनाए रखता है और राइट टेबल से केवल ट्यूपल मेल खाता है।

आइए एक उदाहरण के साथ लेफ्ट आउटर में चर्चा करें; हमारे पास नीचे दो टेबल हैं, स्टूडेंट टेबल और डिपार्टमेंट टेबल।

अब, हम छात्र और विभाग की मेज पर लेफ्ट आउटर जॉइन को लागू करेंगे।

छात्र बाएँ विभाग विभाग से * का चयन करें
छात्र पर। छात्र_आईडी = विभाग

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

लेफ्ट आउटर जॉइन से प्राप्त परिणाम पर गौर करें; इसमें स्टूडेंट टेबल से सभी ट्यूपल्स हैं और स्टूडेंट और डिपार्टमेंट टेबल दोनों से मैचिंग ट्यूपल्स के साथ। जिम्मी के छात्र_ड, छात्र तालिका के जोसेफ हैरी विभाग की तालिका में मौजूद नहीं थे। इसलिए, जिमी, जोसेफ हैरी के लिए विभाग तालिका के गुण मान NULL तक बढ़ा दिए गए हैं।

राइट आउटर जॉइन की परिभाषा

मान लीजिए कि हमारे पास, " Table_A राईट आउटर Join Table Table " है। इसलिए Table_A हमारी बाईं तालिका है क्योंकि यह दाईं ओर से जुड़ने के ऑपरेशन के बाईं ओर दिखाई देती है और Table_B हमारी दाईं तालिका है।

लेफ्ट आउटर जॉइन की तरह, शुरू में, इनर जॉइन टेबल_ए और टेबल_ पर लागू किया जाएगा जो टेबल ए और बी से सभी मिलान ट्यूपल को लौटा देगा।

इसके बाद, यह टेबल_ से सभी ट्यूपलों को लौटा देगा जिनके पास टेबल_ए में एक मिलान ट्यूपल नहीं है। ऐसा है कि परिणामी टुपल्स को बाईं तालिका की विशेषताओं के लिए NULL मानों के साथ गद्देदार किया जाएगा।

इसलिए, सही बाहरी जुड़ने से प्राप्त परिणाम सही तालिका से सभी ट्यूपल्स को बरकरार रखता है और बाएं टेबल से केवल मिलान ट्यूपल्स।

आइए एक उदाहरण के साथ राइट आउटर जॉइन पर चर्चा करें; ऊपर हमारे पास दो टेबल हैं, स्टूडेंट टेबल और डिपार्टमेंट टेबल।

अब, हम स्टूडेंट टेबल और डिपार्टमेंट टेबल पर राईट आउटर जॉइन करेंगे।

* छात्र राइट जॉइन विभाग से * का चयन करें
छात्र पर। छात्र_आईडी = विभाग

उपरोक्त क्वेरी में, छात्र तालिका हमारी बाईं तालिका है और विभाग तालिका हमारी सही तालिका है। राइट आउटर जॉइन ऑपरेशन के अनुसार, परिणाम में डिपार्टमेंट टेबल से सभी ट्यूपल्स और स्टूडेंट टेबल से केवल मिलान ट्यूपल शामिल होना चाहिए।

सही बाहरी जुड़ने से प्राप्त परिणाम का निरीक्षण करें; इसमें स्टूडेंट और डिपार्टमेंट टेबल दोनों से मैचिंग ट्यूपल्स के साथ डिपार्टमेंट टेबल से सभी ट्यूपल्स हैं। छात्र तालिका 10536 और विभाग तालिका के 00954, छात्र तालिका में मौजूद नहीं हैं। इसलिए, Student_ID 10536 और 00954 के लिए नाम का विशेषता मान NULL तक बढ़ा दिया गया है।

पूर्ण बाहरी की परिभाषा में शामिल हों

मान लीजिए कि हमारे पास, " Table_A पूर्ण बाहरी तालिका Table_B में शामिल हों "। तो Table_A हमारी बाईं तालिका है क्योंकि यह पूर्ण बाहरी जुड़ाव ऑपरेशन के बाईं ओर दिखाई देता है और Table_B हमारी दाईं तालिका है।

Full Outer Join, Left Outer Join और Right Outer Join दोनों का संयोजन है। प्रारंभ में, यह दोनों टेबल से मिलान ट्यूप को पुनः प्राप्त करने के लिए Table_A और Table_B पर आंतरिक रूप से जुड़ता है। फिर यह NULL के साथ Table_A के उन tuples का विस्तार करता है, जिनमें Table_B में एक मिलान tuple नहीं है। इसके अलावा, यह उन तालिकाओं को तालिका_ से बढ़ाता है, जिनके पास NULL के साथ होते हैं, जिनके पास Table_A में एक मिलान ट्यूपल नहीं है।

इसलिए, पूरा बाहरी जोड़ बाईं ओर से सभी तालिकाओं के साथ-साथ दाईं तालिका के साथ-साथ दोनों तालिकाओं के मिलान वाले tuples को बनाए रखता है।

आइए हम एक उदाहरण के साथ पूर्ण बाहरी चर्चा करें; हमारे पास दो टेबल ऊपर हैं, स्टूडेंट टेबल और डिपार्टमेंट टेबल।

अब, हम स्टूडेंट टेबल और डिपार्टमेंट टेबल पर फुल आउटर जॉइन करेंगे।

छात्र पूर्ण जोत विभाग से * का चयन करें
छात्र पर। छात्र_आईडी = विभाग

उपरोक्त क्वेरी में, छात्र तालिका हमारी बाईं तालिका है और विभाग तालिका हमारी दाईं तालिका है। पूर्ण बाहरी जुड़ाव के अनुसार, परिणाम में दोनों तालिकाओं से सभी tuples शामिल होना चाहिए।

पूर्ण बाहरी जुड़ाव से प्राप्त परिणाम का निरीक्षण करें; इसमें स्टूडेंट और डिपार्टमेंट टेबल से सभी ट्यूपल्स के साथ-साथ स्टूडेंट और डिपार्टमेंट टेबल दोनों से मैचिंग ट्यूपल्स हैं। स्टूडेंट टेबल के जिम्मी के छात्र जोसफ हैरी, जो क्रमशः 10026, 02256, 56362 हैं, डिपार्टमेंट टेबल में मौजूद नहीं थे। इसलिए, जिमी, जोसेफ हैरी के लिए विभाग तालिका के गुण मान NULL तक बढ़ाए गए हैं। विभाग तालिका के छात्र_आईडी 10536 और 00954, छात्र तालिका के छात्र_आईडी कॉलम में मौजूद नहीं हैं। इसलिए, Student_ID 10536 और 00954 नाम विशेषता का मान NULL तक बढ़ा दिया गया है

बाएँ, दाएँ और पूर्ण बाहरी के बीच मुख्य अंतर

  1. लेफ्ट आउटर जॉइन के परिणाम में लेफ्ट टेबल के सभी ट्यूपल हैं। इसी तरह, राईट आउटर जॉइन के परिणाम में दायें टेबल के सभी ट्यूपल हैं। और फुल आउटर जॉइन के परिणाम में लेफ्ट और राइट टेबल दोनों से सभी ट्यूपल हैं।
  2. लेफ्ट आउटर जॉइन में, लेफ्ट टेबल के ट्यूपल जिनके पास राइट टेबल में मैचिंग टुपल नहीं है, उन्हें राइट टेबल की विशेषताओं के लिए नल मान के साथ बढ़ाया जाता है। ओपोजिट राइट आउटर जॉइन का मामला है। और फुल आउटर जॉइन में, लेफ्ट और राईट टेबल से ट्यूपल्स जिनमें क्रमशः राईट और लेफ्ट टेबल में मैचिंग टुपल्स नहीं होते हैं, उन्हें क्रमशः राइट और लेफ्ट टेबल की विशेषताओं के लिए NULL के साथ बढ़ाया जाता है।

निष्कर्ष:

क्वेरी में तालिका नामों की स्थिति का ध्यान रखें। जैसा कि क्वेरी में तालिका के नाम की स्थिति तय करती है कि क्या तालिका को बाईं तालिका या दाईं तालिका माना जाएगा।

Top