BCA / B.Tech 11 min read

Join & Types in Hindi

Join In RDBMS in Hindi | RDBMS में जॉइन हिंदी में :


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

JOIN ऑपरेशन का उपयोग विभिन्न टेबल्स में संबंधित डेटा को एक साथ प्रस्तुत करने के लिए किया जाता है, जैसे कि ग्राहक जानकारी और उनके ऑर्डर को एक ही परिणाम में लाना। आइए JOIN और उसके विभिन्न प्रकारों को विस्तार से समझते हैं:

JOIN क्या है?

JOIN SQL में एक क्लॉज है जो एक क्वेरी के दौरान दो या अधिक टेबल्स के बीच संबंध स्थापित करता है और उनके मिलते हुए रिकॉर्ड्स को निकालता है। JOIN ऑपरेशन उन कॉलम्स के आधार पर काम करता है जो संबंधित टेबल्स के बीच एक कॉमन रिलेशन (जैसे Primary Key और Foreign Key) को दर्शाते हैं। 

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

JOIN के मुख्य प्रकार

SQL में मुख्य रूप से चार प्रकार के JOIN होते हैं:

1. INNER JOIN
2. LEFT JOIN (या LEFT OUTER JOIN)
3. RIGHT JOIN (या RIGHT OUTER JOIN)
4. FULL JOIN (या FULL OUTER JOIN)

इसके अलावा कुछ विशेष JOIN भी होते हैं जैसे कि CROSS JOIN और SELF JOIN, जिनका उपयोग विशिष्ट परिदृश्यों में किया जाता है।

1. INNER JOIN
परिभाषा : INNER JOIN दो या अधिक टेबल्स के केवल उन रिकॉर्ड्स को निकालता है जो सभी टेबल्स में एक कॉमन कॉलम पर मैच करते हैं। यदि दोनों टेबल्स में रिकॉर्ड मिलते हैं, तभी वह परिणाम में शामिल किया जाता है।
  
उदाहरण :
   मान लीजिए कि हमारे पास दो टेबल्स हैं, `Customers` और `Orders`। अगर हम उन कस्टमर्स और उनके ऑर्डर्स को खोजना चाहते हैं जिन्होंने वास्तव में ऑर्डर किया है, तो हम INNER JOIN का उपयोग करेंगे।
  
  ```sql
  SELECT Customers.CustomerID, Customers.CustomerName, Orders.OrderID
  FROM Customers
  INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
  ```
   इस क्वेरी में केवल उन्हीं कस्टमर्स के रिकॉर्ड आएंगे, जिन्होंने ऑर्डर किया है।

2. LEFT JOIN (LEFT OUTER JOIN)
परिभाषा : LEFT JOIN वह JOIN है जिसमें बाएँ (LEFT) टेबल के सभी रिकॉर्ड्स को परिणाम में शामिल किया जाता है, भले ही दाएँ (RIGHT) टेबल में उनका मैच हो या न हो। अगर मैच नहीं होता है, तो दाएँ टेबल के कॉलम्स के लिए NULL मान सेट कर दिया जाता है।
  
उदाहरण :
 अगर हम सभी कस्टमर्स को और उनके ऑर्डर्स को (अगर कोई हो) देखना चाहते हैं, तो हम LEFT JOIN का उपयोग करेंगे। यह उन कस्टमर्स को भी दिखाएगा जिन्होंने कोई ऑर्डर नहीं किया है।
  
  ```sql
  SELECT Customers.CustomerID, Customers.CustomerName, Orders.OrderID
  FROM Customers
  LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
  ```
   इस क्वेरी में सभी कस्टमर्स आएंगे, भले ही उन्होंने कोई ऑर्डर किया हो या नहीं।

3. RIGHT JOIN (RIGHT OUTER JOIN)
परिभाषा : RIGHT JOIN LEFT JOIN का विपरीत होता है। इसमें दाएँ (RIGHT) टेबल के सभी रिकॉर्ड्स को परिणाम में शामिल किया जाता है, भले ही बाएँ (LEFT) टेबल में उनका मैच हो या न हो। अगर मैच नहीं होता है, तो बाएँ टेबल के कॉलम्स के लिए NULL मान सेट कर दिया जाता है।
  
उदाहरण :
   अगर हम सभी ऑर्डर्स को और उनके संबंधित कस्टमर्स को (अगर कोई हो) देखना चाहते हैं, तो हम RIGHT JOIN का उपयोग करेंगे। यह उन ऑर्डर्स को भी दिखाएगा जिनके कस्टमर्स का डेटा `Customers` टेबल में नहीं है।
  
  ```sql
  SELECT Customers.CustomerID, Customers.CustomerName, Orders.OrderID
  FROM Customers
  RIGHT JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
  ```
   इस क्वेरी में सभी ऑर्डर्स आएंगे, भले ही उनका कोई कस्टमर हो या नहीं।

4. FULL JOIN (FULL OUTER JOIN)
परिभाषा : FULL JOIN दोनों टेबल्स के सभी रिकॉर्ड्स को निकालता है, चाहे वे एक-दूसरे से मिलते हों या नहीं। अगर किसी टेबल में मैचिंग रिकॉर्ड नहीं मिलता है, तो उसके लिए NULL मान सेट किया जाता है। यह JOIN LEFT और RIGHT JOIN दोनों का संयुक्त रूप है।
  
उदाहरण :
   अगर हम सभी कस्टमर्स और सभी ऑर्डर्स को देखना चाहते हैं, भले ही उनके बीच संबंध हो या न हो, तो हम FULL JOIN का उपयोग करेंगे।
  
  ```sql
  SELECT Customers.CustomerID, Customers.CustomerName, Orders.OrderID
  FROM Customers
  FULL OUTER JOIN Orders ON Customers.CustomerID = Orders.CustomerID;
  ```
   इस क्वेरी में सभी कस्टमर्स और सभी ऑर्डर्स आएंगे, भले ही वे एक-दूसरे से जुड़े हों या नहीं।

5. CROSS JOIN 
परिभाषा : CROSS JOIN दो टेबल्स का Cartesian Product (हर एक रिकॉर्ड को दूसरी टेबल के हर एक रिकॉर्ड के साथ जोड़ना) बनाता है। इसका उपयोग सामान्यतः तब होता है जब हम सभी संभावित संयोजनों को देखना चाहते हैं।
  
उदाहरण :
   अगर हमारे पास `Products` और `Categories` टेबल्स हैं और हम सभी उत्पादों और श्रेणियों के संयोजन को देखना चाहते हैं, तो CROSS JOIN का उपयोग करेंगे।
  
  ```sql
  SELECT Products.ProductName, Categories.CategoryName
  FROM Products
  CROSS JOIN Categories;
  ```
   इस क्वेरी में `Products` और `Categories` के सभी संभावित संयोजन आएंगे।

6. SELF JOIN 
परिभाषा : SELF JOIN एक टेबल को उसी के साथ जोड़ता है। इसका उपयोग तब होता है जब हमें एक ही टेबल में विभिन्न रिकॉर्ड्स के बीच संबंधों का विश्लेषण करना हो।
  
उदाहरण :
   अगर हमारे पास `Employees` टेबल है और हम प्रत्येक कर्मचारी के मैनेजर को देखना चाहते हैं, जो कि उसी टेबल में संग्रहीत है, तो SELF JOIN का उपयोग करेंगे।
  
  ```sql
  SELECT A.EmployeeID, A.EmployeeName, B.EmployeeName AS ManagerName
  FROM Employees A, Employees B
  WHERE A.ManagerID = B.EmployeeID;
  ```
   इस क्वेरी में प्रत्येक कर्मचारी और उसके मैनेजर का नाम आएगा।

JOIN का महत्व :

डेटा का संयोजन : JOIN विभिन्न टेबल्स के डेटा को एक साथ लाने में मदद करता है, जिससे डेटा का समग्र और पूर्ण दृश्य प्राप्त होता है।
  
डेटा इंटीग्रिटी : यह सुनिश्चित करता है कि टेबल्स के बीच संबंध सही तरीके से बनाए और उपयोग किए जा रहे हैं।
  
क्वेरी ऑप्टिमाइजेशन : सही प्रकार का JOIN चुनने से क्वेरी प्रदर्शन में सुधार होता है, खासकर जब बड़ी मात्रा में डेटा शामिल हो।

JOIN ऑपरेशन्स का प्रदर्शन
INDEXES का उपयोग : जब टेबल्स को JOIN किया जाता है, तो इंडेक्स का उपयोग प्रदर्शन को बढ़ाने में मदद करता है।
JOIN क्रम : SQL ऑप्टिमाइज़र JOIN के क्रम को बदल सकता है, ताकि न्यूनतम लागत और अधिकतम प्रदर्शन प्राप्त किया जा सके।
डेटा स्कैनिंग : विभिन्न प्रकार के JOIN ऑपरेशन्स में अलग-अलग प्रकार की डेटा स्कैनिंग की आवश्यकता होती है। कुछ JOIN ऑपरेशन्स (जैसे कि NESTED LOOP JOIN) अधिक समय और संसाधन ले सकते हैं, खासकर अगर इंडेक्सिंग सही नहीं है।

सारांश :
  • JOIN SQL में एक शक्तिशाली उपकरण है जो विभिन्न टेबल्स के बीच संबंध स्थापित करके डेटा को संयोजित करता है।
  • INNER JOIN केवल उन रिकॉर्ड्स को दिखाता है जो दोनों टेबल्स में मिलते हैं।
  • LEFT JOIN बाएँ टेबल के सभी रिकॉर्ड्स को दिखाता है, भले ही दाएँ टेबल में उनका मिलान न हो।
  • RIGHT JOIN दाएँ टेबल के सभी रिकॉर्ड्स को दिखाता है, भले ही बाएँ टेबल में उनका मिलान न हो।
  • FULL JOIN दोनों टेबल्स के सभी रिकॉर्ड्स को दिखाता है, चाहे उनका मिलान हो या नहीं।
  • CROSS JOIN हर एक रिकॉर्ड को दूसरी टेबल के हर एक रिकॉर्ड के साथ जोड़ता है।
  • SELF JOIN एक ही टेबल के विभिन्न रिकॉर्ड्स के बीच संबंध का विश्लेषण करता है।

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

In this Chapter