SQL JOINs

From binaryoption
Jump to navigation Jump to search
Баннер1
    1. एसक्यूएल JOINs: शुरुआती के लिए संपूर्ण मार्गदर्शिका

एसक्यूएल (स्ट्रक्चर्ड क्वेरी लैंग्वेज) डेटाबेस से डेटा निकालने और प्रबंधित करने के लिए सबसे व्यापक रूप से इस्तेमाल की जाने वाली भाषाओं में से एक है। जब आपके पास कई तालिकाओं में विभाजित डेटा होता है, तो इन तालिकाओं से संबंधित डेटा को संयोजित करने की क्षमता महत्वपूर्ण हो जाती है। यहीं पर एसक्यूएल JOINs काम आते हैं। यह लेख शुरुआती लोगों के लिए एसक्यूएल JOINs की व्यापक समझ प्रदान करेगा, जिसमें विभिन्न प्रकार के JOINs, उनका सिंटैक्स और वास्तविक दुनिया के उदाहरण शामिल हैं। हम डेटाबेस सामान्यीकरण के महत्व पर भी विचार करेंगे, जो JOINs की आवश्यकता को कम करने में मदद करता है।

JOINs क्या हैं?

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

मान लीजिए हमारे पास दो तालिकाएँ हैं: 'ग्राहक' और 'आदेश'।

  • 'ग्राहक' तालिका में ग्राहकों की जानकारी होती है, जैसे ग्राहक आईडी, नाम और ईमेल।
  • 'आदेश' तालिका में ग्राहक द्वारा दिए गए आदेशों की जानकारी होती है, जैसे आदेश आईडी, ग्राहक आईडी और आदेश तिथि।

यदि हम प्रत्येक ग्राहक के लिए सभी आदेशों को प्राप्त करना चाहते हैं, तो हमें इन दो तालिकाओं को JOIN करना होगा।

JOINs के प्रकार

एसक्यूएल में कई प्रकार के JOINs उपलब्ध हैं, जिनमें से प्रत्येक का उपयोग विभिन्न परिदृश्यों में किया जाता है:

  • INNER JOIN: यह सबसे आम प्रकार का JOIN है। यह केवल उन पंक्तियों को लौटाता है जिनमें दोनों तालिकाओं में मिलान करने वाले मान होते हैं।
  • LEFT (या LEFT OUTER) JOIN: यह बाईं तालिका (JOIN क्लॉज में पहले निर्दिष्ट तालिका) से सभी पंक्तियों को लौटाता है, और दाईं तालिका से मिलान करने वाली पंक्तियाँ। यदि दाईं तालिका में कोई मिलान नहीं है, तो दाईं तालिका के कॉलम के लिए NULL मान लौटाए जाते हैं।
  • RIGHT (या RIGHT OUTER) JOIN: यह LEFT JOIN के समान है, लेकिन यह दाईं तालिका से सभी पंक्तियों को लौटाता है, और बाईं तालिका से मिलान करने वाली पंक्तियाँ। यदि बाईं तालिका में कोई मिलान नहीं है, तो बाईं तालिका के कॉलम के लिए NULL मान लौटाए जाते हैं।
  • FULL (या FULL OUTER) JOIN: यह दोनों तालिकाओं से सभी पंक्तियों को लौटाता है। यदि किसी तालिका में दूसरी तालिका में कोई मिलान नहीं है, तो दूसरी तालिका के कॉलम के लिए NULL मान लौटाए जाते हैं।
  • CROSS JOIN: यह प्रत्येक तालिका से प्रत्येक पंक्ति के सभी संभावित संयोजनों को लौटाता है। इसका उपयोग अक्सर तालिकाओं के बीच सभी संभावित युग्मों को उत्पन्न करने के लिए किया जाता है।
  • SELF JOIN: यह एक ही तालिका को स्वयं से JOIN करता है। इसका उपयोग अक्सर पदानुक्रमित डेटा या तालिकाओं में संबंध खोजने के लिए किया जाता है।

INNER JOIN का सिंटैक्स और उदाहरण

INNER JOIN का सिंटैक्स इस प्रकार है:

```sql SELECT कॉलम_सूची FROM तालिका1 INNER JOIN तालिका2 ON तालिका1.कॉलम_नाम = तालिका2.कॉलम_नाम; ```

उदाहरण के लिए, 'ग्राहक' और 'आदेश' तालिकाओं को JOIN करने के लिए, हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं:

```sql SELECT ग्राहकों.नाम, आदेश.आदेश_आईडी, आदेश.आदेश_तिथि FROM ग्राहक INNER JOIN आदेश ON ग्राहक.ग्राहक_आईडी = आदेश.ग्राहक_आईडी; ```

यह क्वेरी उन सभी ग्राहकों के नाम, आदेश आईडी और आदेश तिथि लौटाएगी जिन्होंने आदेश दिए हैं।

LEFT JOIN का सिंटैक्स और उदाहरण

LEFT JOIN का सिंटैक्स इस प्रकार है:

```sql SELECT कॉलम_सूची FROM तालिका1 LEFT JOIN तालिका2 ON तालिका1.कॉलम_नाम = तालिका2.कॉलम_नाम; ```

उदाहरण के लिए, उन सभी ग्राहकों के नाम और उनके आदेशों को प्राप्त करने के लिए, भले ही उन्होंने कोई आदेश न दिया हो, हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं:

```sql SELECT ग्राहक.नाम, आदेश.आदेश_आईडी, आदेश.आदेश_तिथि FROM ग्राहक LEFT JOIN आदेश ON ग्राहक.ग्राहक_आईडी = आदेश.ग्राहक_आईडी; ```

यह क्वेरी उन सभी ग्राहकों के नाम और उनके आदेश आईडी और आदेश तिथि लौटाएगी जिन्होंने आदेश दिए हैं। उन ग्राहकों के लिए जिन्होंने कोई आदेश नहीं दिया है, आदेश आईडी और आदेश तिथि NULL होगी।

RIGHT JOIN का सिंटैक्स और उदाहरण

RIGHT JOIN का सिंटैक्स इस प्रकार है:

```sql SELECT कॉलम_सूची FROM तालिका1 RIGHT JOIN तालिका2 ON तालिका1.कॉलम_नाम = तालिका2.कॉलम_नाम; ```

उदाहरण के लिए, उन सभी आदेशों को प्राप्त करने के लिए, भले ही उनका कोई संबंधित ग्राहक न हो, हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं:

```sql SELECT ग्राहक.नाम, आदेश.आदेश_आईडी, आदेश.आदेश_तिथि FROM ग्राहक RIGHT JOIN आदेश ON ग्राहक.ग्राहक_आईडी = आदेश.ग्राहक_आईडी; ```

यह क्वेरी उन सभी आदेश आईडी और आदेश तिथि लौटाएगी। उन आदेशों के लिए जिनका कोई संबंधित ग्राहक नहीं है, ग्राहक का नाम NULL होगा।

FULL JOIN का सिंटैक्स और उदाहरण

FULL JOIN का सिंटैक्स इस प्रकार है:

```sql SELECT कॉलम_सूची FROM तालिका1 FULL JOIN तालिका2 ON तालिका1.कॉलम_नाम = तालिका2.कॉलम_नाम; ```

उदाहरण के लिए, उन सभी ग्राहकों और आदेशों को प्राप्त करने के लिए, भले ही उनका कोई मिलान न हो, हम निम्नलिखित क्वेरी का उपयोग कर सकते हैं:

```sql SELECT ग्राहक.नाम, आदेश.आदेश_आईडी, आदेश.आदेश_तिथि FROM ग्राहक FULL JOIN आदेश ON ग्राहक.ग्राहक_आईडी = आदेश.ग्राहक_आईडी; ```

यह क्वेरी उन सभी ग्राहकों और आदेशों को लौटाएगी। उन ग्राहकों के लिए जिनका कोई आदेश नहीं है, आदेश आईडी और आदेश तिथि NULL होगी। उन आदेशों के लिए जिनका कोई संबंधित ग्राहक नहीं है, ग्राहक का नाम NULL होगा।

CROSS JOIN का सिंटैक्स और उदाहरण

CROSS JOIN का सिंटैक्स इस प्रकार है:

```sql SELECT कॉलम_सूची FROM तालिका1 CROSS JOIN तालिका2; ```

उदाहरण के लिए, यदि हमारे पास दो तालिकाएँ हैं: 'रंग' (लाल, हरा, नीला) और 'आकार' (छोटा, मध्यम, बड़ा), तो हम निम्नलिखित क्वेरी का उपयोग करके सभी संभावित संयोजनों को प्राप्त कर सकते हैं:

```sql SELECT रंग.रंग_नाम, आकार.आकार_नाम FROM रंग CROSS JOIN आकार; ```

यह क्वेरी 9 पंक्तियों का परिणाम देगा, प्रत्येक पंक्ति रंग और आकार के एक अद्वितीय संयोजन का प्रतिनिधित्व करती है।

SELF JOIN का सिंटैक्स और उदाहरण

SELF JOIN का सिंटैक्स इस प्रकार है:

```sql SELECT कॉलम_सूची FROM तालिका1 AS T1 JOIN तालिका1 AS T2 ON T1.कॉलम_नाम = T2.कॉलम_नाम; ```

उदाहरण के लिए, यदि हमारे पास एक 'कर्मचारी' तालिका है जिसमें कर्मचारी आईडी, नाम और प्रबंधक आईडी शामिल है, तो हम निम्नलिखित क्वेरी का उपयोग करके प्रत्येक कर्मचारी के लिए उनके प्रबंधक का नाम प्राप्त कर सकते हैं:

```sql SELECT E1.नाम AS कर्मचारी_नाम, E2.नाम AS प्रबंधक_नाम FROM कर्मचारी AS E1 JOIN कर्मचारी AS E2 ON E1.प्रबंधक_आईडी = E2.कर्मचारी_आईडी; ```

यह क्वेरी प्रत्येक कर्मचारी के नाम और उनके प्रबंधक का नाम लौटाएगी।

JOINs का प्रदर्शन अनुकूलन

JOINs डेटाबेस प्रदर्शन पर महत्वपूर्ण प्रभाव डाल सकते हैं। यहां कुछ युक्तियां दी गई हैं JOINs के प्रदर्शन को अनुकूलित करने के लिए:

  • इंडेक्सिंग: JOIN में उपयोग किए जाने वाले कॉलम पर इंडेक्स बनाने से क्वेरी गति को काफी बढ़ाया जा सकता है। डेटाबेस इंडेक्सिंग एक महत्वपूर्ण अवधारणा है।
  • WHERE क्लॉज का उपयोग: JOIN से पहले WHERE क्लॉज का उपयोग करके डेटा की मात्रा को कम करें।
  • सही JOIN प्रकार का चयन: अपनी विशिष्ट आवश्यकताओं के लिए सबसे उपयुक्त JOIN प्रकार का चयन करें।
  • तालिकाओं का क्रम: JOIN में तालिकाओं का क्रम प्रदर्शन को प्रभावित कर सकता है। आमतौर पर, छोटी तालिका को पहले JOIN करना बेहतर होता है।
  • डेटाबेस आँकड़े: डेटाबेस आँकड़ों को अद्यतित रखें ताकि क्वेरी ऑप्टिमाइज़र सबसे कुशल क्वेरी योजना चुन सके। क्वेरी ऑप्टिमाइज़ेशन महत्वपूर्ण है।

डेटाबेस सामान्यीकरण और JOINs

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

समापन

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

अतिरिक्त संसाधन

अभी ट्रेडिंग शुरू करें

IQ Option पर रजिस्टर करें (न्यूनतम जमा $10) Pocket Option में खाता खोलें (न्यूनतम जमा $5)

हमारे समुदाय में शामिल हों

हमारे Telegram चैनल @strategybin से जुड़ें और प्राप्त करें: ✓ दैनिक ट्रेडिंग सिग्नल ✓ विशेष रणनीति विश्लेषण ✓ बाजार की प्रवृत्ति पर अलर्ट ✓ शुरुआती के लिए शिक्षण सामग्री

Баннер