SQL Academy · पाठ

JOIN क्यों (relational model का पुनरावलोकन)

relational model, normalised tables और foreign keys का पुनरावलोकन कीजिए और जानिए कि JOIN तालिकाओं में फैले data को फिर से जोड़ने वाला सेतु क्यों है।

पाठ 1, कुल 4 में से13 चरण

JOIN क्यों (relational model का पुनरावलोकन), CoddyKit पर SQL Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

एक चित्र में सामान्यीकरण

डेटा को दोहराने के बजाय, उसे अलग-अलग तालिकाओं में बाँटते हैं:

  • users — id, name, email
  • orders — id, user_id, total

हर ऑर्डर उपयोगकर्ता के नाम और ईमेल को दोबारा संग्रहीत करने के बजाय, id के माध्यम से उपयोगकर्ता का संदर्भ देता है।

सामान्यीकरण क्यों करें?

लाभ:

  • कोई दोहराव नहीं — उपयोगकर्ता का ईमेल एक ही स्थान पर बदलें
  • छोटी तालिकाएँ — कैश से परिणाम मिलने की बेहतर दर
  • बाधाएँ संबंधों को लागू करती हैं

विदेशी कुंजियाँ संबंध निर्धारित करती हैं

यह संबंध FOREIGN KEY के साथ घोषित किया जाता है:

CREATE TABLE orders (
  id BIGSERIAL PRIMARY KEY,
  user_id BIGINT NOT NULL REFERENCES users(id),
  total NUMERIC(10,2) NOT NULL
);

JOIN से डेटा को फिर जोड़ना

“हर ऑर्डर पर उपयोगकर्ता का नाम” दिखाने के लिए, आप तालिकाओं को JOIN से फिर एक साथ जोड़ते हैं:

SELECT o.id, o.total, u.full_name, u.email
FROM orders o
JOIN users u ON u.id = o.user_id
ORDER BY o.id;

मानसिक मॉडल: फ़िल्टर किया गया कार्तीय गुणनफल

JOIN को वैचारिक रूप से इस तरह समझें:

  1. दो तालिकाओं का क्रॉस-प्रोडक्ट बनता है, यानी A की हर पंक्ति को B की हर पंक्ति के साथ जोड़ा जाता है
  2. केवल वे युग्म रखे जाते हैं जिनके लिए ON की शर्त TRUE होती है

वास्तव में डेटाबेस हैश, मर्ज या नेस्टेड-लूप JOIN का उपयोग करता है — लेकिन परिणाम एक जैसा रहता है।

एक-से-अनेक

एक उपयोगकर्ता के कई ऑर्डर हो सकते हैं। “अनेक” वाला पक्ष विदेशी कुंजी रखता है।

-- Each order row points back to its user:
SELECT u.email, COUNT(o.id) AS order_count
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.email;

JOIN तालिका के माध्यम से अनेक-से-अनेक

टैग ↔ पोस्ट: एक तीसरी तालिका जोड़ें:

CREATE TABLE posts (id BIGSERIAL PRIMARY KEY, title TEXT);
CREATE TABLE tags  (id BIGSERIAL PRIMARY KEY, name TEXT);
CREATE TABLE post_tags (
  post_id BIGINT REFERENCES posts(id),
  tag_id  BIGINT REFERENCES tags(id),
  PRIMARY KEY (post_id, tag_id)
);

अनेक-से-अनेक संबंधों पर क्वेरी चलाना

सब कुछ एक साथ लाने के लिए दो JOIN:

SELECT p.title, t.name
FROM posts p
JOIN post_tags pt ON pt.post_id = p.id
JOIN tags      t  ON t.id = pt.tag_id
WHERE t.name = 'sql';

सामान्यीकरण कब हटाएँ

प्रदर्शन के लिए कभी-कभी डेटा को दोहराने, यानी सामान्यीकरण हटाने, का उपयोग किया जाता है — जैसे गणना किए गए योगों को कैश करना, पूरे-पाठ वाले स्तंभ और भौतिकीकृत दृश्य। शुरुआत सामान्यीकृत संरचना से करें; मापे गए परिणामों के आधार पर सामान्यीकरण हटाएँ।

JOIN बनाम उपक्वेरी

कई JOIN क्वेरी को उपक्वेरी के रूप में और इसके विपरीत लिखा जा सकता है। जो तरीका अधिक स्पष्ट लगे, उसका उपयोग करें; आधुनिक योजनाकार अक्सर दोनों के लिए एक ही योजना बनाते हैं।

विदेशी कुंजियाँ अपने-आप लागू नहीं होतीं

आपको उन्हें REFERENCES के साथ घोषित करना होगा। FK बाधाएँ होने पर भी, FK स्तंभ पर इंडेक्स बनाना YOUR ज़िम्मेदारी है — JOIN के प्रदर्शन के लिए इसे स्पष्ट रूप से घोषित करें।

पुनरावृत्ति

अखंडता बनाए रखने के लिए अलग की गई तालिकाओं के डेटा को JOIN फिर से जोड़ते हैं।

  • विदेशी कुंजियाँ संबंध घोषित करती हैं
  • क्वेरी के समय JOIN सामान्यीकरण को उलट देता है
  • एक-से-अनेक संबंध में FK “अनेक” वाले पक्ष पर होती है, और अनेक-से-अनेक संबंध में JOIN तालिका का उपयोग होता है

त्वरित जाँच

users और orders के बीच एक-से-अनेक संबंध में विदेशी कुंजी वाला स्तंभ किस तालिका में होता है?

शुरुआत निःशुल्क

एआई शिक्षक के साथ SQL सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
46
पाठ
183

अक्सर पूछे जाने वाले प्रश्न

क्या “JOIN क्यों (relational model का पुनरावलोकन)” पाठ निःशुल्क है?

हाँ—“JOIN क्यों (relational model का पुनरावलोकन)” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“JOIN क्यों (relational model का पुनरावलोकन)” में मैं क्या सीखूँगा?

relational model, normalised tables और foreign keys का पुनरावलोकन कीजिए और जानिए कि JOIN तालिकाओं में फैले data को फिर से जोड़ने वाला सेतु क्यों है। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या SQL Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“JOIN क्यों (relational model का पुनरावलोकन)” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस SQL Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर SQL Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. JOIN क्यों (relational model का पुनरावलोकन)
  2. INNER JOIN की कार्यप्रणाली
  3. LEFT/RIGHT JOIN और OUTER Joins
  4. Self-Joins और Aliases
← SQL Academy पर वापस जाएँ