BCA / B.Tech 11 min read

Join & Types in Hindi

Join & Types in DBMS in Hindi | DBMS में जॉइन और इसके प्रकार हिंदी में :


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

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

JOINs के प्रकार :

SQL में निम्नलिखित मुख्य प्रकार के JOIN होते हैं:

INNER JOIN
LEFT JOIN (LEFT OUTER JOIN)
RIGHT JOIN (RIGHT OUTER JOIN)
FULL JOIN (FULL OUTER JOIN)
CROSS JOIN
SELF JOIN
आइए इन सभी प्रकारों को विस्तार से समझते हैं:

1. INNER JOIN :
INNER JOIN सबसे सामान्य प्रकार का JOIN है। यह उन रिकॉर्ड्स को वापस करता है जो दोनों (या सभी) टेबल्स में एक सामान्य कॉलम में मेल खाते हैं। अगर रिकॉर्ड्स किसी भी टेबल में मेल नहीं खाते हैं, तो वे परिणाम में शामिल नहीं होते हैं।

उदाहरण :

SELECT Employees.Employee_Name, Departments.Department_Name
FROM Employees
INNER JOIN Departments
ON Employees.Employee_ID = Departments.Employee_ID;


फायदे :

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

नुकसान :

  • रिकॉर्ड्स की छूट: अगर दोनों टेबल्स में कोई मेल नहीं होता है, तो वह डेटा परिणाम में शामिल नहीं होता, जिससे कुछ महत्वपूर्ण जानकारी छूट सकती है।
  • डेटा लॉस का जोखिम: जिन रिकॉर्ड्स का मेल नहीं होता, वे पूरी तरह छोड़ दिए जाते हैं, जिससे कुछ मामलों में डेटा लॉस हो सकता है।

मान लें कि हमारे पास दो टेबल्स हैं:

अब, यदि हम INNER JOIN का उपयोग करते हैं, तो केवल उन्हीं कर्मचारियों की जानकारी प्राप्त होगी जिनके विभाग मौजूद हैं:

2. LEFT JOIN (LEFT OUTER JOIN) :

LEFT JOIN उन सभी रिकॉर्ड्स को लौटाता है जो बाईं ओर की टेबल में होते हैं (LEFT टेबल), भले ही वे दाईं ओर की टेबल (RIGHT टेबल) में मेल खाते हों या नहीं। अगर RIGHT टेबल में कोई मेल नहीं होता है, तो NULL मानों के साथ उस टेबल के कॉलम दिखाए जाते हैं।

उदाहरण :
SELECT Employees.Employee_Name, Departments.Department_Name
FROM Employees
LEFT JOIN Departments
ON Employees.Employee_ID = Departments.Employee_ID;

मान लें कि हम पिछले उदाहरण में LEFT JOIN का उपयोग करते हैं:

फायदे :

  • पूरी जानकारी: बाईं टेबल (LEFT) के सभी रिकॉर्ड्स लौटाए जाते हैं, भले ही दाईं टेबल में मेल न खाता हो, जिससे बाईं टेबल के सभी डेटा को संरक्षित किया जाता है।
  • लचीला: अगर बाईं टेबल के सभी डेटा की आवश्यकता हो, तो LEFT JOIN उपयोगी है।
  • NULL मानों से संदर्भ: मेल न खाने वाले रिकॉर्ड्स में NULL मान आ जाते हैं, जिससे यह पता चलता है कि किस टेबल में डेटा नहीं मिला।

नुकसान :

  • अतिरिक्त डेटा: LEFT JOIN में उन रिकॉर्ड्स के लिए भी NULL मान लौटाए जाते हैं जिनका मेल नहीं हुआ, जिससे अनावश्यक डेटा शामिल हो सकता है।
  • क्वेरी धीमी हो सकती है: जब बड़ी टेबल्स के साथ काम किया जाता है, तो LEFT JOIN के परिणामस्वरूप अधिक डेटा लौटाया जा सकता है, जिससे क्वेरी धीमी हो सकती है।


3. RIGHT JOIN (RIGHT OUTER JOIN) :

RIGHT JOIN LEFT JOIN का विपरीत होता है। यह उन सभी रिकॉर्ड्स को लौटाता है जो दाईं ओर की टेबल (RIGHT टेबल) में होते हैं, चाहे वे बाईं टेबल (LEFT टेबल) में मेल खाते हों या नहीं। अगर LEFT टेबल में कोई मेल नहीं होता है, तो NULL मानों के साथ उस टेबल के कॉलम दिखाए जाते हैं।

उदाहरण :
SELECT Employees.Employee_Name, Departments.Department_Name
FROM Employees
RIGHT JOIN Departments
ON Employees.Employee_ID = Departments.Employee_ID;


फायदे :

  • दाईं टेबल की प्राथमिकता: यह दाईं टेबल (RIGHT) के सभी रिकॉर्ड्स लौटाता है, जिससे दाईं टेबल का डेटा संरक्षित रहता है, चाहे मेल हो या न हो।
  • NULL मानों के साथ लचीलापन: अगर बाईं टेबल में मेल नहीं होता है, तो भी दाईं टेबल के डेटा के साथ NULL मानों का उपयोग करके परिणाम प्राप्त किया जा सकता है।

नुकसान :

  • कम उपयोगिता: RIGHT JOIN का उपयोग LEFT JOIN की तुलना में कम किया जाता है क्योंकि LEFT JOIN अधिक सामान्य परिदृश्यों में उपयोगी होता है।
  • अतिरिक्त डेटा: NULL मानों के साथ अधिक डेटा लौटाया जा सकता है, जो अनावश्यक हो सकता है।
  • कम स्पष्टता: अगर LEFT JOIN के बजाय RIGHT JOIN का उपयोग किया जाता है, तो क्वेरी की समझ और व्याख्या कठिन हो सकती है।


4. FULL JOIN (FULL OUTER JOIN) :

FULL JOIN उन सभी रिकॉर्ड्स को लौटाता है जो दोनों टेबल्स में होते हैं। अगर टेबल्स में मेल होते हैं, तो मेल खाते हुए रिकॉर्ड्स लौटाए जाते हैं। अगर मेल नहीं होते, तो NULL मानों के साथ परिणाम लौटाए जाते हैं।

उदाहरण :
SELECT Employees.Employee_Name, Departments.Department_Name
FROM Employees
FULL OUTER JOIN Departments
ON Employees.Employee_ID = Departments.Employee_ID;


फायदे :

  • कुल डेटा प्राप्ति: यह दोनों टेबल्स से सभी रिकॉर्ड्स लौटाता है, चाहे मेल खाते हों या न हों। यह सुनिश्चित करता है कि कोई भी डेटा छूटे नहीं।
  • डेटा की पूरी तस्वीर: FULL JOIN से आपको दोनों टेबल्स का डेटा, चाहे मेल खाता हो या न हो, मिल सकता है, जिससे संपूर्ण दृष्टिकोण प्राप्त होता है।

नुकसान :

  • अतिरिक्त डेटा : इसमें बहुत सारे NULL मान शामिल हो सकते हैं, जो कि जटिलता और भ्रम पैदा कर सकते हैं।
  • प्रदर्शन में गिरावट : बड़ी टेबल्स के लिए, FULL JOIN बहुत धीमा हो सकता है और सिस्टम पर अधिक संसाधनों का उपयोग कर सकता है।
  • कम उपयोग : व्यावहारिक परिदृश्यों में इसका उपयोग अपेक्षाकृत कम होता है, क्योंकि INNER, LEFT या RIGHT JOIN कई बार पर्याप्त होते हैं।


5. CROSS JOIN:
CROSS JOIN बिना किसी संबंध के दोनों टेबल्स के सभी रिकॉर्ड्स का Cartesian Product देता है। यानी, प्रत्येक टेबल का हर रिकॉर्ड दूसरी टेबल के हर रिकॉर्ड के साथ जोड़ा जाता है।

उदाहरण :
SELECT Employees.Employee_Name, Departments.Department_Name
FROM Employees
CROSS JOIN Departments;


फायदे:

  • सभी संयोजनों का मूल्यांकन: CROSS JOIN से दोनों टेबल्स के हर संभव संयोजन का परिणाम मिलता है, जो विश्लेषण के लिए उपयोगी हो सकता है।
  • डेटा का Cartesian Product: जब किसी विशेष स्थिति में सभी संयोजनों की आवश्यकता होती है, तब यह JOIN उपयोगी होता है।

नुकसान :

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


6. SELF JOIN :

SELF JOIN तब उपयोग किया जाता है जब एक ही टेबल में दो रिकॉर्ड्स के बीच संबंध स्थापित करने की आवश्यकता होती है। इसका उपयोग एक ही टेबल के भीतर डेटा की तुलना करने के लिए किया जाता है।

उदाहरण :
SELECT A.Employee_Name AS 'Employee', B.Employee_Name AS 'Manager'
FROM Employees A
JOIN Employees B
ON A.Manager_ID = B.Employee_ID;


फायदे :

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

नुकसान :

  • समझने में कठिन: SELF JOIN का उपयोग करते समय क्वेरी लिखना और उसे समझना कठिन हो सकता है, खासकर नए उपयोगकर्ताओं के लिए।
  • प्रदर्शन की चिंता: बड़ी टेबल्स के लिए SELF JOIN क्वेरी का प्रदर्शन धीमा हो सकता है क्योंकि यह खुद को दोबारा टेबल से जोड़ता है।

मान लें कि हमारे पास Employees टेबल में प्रत्येक कर्मचारी का एक Manager_ID भी है, जो उसी टेबल में उनके मैनेजर का प्रतिनिधित्व करता है। SELF JOIN का उपयोग करके हम कर्मचारियों और उनके मैनेजर्स की जानकारी प्राप्त कर सकते हैं: