एसक्यूएल ट्यूटोरियल

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

SQL डेटाबेस

एसक्यूएल डीबी बनाएँ एसक्यूएल ड्रॉप डीबी एसक्यूएल बैकअप डीबी एसक्यूएल तालिका बनाएं एसक्यूएल ड्रॉप टेबल SQL परिवर्तन तालिका एसक्यूएल बाधाएं एसक्यूएल शून्य नहीं है एसक्यूएल अद्वितीय एसक्यूएल प्राथमिक कुंजी एसक्यूएल विदेशी कुंजी एसक्यूएल चेक एसक्यूएल डिफ़ॉल्ट एसक्यूएल सूचकांक एसक्यूएल ऑटो इंक्रीमेंट एसक्यूएल तिथियां एसक्यूएल दृश्य एसक्यूएल इंजेक्षन एसक्यूएल होस्टिंग SQL डेटा प्रकार

एसक्यूएल संदर्भ

एसक्यूएल कीवर्ड मायएसक्यूएल फंक्शन्स SQL सर्वर कार्य एमएस एक्सेस फ़ंक्शंस एसक्यूएल त्वरित रेफरी

एसक्यूएल उदाहरण

एसक्यूएल उदाहरण एसक्यूएल प्रश्नोत्तरी एसक्यूएल व्यायाम SQL प्रमाणपत्र

एसक्यूएल विदेशी कुंजी बाधा


एसक्यूएल विदेशी कुंजी बाधा

बाधाओं का FOREIGN KEYउपयोग उन क्रियाओं को रोकने के लिए किया जाता है जो तालिकाओं के बीच के लिंक को नष्ट कर देती हैं।

A FOREIGN KEYएक तालिका में एक फ़ील्ड (या फ़ील्ड का संग्रह) है, जो PRIMARY KEYकिसी अन्य तालिका में संदर्भित करता है।

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

निम्नलिखित दो तालिकाओं को देखें:

व्यक्तियों की तालिका

PersonID LastName FirstName Age
1 Hansen Ola 30
2 Svendson Tove 23
3 Pettersen Kari 20

आदेश तालिका

OrderID OrderNumber PersonID
1 77895 3
2 44678 3
3 22456 2
4 24562 1

ध्यान दें कि "आदेश" तालिका में "व्यक्ति आईडी" कॉलम "व्यक्ति" तालिका में "व्यक्ति आईडी" कॉलम को इंगित करता है।

"व्यक्ति" तालिका में "व्यक्ति आईडी" कॉलम "व्यक्ति" तालिका में है PRIMARY KEY

"आदेश" तालिका में "व्यक्ति आईडी" कॉलम "आदेश" तालिका में है FOREIGN KEY

बाधा अमान्य डेटा को FOREIGN KEYविदेशी कुंजी कॉलम में डालने से रोकती है, क्योंकि इसे मूल तालिका में निहित मानों में से एक होना चाहिए।



तालिका बनाने पर SQL विदेशी कुंजी

जब "आदेश" तालिका बनाई जाती है, तो निम्न SQL FOREIGN KEY"PersonID" कॉलम पर बनाता है:

माई एसक्यूएल:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

एसक्यूएल सर्वर/ओरेकल/एमएस एक्सेस:

CREATE TABLE Orders (
    OrderID int NOT NULL PRIMARY KEY,
    OrderNumber int NOT NULL,
    PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);

एक बाधा के नामकरण की अनुमति देने के लिए, और एक से अधिक स्तंभों पर FOREIGN KEYएक बाधा को परिभाषित करने के लिए, निम्न SQL सिंटैक्स का उपयोग करें: FOREIGN KEY

MySQL / SQL सर्वर / Oracle / MS एक्सेस:

CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
);

वैकल्पिक तालिका पर SQL विदेशी कुंजी

FOREIGN KEYजब "आदेश" तालिका पहले से ही बनाई गई हो, तो "पर्सनआईडी" कॉलम पर एक बाधा बनाने के लिए, निम्नलिखित एसक्यूएल का उपयोग करें:

MySQL / SQL सर्वर / Oracle / MS एक्सेस:

ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

एक बाधा के नामकरण की अनुमति देने के लिए, और एक से अधिक स्तंभों पर FOREIGN KEYएक बाधा को परिभाषित करने के लिए, निम्न SQL सिंटैक्स का उपयोग करें: FOREIGN KEY

MySQL / SQL सर्वर / Oracle / MS एक्सेस:

ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

एक विदेशी कुंजी बाधा छोड़ें

FOREIGN KEYएक बाधा छोड़ने के लिए, निम्न SQL का उपयोग करें:

माई एसक्यूएल:

ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

एसक्यूएल सर्वर/ओरेकल/एमएस एक्सेस:

ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;