Database
 sql >> डेटाबेस >  >> RDS >> Database

एसक्यूएल प्राथमिक कुंजी

एक फ़ील्ड, जिसमें तालिका में अद्वितीय डेटा होता है, प्राथमिक कुंजी (पीके) कहलाता है। इसका मतलब है, प्राथमिक कुंजी फ़ील्ड में तालिका में अद्वितीय डेटा होना चाहिए।

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

उदाहरण के लिए, हमारे पास डेटाबेस में एक छात्र तालिका है। तालिका में 4 फ़ील्ड हैं Student_Id, Student_Name, Phone_Number, और ईमेल। छात्र तालिका में छात्र_आईडी और ईमेल प्राथमिक कुंजी है। केवल एक प्राथमिक कुंजी है, लेकिन तालिका में एकल या एकाधिक फ़ील्ड हो सकते हैं, जैसा कि हमने ऊपर बताया। एक छात्र का डेटा पहले से ही तालिका में मौजूद है, लेकिन वही छात्र उसी ईमेल आईडी से अपना डेटा फिर से जोड़ता है। जैसे ही छात्र विवरण दर्ज करता है, एक पॉप-अप एक संदेश प्रदर्शित करेगा "ईमेल पहले से मौजूद है"। यह दिखाया गया है क्योंकि ईमेल पहले से ही तालिका में मौजूद है, और ईमेल फ़ील्ड प्राथमिक कुंजी है, और प्राथमिक कुंजी में डुप्लिकेट मान नहीं हो सकते हैं।

एसक्यूएल टेबल पर प्राथमिक कुंजी बनाएं

जब 'कर्मचारी' तालिका बनाई जाती है, तो निम्न SQL क्वेरी कर्मचारी_आईडी फ़ील्ड पर एक प्राथमिक कुंजी बनाती है।

CREATE TABLE Employee( Employee_Id int PRIMARY KEY, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40) );        

उपरोक्त क्वेरी ने कर्मचारी_आईडी फ़ील्ड में प्राथमिक कुंजी को परिभाषित किया है। हम फ़ील्ड नाम और डेटा प्रकार के बाद कुंजी नाम का उल्लेख कर सकते हैं। उपरोक्त क्वेरी एक ऐसा तरीका है जिससे हम एक प्राथमिक कुंजी के रूप में Employee_Id बना सकते हैं।

यह जांचने के लिए कि हमारी प्राथमिक कुंजी को सफलतापूर्वक परिभाषित किया गया है या नहीं, हम कर्मचारी तालिका नाम के बाद डीईएससी कमांड का उपयोग कर सकते हैं।

DESC कर्मचारी;

फ़ील्ड प्रकार शून्य कुंजी डिफ़ॉल्ट अतिरिक्त
कर्मचारी_Id इंट(11) नहीं पीआरआई शून्य
कर्मचारी_नाम वर्चर(40) नहीं शून्य
वेतन इंट(11) नहीं शून्य
विभाग वर्चर(40) हां शून्य
शहर वर्चर(40) हां शून्य

मुख्य फ़ील्ड PRI का उल्लेख Employee_Id पंक्ति के सामने किया गया है, जिसका अर्थ है कि Employee_Id को प्राथमिक कुंजी के रूप में सफलतापूर्वक परिभाषित किया गया है।

तालिका में प्राथमिक कुंजी का उपयोग करने के लाभ:

  1. तालिका से डेटा तक तेजी से पहुंच।
  2. प्राथमिक कुंजी फ़ील्ड में डुप्लीकेट मानों की अनुमति नहीं है।

प्राथमिक कुंजी बनाने का दूसरा तरीका

CREATE TABLE Employee( Employee_Id int NOT NULL, Employee_Name varchar(40) NOT NULL, Salary int NOT NULL, Department varchar(40), City varchar(40), PRIMARY KEY(Employee_ID) );

ऊपर की तरह ही क्वेरी में, हमें फ़ील्ड नाम के सामने NOT NULL का उल्लेख करना होगा, जो कि प्राथमिक कुंजी के रूप में बनाया गया है, और अंत में, हमें ऊपर की तरह कोष्ठक में प्राथमिक कुंजी कीवर्ड और फ़ील्ड नाम लिखना होगा। क्वेरी।

तालिका पहले से मौजूद होने पर फ़ील्ड पर प्राथमिक कुंजी बाधा बनाएं

निम्नलिखित क्वेरी का प्रयोग करें:

ALTER TABLE Employee ADD PRIMARY KEY(Employee_Id);

प्राथमिक कुंजी को परिभाषित करने के लिए ALTER TABLE क्वेरी का उपयोग करते हुए, प्राथमिक कुंजी फ़ील्ड को पहले ही NOT NULL बाधा के साथ घोषित किया जा चुका है।

एकाधिक कॉलम पर SQL प्राथमिक कुंजी

जब 'छात्र' तालिका बनाई जाती है, तो निम्न SQL क्वेरी एक से अधिक स्तंभों पर प्राथमिक कुंजी बनाती है।

CREATE TABLE Student( Student_Id int NOT NULL, Student_Name varchar(40), Department varchar(40), Phone_Number int(10), Email varchar(100) NOT NULL, PRIMARY KEY(Student_ID, Email));

छात्र_आईडी और ईमेल पर उदाहरण में केवल एक प्राथमिक कुंजी बनाई गई है।

यह जांचने के लिए कि हमारी प्राथमिक कुंजी सफलतापूर्वक परिभाषित है या नहीं, हम छात्र तालिका नाम के बाद डीईएससी कमांड का उपयोग कर सकते हैं।

DESC Student;
फ़ील्ड प्रकार शून्य कुंजी डिफ़ॉल्ट अतिरिक्त
Student_Id इंट(11) नहीं पीआरआई शून्य
Student_Name वर्चर(40) हां शून्य
विभाग वर्चर(40) हां शून्य
फ़ोन_नंबर इंट(10) हां शून्य
ईमेल वर्चर(100) नहीं पीआरआई शून्य

जैसा कि हम Student_Id और ईमेल पंक्ति के सामने देख सकते हैं, प्रमुख फ़ील्ड PRI का उल्लेख किया गया है, जिसका अर्थ है कि Student_Id और ईमेल को प्राथमिक कुंजी के रूप में सफलतापूर्वक परिभाषित किया गया है।

अब हम SHOW CREATE TABLE और उसके बाद छात्र तालिका नाम निष्पादित करेंगे, जो छात्र तालिका का वर्णन करेगा।

SHOW CREATE TABLE Student;

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

मान लीजिए कि हम छात्र तालिका से प्राथमिक कुंजी बाधा को हटाना चाहते हैं। प्राथमिक कुंजी बाधा को दूर करने के लिए हम निम्नलिखित क्वेरी का उपयोग करेंगे:

ALTER TABLE Student DROP PRIMARY KEY;

यह जांचने के लिए कि हमारी प्राथमिक कुंजी सफलतापूर्वक हटा दी गई है या नहीं, हम छात्र तालिका नाम के बाद डीईएससी कमांड का उपयोग करेंगे।

DESC Student;
फ़ील्ड प्रकार शून्य कुंजी डिफ़ॉल्ट अतिरिक्त
Student_Id इंट(11) नहीं शून्य
Student_Name वर्चर(40) हां शून्य
विभाग वर्चर(40) हां शून्य
फ़ोन_नंबर इंट(10) हां शून्य
ईमेल वर्चर(100) नहीं शून्य


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. यूनीवर्स टिप्स

  2. मूल उदाहरणों के साथ 11 सामान्य SQL कथन

  3. PyQt के साथ SQL डेटाबेस को संभालना:मूल बातें

  4. झुंड क्लस्टर के साथ Azure कंटेनर सेवा पर डॉकर का उपयोग करना

  5. QUERY पैकेट भेजते समय त्रुटि