माइक्रोसॉफ्ट एसक्यूएल सर्वर में विदेशी कुंजी कैसे बनाएं

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

डेटाबेस टेबल्स और रिश्ते

आप पहले से ही जानते हैं कि डेटाबेस बस टेबल की एक श्रृंखला है , जैसा कि आप पहले से ही एक स्प्रेडशीट प्रोग्राम , जैसे कि माइक्रोसॉफ्ट एक्सेल में उपयोग कर सकते हैं। वास्तव में, आप एक एक्सेल स्प्रेडशीट को डेटाबेस में भी परिवर्तित कर सकते हैं। जहां डेटाबेस स्प्रैडशीट्स से अलग हो जाते हैं, हालांकि, जब टेबल के बीच शक्तिशाली संबंध बनाने की बात आती है।

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

इस उदाहरण में, कर्मचारी आईडी एक विशिष्ट रूप से जेनरेट किया गया पूर्णांक होता है जिसे प्रत्येक कर्मचारी को डेटाबेस में जोड़े जाने पर असाइन किया जाता है। स्थिति आईडी एक नौकरी कोड है जो कंपनी में कर्मचारी की स्थिति का संदर्भ देने के लिए उपयोग की जाती है। इस योजना में, एक कर्मचारी के पास केवल एक ही स्थिति हो सकती है, लेकिन एकाधिक (या नहीं) कर्मचारी प्रत्येक स्थिति को भर सकते हैं। उदाहरण के लिए, आपके पास "कैशियर" स्थिति वाले सैकड़ों कर्मचारी हो सकते हैं।

डेटाबेस में प्रत्येक स्थिति के बारे में निम्न अतिरिक्त जानकारी के साथ स्थिति नामक एक तालिका भी हो सकती है:

इस तालिका में स्थिति आईडी फ़ील्ड कर्मचारी तालिका में कर्मचारी आईडी फ़ील्ड के समान है - यह एक विशिष्ट रूप से जेनरेट किया गया पूर्णांक है जो डेटाबेस में स्थिति जोड़े जाने पर बनाई जाती है।

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

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

एक बार जब आप विदेशी कुंजी की पहचान कर लेंगे, तो आप आगे बढ़ सकते हैं और निम्न क्वेरी का उपयोग कर डेटाबेस से वांछित जानकारी खींच सकते हैं:

कर्मचारियों का नाम प्रथम नाम, अंतिम नाम, कर्मचारी इनलाइन जॉइन स्थितियों पर शीर्षक चुनें। स्थिति आईडी = स्थिति। स्थिति आईडी

SQL सर्वर में विदेशी कुंजी बनाना

तकनीकी रूप से, आपको ऊपर दिए गए प्रश्नों को निष्पादित करने में सक्षम होने के लिए स्पष्ट रूप से संबंध को परिभाषित करने की आवश्यकता नहीं है। हालांकि, यदि आप विदेशी कुंजी बाधा का उपयोग करके रिश्ते को स्पष्ट रूप से परिभाषित करते हैं, तो डेटाबेस आपके लिए कुछ हाउसकीपिंग कार्य करने में सक्षम होगा:

यहां बताया गया है कि आप SQL सर्वर में विदेशी कुंजी कैसे बनाएंगे:

वैकल्पिक तालिका कर्मचारी विदेशी कुंजी जोड़ें (स्थिति आईडी) संदर्भ स्थिति (स्थिति आईडी)

जब आप क्लॉज जोड़कर टेबल बनाते हैं तो आप एक विदेशी कुंजी भी बना सकते हैं:

विदेशी कुंजी संदर्भ स्थिति (स्थिति आईडी)

विदेशी कुंजी कॉलम के लिए कॉलम परिभाषा के अंत तक।