Free tutorials & notes in Hindi & English · Clean code examples 🧰 मुफ़्त PDF और फ़ोटो टूल्स →
MySQL + SQL · Lesson 20

Composite Key और Unique Key

Composite key क्या है

Composite key दो या ज़्यादा columns साथ से बनी primary key है। यह तब इस्तेमाल होती है जब कोई एक column row को विशिष्ट न पहचाने, पर संयोजन करे। जैसे, एक student कई courses में enrol कर सकता है, तो न student_id न course_id अकेले unique है — पर साथ में हैं।

💡 Composite key = कई columns एक primary key के रूप में, संयोजन के रूप में unique।

आपको इसकी ज़रूरत क्यों

एक enrolments table सोचिए जो students को courses से जोड़ती है। वही student कई rows में दिखता है (कई courses), और वही course कई rows में दिखता है (कई students)। कोई एक column unique नहीं। पर जोड़ी (student_id, course_id) unique होनी चाहिए — student को वही course दो बार enrol नहीं करना चाहिए।

Composite key बनाना

CREATE TABLE enrollments (
    student_id INT,
    course_id INT,
    grade CHAR(1),
    PRIMARY KEY (student_id, course_id)
);

दोनों columns एक PRIMARY KEY (...) clause में list करना उन्हें composite key बनाता है। संयोजन unique होना चाहिए, हालाँकि हर column अकेले दोहरा सकता है।

यह uniqueness कैसे लागू करती है

INSERT INTO enrollments VALUES (1, 101, 'A');   -- ok
INSERT INTO enrollments VALUES (1, 102, 'B');   -- ok (वही student, नया course)
INSERT INTO enrollments VALUES (1, 101, 'C');   -- ERROR: duplicate जोड़ी

Student 1 courses 101 और 102 ले सकता है, पर course 101 दो बार enrol नहीं कर सकता — composite key duplicate संयोजन रोकती है।

Foreign keys के साथ

CREATE TABLE enrollments (
    student_id INT,
    course_id INT,
    PRIMARY KEY (student_id, course_id),
    FOREIGN KEY (student_id) REFERENCES students(id),
    FOREIGN KEY (course_id) REFERENCES courses(id)
);

Link table में, composite key का हर हिस्सा अक्सर foreign key भी होता है। यहाँ दो columns students और courses tables दर्शाते हैं, उन्हें जोड़ते हुए हर जोड़ी unique रखकर।

Composite बनाम single key

बातSingle keyComposite key
Columnsएकदो या ज़्यादा
Unique onवो columnसंयोजन
आम इस्तेमालसामान्य tablesLink tables (M:N)
Individual दोहरावAllowed नहींAllowed अगर जोड़ी अलग

आम गलतियाँ

  • एकल columns के unique होने की उम्मीद। सिर्फ़ संयोजन unique है।
  • दो PRIMARY KEY clauses इस्तेमाल करना। इसके बजाय सारे columns एक clause में list कीजिए।
  • क्रम की confusion। Columns एक key बनाते हैं; उनका क्रम indexing प्रभावित कर सकता है।
  • जहाँ single id काम करे वहाँ composite key इस्तेमाल करना। सिर्फ़ ज़रूरत पड़ने पर इस्तेमाल कीजिए।

सारांश

  • Composite key दो या ज़्यादा columns की primary key है।
  • इसे तब इस्तेमाल कीजिए जब सिर्फ़ columns का संयोजन unique हो।
  • इसे एक PRIMARY KEY (col1, col2) clause से बनाइए।
  • एकल columns दोहरा सकते हैं अगर पूरा संयोजन न दोहराए।
  • यह link tables में आम है, जहाँ columns foreign keys भी होते हैं।

आगे, सारे key प्रकार सीखिए keys in DBMS explained में, या auto ids AUTO_INCREMENT में।

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

MySQL में composite key क्या है?
Composite key दो या ज़्यादा columns से मिलकर बनी primary key है। यह तब इस्तेमाल होती है जब कोई एक column अकेले unique न हो, पर columns का संयोजन हो। जैसे, (student_id, course_id) साथ में एक enrolment को विशिष्ट पहचान सकते हैं।
Composite key कब इस्तेमाल करूँ?
Composite key तब इस्तेमाल कीजिए जब एक column row को विशिष्ट पहचान न सके, पर संयोजन कर सके। यह many-to-many relationships की link tables में आम है, जैसे enrollments जहाँ वही student और वही course जोड़ी सिर्फ़ एक बार दिखनी चाहिए।
MySQL में composite key कैसे बनाऊँ?
सारे key columns एक PRIMARY KEY clause में list कीजिए: PRIMARY KEY (student_id, course_id)। MySQL फिर संयोजन को unique identifier मानता है, एक column में वही value allow करके जब तक जोड़ी unique हो।
Composite key और single primary key में क्या अंतर है?
Single primary key rows पहचानने को एक column इस्तेमाल करती है। Composite key कई columns साथ इस्तेमाल करती है। Composite key संयोजन के रूप में unique है, तो अलग columns दोहरा सकते हैं जब तक पूरा संयोजन न दोहराए।
क्या composite key foreign keys के साथ इस्तेमाल हो सकती है?
हाँ। Composite key का हर column दूसरी table को foreign key भी हो सकता है। Link table में, दो columns अक्सर जुड़ने वाली दो tables की primary keys दर्शाते हैं।
🔗

Share this topic with a friend

यह topic किसी दोस्त को भेजें

Found it useful? Send it to a classmate learning the same thing.

अच्छा लगा? जो दोस्त यही सीख रहा है, उसे भेज दीजिए।

💻 लाइव कोड एडिटर

इस पेज के प्रोग्राम यहीं तैयार हैं — चलाएँ, बदलें और सीखें। कुछ भी इंस्टॉल किए बिना।
OneCompiler द्वारा संचालित। कोड एडिटर में अपने आप आ जाता है — Run दबाकर आउटपुट देखें। अगर एडिटर न खुले तो नए टैब में खोलें.
अगला topicDBMS में Referential Integrity आपकी प्रगति: 20 / 151 (13%) · Lesson 21 / 151 आगे बढ़ें →

यह lesson कैसा लगा?

आपकी राय से हम content और बेहतर बनाते हैं।

अपना review और सुझाव लिखें (वैकल्पिक)

Review approve होने के बाद आपका नाम और शहर इसके साथ public दिख सकते हैं। Email या phone न लिखें।

▶ CodingEasily on YouTube

Video से सीखें – आसान Hindi में

चुनी हुई video: RDBMS भाग 3 – Class XI Commerce IT

▶ Channel subscribe करें