Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> SQL

एसक्यूएल बाहरी शामिल हों

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

वहीं SQL जॉइन आते हैं। जब आप टेबल से जुड़ते हैं, तो आप एक से अधिक टेबल पर एक क्वेरी चला सकते हैं और एक संयुक्त परिणाम बना सकते हैं।

इस गाइड में, हम एक प्रकार के जुड़ाव पर ध्यान केंद्रित करने जा रहे हैं:OUTER JOIN . OUTER JOIN ऑपरेटर पंक्तियों को वापस कर देते हैं, भले ही उनके पास अंतिम तालिका में संबंधित पंक्तियाँ न हों। हम तीन प्रकार के OUTER JOIN . पर चर्चा करेंगे s, वे कैसे काम करते हैं, और आप अपने SQL . में उनका उपयोग कैसे कर सकते हैं? प्रश्न।

SQL पुनश्चर्या से जुड़ता है

क्वेरी, जो आमतौर पर SELECT . से शुरू होती हैं स्टेटमेंट का उपयोग डेटाबेस से जानकारी प्राप्त करने के लिए किया जाता है। आमतौर पर, जब आप कोई प्रश्न लिख रहे होते हैं तो आप एक टेबल से जानकारी प्राप्त करने पर ध्यान केंद्रित करेंगे और FROM का उपयोग करेंगे। यह निर्दिष्ट करने के लिए कि आपकी कमांड किस तालिका में क्वेरी करेगी। यहाँ एक मानक SQL लिखने के लिए वाक्य रचना है क्वेरी:

टेबल_नाम से कॉलम_नाम चुनें जहां कुछ_कंडीशन_रे_मेट;

यहां एक क्वेरी का एक उदाहरण दिया गया है जो employees में प्रत्येक कर्मचारी के नामों की सूची प्राप्त करेगा तालिका:

कर्मचारियों से नाम चुनें;

हमारी क्वेरी निम्नलिखित लौटाती है:

नाम
ल्यूक
माइक
हन्ना
ज्योफ
एलेक्सिस
एम्मा
जोनाह
एडम

(8 पंक्तियाँ)

हम WHERE . का भी उपयोग कर सकते हैं क्लॉज हमारी क्वेरी के परिणामों को फ़िल्टर करने के लिए केवल उन रिकॉर्ड्स को शामिल करने के लिए जो मानदंडों के एक निश्चित सेट को पूरा करते हैं। उदाहरण के लिए, हम एक प्रश्न लिख सकते हैं जो सभी बिक्री सहयोगियों या सभी कार्यकारी कर्मचारियों के नाम ढूंढता है।

81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।

बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।

लेकिन क्या होगा यदि हम एकाधिक तालिकाओं से जानकारी प्राप्त करना चाहते हैं, और परिणाम को एक तालिका में जोड़ना चाहते हैं? यहीं से जुड़ते हैं।

जॉइन आपको कई तालिकाओं को क्वेरी करने और मिलान वाली पंक्तियों के साथ एक संयुक्त परिणाम सेट बनाने की अनुमति देता है। जुड़ने के तीन मुख्य प्रकार हैं:INNER JOIN , OUTER JOIN , और CROSS JOIN

INNER JOIN s वापसी पंक्तियाँ जिनका आपके द्वारा क्वेरी की जा रही दोनों तालिकाओं में मिलान है, जबकि OUTER JOIN s वापसी पंक्तियाँ भले ही उनके पास सम्मिलित तालिका में संबंधित पंक्तियाँ न हों। CROSS JOIN s बिना किसी जॉइन कंडीशन के जॉइन होते हैं, और एक टेबल की प्रत्येक पंक्ति को दूसरी टेबल की संबंधित पंक्ति के साथ जोड़ दिया जाता है।

SQL आउटर जॉइन

जैसा कि हमने चर्चा की है, जब आप INNER JOIN . का प्रदर्शन कर रहे होते हैं , किसी भी तालिका की पंक्तियाँ जो किसी अन्य तालिका में बेजोड़ हैं, परिणाम सेट में वापस नहीं की जाएंगी। लेकिन क्या होगा अगर हम इन मूल्यों को प्राप्त करना चाहते हैं? हम OUTER JOIN का उपयोग कर सकते हैं इस डेटा को पुनः प्राप्त करने के लिए।

OUTER JOIN तीन प्रकार के होते हैं :

  • LEFT OUTER JOINS बाएँ तालिका से बेजोड़ पंक्तियाँ लौटाएँ;
  • RIGHT OUTER JOINS दाएँ तालिका से बेजोड़ पंक्तियाँ लौटाएँ;
  • FULL OUTER JOINS सभी तालिकाओं से बेजोड़ पंक्तियां लौटाएं।

OUTER JOIN s हमारी ज़रूरतों के आधार पर दोनों तालिकाओं के रिकॉर्ड का मिलान करने में सक्षम हैं और हमारे द्वारा उपयोग किए जाने वाले जॉइन के प्रकार से संबंधित सभी रिकॉर्ड वापस कर देंगे।

SQL जॉइन:लेफ्ट

लेफ्ट जॉइन लेफ्ट टेबल से सभी पंक्तियों को लौटाता है और राइट टेबल से पंक्तियाँ जहाँ जॉइन की शर्त पूरी होती है।

मान लें कि हमारे पास दो टेबल हैं:employees और company_departments . अब मान लीजिए कि हम प्रत्येक कर्मचारी के नाम के साथ-साथ उनके विभाग के नाम भी प्राप्त करना चाहते थे, भले ही उन्हें किसी विभाग को नहीं सौंपा गया हो। हम यह जानकारी LEFT JOIN का उपयोग करके प्राप्त कर सकते हैं ।

नीचे LEFT JOIN का एक उदाहरण दिया गया है क्वेरी जो कर्मचारियों और company_departments तालिकाओं को उनके सामान्य मूल्य का उपयोग करके एक साथ जोड़कर प्रत्येक कर्मचारी का नाम और उनके विभाग का नाम पुनर्प्राप्त करेगी:विभाग_आईडी।

<पूर्व>कर्मचारियों का चयन करें।

हमारी क्वेरी निम्नलिखित लौटाती है:

<टीडी>
नाम नाम
ल्यूक बिक्री
माइक बिक्री
हन्ना बिक्री
ज्योफ बिक्री
एलेक्सिस बिक्री
एम्मा विपणन
योना कार्यकारी
एडम

(8 पंक्तियाँ)

जैसा कि आप देख सकते हैं, LEFT JOIN employees . से सभी पंक्तियों को वापस कर दिया है तालिका, भले ही जिस विभाग के लिए वे काम करते हैं वह company_departments . में नहीं पाया जा सकता है टेबल।

यदि आप लेफ्ट जॉइन के बारे में अधिक जानना चाहते हैं, तो आप SQL पर करियर कर्मा ट्यूटोरियल पढ़ सकते हैं। यहां ऑपरेशन।

एसक्यूएल जॉइन:राइट

RIGHT JOIN स्टेटमेंट LEFT JOIN . के बिल्कुल विपरीत है ऑपरेटर। RIGHT JOIN दाएँ तालिका से सभी पंक्तियों के साथ-साथ बाईं तालिका की पंक्तियों को लौटाता है जहाँ शामिल होने की शर्त पूरी होती है।

मान लीजिए कि हम सभी विभागों के नामों के साथ-साथ उन विभागों में काम करने वाले प्रत्येक कर्मचारी के नामों की सूची प्राप्त करना चाहते हैं। और हम उन विभागों के लिए भी डेटा प्राप्त करना चाहते हैं जहां कोई कर्मचारी नहीं है। इस डेटा को प्राप्त करने के लिए हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं:

कर्मचारियों का नाम चुनें। 

उपरोक्त क्वेरी निम्नलिखित लौटाती है:

नाम “विभाग का नाम”
ल्यूक बिक्री
माइक बिक्री
हन्ना बिक्री
ज्योफ बिक्री
एलेक्सिस बिक्री
एम्मा विपणन
योना कार्यकारी

पेरोल

सूचना प्रौद्योगिकी

(9 पंक्तियाँ)

जैसा कि आप देख सकते हैं, हमारी क्वेरी ने सभी विभागों की सूची, साथ ही उन विभागों के लिए काम करने वाले प्रत्येक कर्मचारी के नाम लौटाए हैं। क्वेरी ने विभागों को भी लौटा दिया है Payroll और Information Technology , जिसके पास वर्तमान में कोई कर्मचारी नहीं है।

इसके अलावा, हमारी क्वेरी ने एडम को वापस नहीं किया, जो हमारे LEFT JOIN . का कर्मचारी था प्रश्न जो किसी विभाग को नहीं सौंपा गया था। ऐसा इसलिए है क्योंकि RIGHT JOIN सही तालिका से सभी पंक्तियाँ शामिल हैं—company_departments—जहां हमारी शर्तें पूरी होती हैं, और एडम का सही तालिका में किसी भी रिकॉर्ड से कोई संबंध नहीं है।

पूर्ण SQL बाहरी जुड़ाव

FULL OUTER JOINS s एक असामान्य प्रकार के हैं SQL join जिसका उपयोग दोनों तालिकाओं से बेजोड़ रिकॉर्ड वापस करने के लिए किया जा सकता है। अक्सर, full OUTER JOIN दो तालिकाओं के बीच कितना ओवरलैप मौजूद है, यह समझने के लिए कुल कार्यों के साथ s का उपयोग किया जाता है।

मान लीजिए कि हम सभी कर्मचारियों और विभागों की एक सूची प्राप्त करना चाहते हैं। हम निम्नलिखित SQL का उपयोग कर सकते हैं:उस जानकारी को पुनः प्राप्त करने के लिए क्वेरी:

<पूर्व>कर्मचारियों से चुनें।

हमारी क्वेरी निम्नलिखित लौटाती है:

<टीडी>
नाम “विभाग का नाम”
ल्यूक बिक्री
माइक बिक्री
हन्ना बिक्री
ज्योफ बिक्री
एलेक्सिस बिक्री
एम्मा विपणन
योना कार्यकारी
एडम

पेरोल

सूचना प्रौद्योगिकी

(10 पंक्तियाँ)

उपरोक्त परिणाम सेट में प्रत्येक कर्मचारी के नाम की एक सूची शामिल है, साथ ही जिस विभाग को उन्हें सौंपा गया है, भले ही उन्हें किसी विभाग को नहीं सौंपा गया हो। परिणाम सेट में सभी विभाग के नामों की एक सूची भी शामिल है, भले ही किसी विभाग के पास कोई कर्मचारी न हो।

निष्कर्ष

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

इस ट्यूटोरियल में, हमने OUTER JOIN . पर ध्यान केंद्रित किया है s, जो पंक्तियों को join . में लौटाता है भले ही उनके पास सम्मिलित तालिका में संबंधित पंक्तियाँ न हों। हमने तीन मुख्य प्रकार के OUTER JOIN . पर भी चर्चा की s—LEFT JOIN , RIGHT JOIN , और full OUTER JOIN —और पता लगाया कि वे व्यवहार में कैसे काम करते हैं।

अब आप SQL JOIN करने के लिए तैयार हैं एक विशेषज्ञ की तरह संचालन!


  1. SQL में एक ऑल्टर टेबल स्क्रिप्ट कैसे उत्पन्न करें

    SQL 2005 में, आपको एक ऐसी स्थिति का सामना करना पड़ सकता है जहाँ आपको एक ALTER TABLE स्क्रिप्ट बनाने की आवश्यकता होती है, जैसे डेटाबेस में एक नया कॉलम जोड़ते समय या फ़ील्ड प्रकार बदलना आदि। यदि आप किसी विशेष SQL फ़ंक्शन के लिए स्क्रिप्ट जेनरेट करना चाहते हैं, जैसे कि CREATE, SELECT, UPDATE, आदि, तो

  1. SQL सर्वर में PIVOT क्लॉज

    SQL Server (Transact-SQL) में, PIVOT क्लॉज क्रॉस टेबुलेशन को डेटा को एक टेबल से दूसरी टेबल में ट्रांसफर करने की अनुमति देता है, यानी, कुल परिणाम प्राप्त करें और लाइन से कॉलम में स्थानांतरित करें। उदाहरण योग की गणना करता है और फिर पंक्तियों को डेटा तालिका में कॉलम में भेजता है पिवट क्लॉज सिंटैक

  1. SQL सर्वर में शामिल हों

    SQL Server (Transact-SQL) में JOIN का उपयोग कई तालिकाओं से डेटा पुनर्प्राप्त करने के लिए किया जाता है, जब SQL कमांड में दो या दो से अधिक टेबल एक साथ जुड़े होते हैं। यहाँ SQL सर्वर में 4 प्रकार के JOIN हैं आंतरिक शामिल हों - साधारण कनेक्शन फॉर्म के रूप में भी जाना जाता है बाएं बाहरी शामिल हों - या ब