जहाँ तक मुझे कई DBMS (जैसे mysql, postgres, mssql) पता लगा सकते हैं, केवल डेटा में परिवर्तन को बाधित करने के लिए fk और pk संयोजनों का उपयोग करते हैं, लेकिन वे शायद ही कभी मूल रूप से जुड़ने के लिए कॉलम का चयन करते हैं (जैसे कि प्राकृतिक नाम नामों के साथ होता है)। ऐसा क्यों है? यदि आप पहले से ही एक pk / fk के साथ 2 तालिकाओं के बीच संबंध निर्धारित कर चुके हैं, तो डेटाबेस यह पता नहीं लगा सकता है कि यदि मैं उन तालिकाओं में शामिल हो जाऊं, जिन्हें मैं pk / fk कॉलम में शामिल करना चाहता हूं?
संपादित करें: इसे थोड़ा स्पष्ट करने के लिए:
मान लीजिए कि मेरे पास एक टेबल 1 और एक टेबल 2 है। टेबल 1 में कॉलम ए पर एक विदेशी कुंजी है, जो टेबल 2 पर प्राथमिक कुंजी, कॉलम बी के संदर्भ में है। अब अगर मैं इन तालिकाओं में शामिल होता हूं, तो मुझे ऐसा कुछ करना होगा:
SELECT * FROM table1
JOIN table2 ON table1.a = table2.b
हालाँकि, मैंने पहले से ही अपनी कुंजियों का उपयोग करते हुए परिभाषित किया है कि table1.a का संदर्भ table2.b पर है, इसलिए मुझे ऐसा लगता है कि DBMS सिस्टम को स्वचालित रूप से table1.a और table2.b में शामिल होने वाले कॉलम के रूप में उपयोग करने के लिए कठिन नहीं होना चाहिए, ऐसा है कि एक बस का उपयोग कर सकते हैं:
SELECT * FROM table1
AUTO JOIN table2
हालाँकि, कई DBMS इस तरह से कुछ लागू नहीं करते हैं।