Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> SQL Server

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

यह ट्यूटोरियल सिंटैक्स और उदाहरणों के साथ SQL सर्वर में फॉरेन की फॉरेन की का उपयोग करने का तरीका बताता है।

SQL सर्वर में विदेशी कुंजी क्या है?

विदेशी कुंजियों का उपयोग SQL सर्वर डेटाबेस में संदर्भों को बढ़ाने के लिए किया जाता है। एक विदेशी कुंजी का अर्थ है कि इस तालिका का मान किसी अन्य तालिका में दिखाई देना चाहिए।

संदर्भ तालिका को पैरेंट टेबल कहा जाता है, जबकि विदेशी कुंजी वाली तालिका को चाइल्ड टेबल कहा जाता है। चाइल्ड टेबल में विदेशी कुंजियाँ आमतौर पर मूल तालिका में प्राथमिक कुंजी प्राथमिक कुंजी को संदर्भित करती हैं।

विदेशी कुंजियाँ CREATE TABLE कमांड या ALTER TABLE कमांड से बनाई जा सकती हैं।

तालिका बनाएं कमांड का उपयोग करके एक विदेशी कुंजी बनाएं

सिंटैक्स

 CREATE TABLE bang_con (  cot1 kieudulieu [ NULL | NOT NULL ],  cot2 kieudulieu [ NULL | NOT NULL ],  …  CONSTRAINT fk_ten  FOREIGN KEY (cot_con1, cot_con2, … cot_con_n)  REFERENCES bang_me (cot_me1, cot_me2, … cot_me_n)  [ ON DELETE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ]  [ ON UPDATE { NO ACTION | CASCADE | SET NULL | SET DEFAULT } ] ); 

bang_con

उस चाइल्ड टेबल का नाम जिसे आप बनाना चाहते हैं।

cot1, cot2

वह कॉलम जिसे आप तालिका में बनाना चाहते हैं। प्रत्येक कॉलम में 1 डेटा प्रकार होता है, जिसमें NULL या NOT NULL मान शामिल होने चाहिए, अन्यथा डिफ़ॉल्ट NULL होता है।

SQL सर्वर में डेटा प्रकार

fk_ten

बनाने के लिए विदेशी कुंजी बाधा का नाम।

cot_con1, cot_con2, . cot_con_n

bang_con का कॉलम, bang_me की प्राथमिक कुंजी को संदर्भित करना चाहता है।

bang_me

पैरेंट टेबल के नाम में प्राथमिक कुंजी का उपयोग किया जाता है जिसका उपयोग bang_con में किया जाता है।

cot_me1, cot_me2, . cot_me_n

वह कॉलम जो bang_me में प्राथमिक कुंजी बनाता है। विदेशी कुंजियाँ डेटा और कॉलम cot_con1, cot_con2, के बीच अवरोध पैदा करेंगी। cot_con_n में bang_con.

हटाएं पर

Option. इंगित करता है कि जब मूल डेटा हटा दिया जाता है तो चाइल्ड डेटा के साथ क्या करना है। नो एक्शन, कैस्केड, सेट न्यूल और सेट डिफॉल्ट विकल्प हैं।

अपडेट पर

Option. यह बताता है कि पैरेंट डेटा अपडेट होने पर चाइल्ड डेटा का क्या करना है। नो एक्शन, कैस्केड, सेट न्यूल और सेट डिफॉल्ट विकल्प हैं।

कोई कार्रवाई नहीं

ON DELETE या ON UPDATE के साथ प्रयोग करें, यानी जब पैरेंट डेटा डिलीट या अपडेट हो जाए तो चाइल्ड डेटा के साथ कुछ भी न करें।

CASCADE

ON DELETE या ON UPDATE के साथ प्रयोग करें, जिसका अर्थ है कि पैरेंट डेटा के डिलीट या अपडेट होने पर चाइल्ड डेटा डिलीट या अपडेट हो जाता है।

शून्य सेट करें

ON DELETE या ON UPDATE के साथ प्रयोग करें, जिसका अर्थ है कि जब पैरेंट डेटा हटा दिया जाता है या अपडेट किया जाता है, तो चाइल्ड डेटा NULL पर सेट हो जाता है।

डिफ़ॉल्ट सेट करें

ON DELETE या ON UPDATE के साथ प्रयोग करें, जिसका अर्थ है कि जब पैरेंट डेटा हटा दिया जाता है या अपडेट किया जाता है, तो चाइल्ड डेटा डिफ़ॉल्ट मान पर सेट हो जाता है।

  1. एसक्यूएल सर्वर में फॉरेन की (कैस्केड डिलीट)
  2. एसक्यूएल सर्वर में विदेशी कुंजी (शून्य सेट करें) विदेशी कुंजी

उदाहरण के लिए

 CREATE TABLE sanpham (id_sanpham INT PRIMARY KEY, ten_sanpham VARCHAR(50) NOT NULL,  phan_loai VARCHAR(25) ); CREATE TABLE hangtonkho ( id_hangtonkho INT PRIMARY KEY,  id_sanpham INT NOT NULL,  soluong INT,  luong_toithieu INT,  luong_toida INT,  CONSTRAINT fk_htk_id_sanpham  FOREIGN KEY (id_sanpham)  REFERENCES sanpham (id_sanpham) ); 

उपरोक्त उदाहरण में, हम id_sanpham में फ़ील्ड्स से युक्त प्राथमिक कुंजी के साथ मूल तालिका, sanfham तालिका बनाते हैं। अगला हैंगटनखो उप तालिका है।

हैंगटनखो टेबल की फॉरेन की बनाने के लिए उपयोग किए जाने वाले CREATE TABLE स्टेटमेंट को fk_htk_id_sanpham नाम दिया गया है। विदेशी कुंजी hangtonkho तालिका में id_sanpham स्तंभ और sanpham तालिका में id_sanpham के बीच की कड़ी बनाती है।

उपरोक्त उदाहरण दिखाता है कि 1 कॉलम वाली विदेशी कुंजी कैसे बनाई जाती है। अब 1 से अधिक सूचना फ़ील्ड के साथ एक विदेशी कुंजी बनाएं।

उदाहरण के लिए

 CREATE TABLE sanpham ( ten_sanpham VARCHAR(50) NOT NULL,  diadiem VARCHAR(50) NOT NULL,  phanloai VARCHAR(25)  CONSTRAINT sanpham_pk PRIMARY KEY (ten_sanpham, diadiem) ); 
 CREATE TABLE hangtonkho ( id_hangtonkho INT PRIMARY KEY,  ten_sanpham VARCHAR(50) NOT NULL,  diadiem VARCHAR(50) NOT NULL,  soluong INT,  luong_toithieu INT,  luong_toida INT,  CONSTRAINT fk_htk_sanpham  FOREIGN KEY (ten_sanpham, diadiem)  REFERENCES sanpham (ten_sanpham, diadiem) ); 

इस उदाहरण में, sanfham पैरेंट टेबल में दो-स्तंभ प्राथमिक कुंजी ten_sanpham और diadiem है। चाइल्ड टेबल और विदेशी कुंजियाँ इन दो स्तंभों को अवश्य देखें।

ALTER TABLE कमांड का उपयोग करके एक विदेशी कुंजी बनाएं

सिंटैक्स

 ALTER TABLE bang_con ADD CONSTRAINT fk_ten  FOREIGN KEY (cot_con1, cot_con2, … cot_con_n)  REFERENCES bang_me (cot_me1, cot_me2, … cot_me_n); 

bang_con

उस चाइल्ड टेबल का नाम जिसे आप बनाना चाहते हैं।

fk_ten

बनाने के लिए विदेशी कुंजी बाधा का नाम।

cot_con1, cot_con2, . cot_con_n

bang_con का कॉलम, bang_me की प्राथमिक कुंजी को संदर्भित करना चाहता है।

bang_me

पैरेंट टेबल के नाम में प्राथमिक कुंजी का उपयोग किया जाता है जिसका उपयोग bang_con में किया जाता है।

cot_me1, cot_me2, . cot_me_n

वह कॉलम जो bang_me में प्राथमिक कुंजी बनाता है। विदेशी कुंजियाँ डेटा और कॉलम cot_con1, cot_con2, के बीच अवरोध पैदा करेंगी। cot_con_n में bang_con.

उदाहरण के लिए

 ALTER TABLE hangtonkho ADD CONSTRAINT fk_htk_id_sanpham  FOREIGN KEY (id_sanpham)  REFERENCES sanpham (id_sanpham); 

यह उदाहरण हैंगटनखो तालिका में विदेशी कुंजी बनाता है जिसे fk_htk_id_sanpham कहा जाता है, जो id_sanpham कॉलम के आधार पर sanpham तालिका को संदर्भित करता है।

आप नीचे दिए गए उदाहरण के अनुसार 1 से अधिक फ़ील्ड के साथ विदेशी कुंजियाँ बना सकते हैं।

 ALTER TABLE hangtonkho ADD CONSTRAINT fk_htk_sanpham  FOREIGN KEY (ten_sanpham, diadiem)  REFERENCES sanpham (ten_sanpham, diadiem); 

उपरोक्त उदाहरण हैंगटनखो टेबल के लिए fk_htk_sanpham नामक एक विदेशी कुंजी बनाता है, जो दस_सानफम और डायडीम कॉलम पर आधारित डैशबोर्ड को संदर्भित करता है।


  1. आरडीबीएमएस में विदेशी कुंजी

    एक विदेशी कुंजी तालिकाओं के बीच एक कड़ी बनाती है। यह किसी अन्य तालिका में प्राथमिक कुंजी का संदर्भ देता है और इसे लिंक करता है। उदाहरण के लिए, कर्मचारी तालिका में DeptID एक विदेशी कुंजी है - EmpID EmpName EmpAge DeptID DeptID DeptName DeptZone DeptID विभाग तालिक

  1. SQL सर्वर में प्रक्रिया (प्रक्रिया)

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

  1. SQL सर्वर में PIVOT क्लॉज

    SQL Server (Transact-SQL) में, PIVOT क्लॉज क्रॉस टेबुलेशन को डेटा को एक टेबल से दूसरी टेबल में ट्रांसफर करने की अनुमति देता है, यानी, कुल परिणाम प्राप्त करें और लाइन से कॉलम में स्थानांतरित करें। उदाहरण योग की गणना करता है और फिर पंक्तियों को डेटा तालिका में कॉलम में भेजता है पिवट क्लॉज सिंटैक