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

एसक्यूएल बाधाएं

SQL बाधाएँ तालिका में मौजूद डेटा के लिए नियम/सीमाएँ/प्रतिबंध निर्दिष्ट करती हैं। SQL बाधाओं को तालिका निर्माण के समय या ALTER कमांड का उपयोग करके तालिका निर्माण के बाद निर्दिष्ट किया जाता है। दो प्रकार की बाधाएं हैं स्तंभ-स्तर की बाधा और टेबल-स्तरीय बाधा जैसा कि नाम कॉलम स्तर निर्दिष्ट करता है, यह एक विशेष कॉलम निर्दिष्ट करता है। तालिका स्तर की बाधा में, यह एक से अधिक स्तंभ या तालिका के सभी स्तंभों को निर्दिष्ट करता है।शून्य नहीं: यह सुनिश्चित करता है कि निर्दिष्ट कॉलम मान NULL नहीं हो सकता।अद्वितीय: यह सुनिश्चित करता है कि कॉलम में प्रत्येक मान अलग है।प्राथमिक कुंजी: प्राथमिक कुंजी NOT NULL और UNIQUE दोनों को सुनिश्चित करती है। इसका मतलब है कि मूल्य शून्य नहीं हो सकता है और यह एक दूसरे से अलग होना चाहिए। इसलिए, प्राथमिक कुंजी तालिका में प्रत्येक रिकॉर्ड की विशिष्ट रूप से पहचान करती है।विदेशी कुंजी: यह विशिष्ट रूप से अन्य तालिका से रिकॉर्ड की पहचान करता है। विदेशी कुंजी दूसरी तालिका का संदर्भ है और यह अन्य तालिका से प्राथमिक कुंजी की तरह है।डिफ़ॉल्ट: जब मान नहीं दिया जाता है तो यह डिफ़ॉल्ट मान सेट करता है।जांचें: यह सुनिश्चित करता है कि कॉलम के सभी मान एक शर्त को पूरा करते हैं।INDEX: इंडेक्स बनाया जाता है और डेटाबेस से डेटा पुनर्प्राप्त करने के लिए उपयोग किया जाता है।

पूर्ण नहीं

प्रत्येक कॉलम के लिए डिफ़ॉल्ट मान NULL है। नल बाधा नहीं सुनिश्चित करता है कि कॉलम मान शून्य नहीं होना चाहिए। यह बाधा हमेशा सुनिश्चित करती है कि कॉलम का कुछ मूल्य है। यह इस फ़ील्ड के मान का उल्लेख किए बिना रिकॉर्ड डालने या अपडेट करने की अनुमति नहीं देता है। उपयोगकर्ता इस बाधा को तालिका के एकल या एकाधिक या सभी स्तंभों में जोड़ सकता है।सिंटैक्स: CREATE  TABLE table_name (कॉलम 1 डेटा प्रकार न्यूल नहीं,………);उदाहरण: तालिका बनाएँ छात्र (student_id int NOT NULL,student_name varchar(10),student_dept varchar(10) NOT NULL,classyear int); उपरोक्त उदाहरण में, पूर्ण नहीं तालिका बनाते समय छात्र तालिका में दो कॉलम student_id और student_dept पर बाधा लागू होती है। छात्र तालिका का विवरण दिखाता है कि कौन से कॉलम न्यूल हो सकते हैं या न्यूल नहीं हो सकते। तालिका में मान डालने के समय आउटपुट स्क्रीन देखें, न कि शून्य बाधा उन क्षेत्रों में NULL मान दर्ज करने की अनुमति नहीं देती है जिन पर बाधा लागू होती है।UNIQUE अद्वितीय बाधा कॉलम में डुप्लिकेट प्रविष्टियों से बचें। एक तालिका में अनेक अद्वितीय कुंजियाँ हो सकती हैं।वाक्यविन्यास: CREATE  TABLE table_name (स्तंभ 1 डेटा प्रकार अद्वितीय,………);उदाहरण: तालिका छात्र बनाएं (student_id int Unique,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int); आप उपरोक्त क्वेरी को अन्य रूप में लिख सकते हैं। तालिका बनाएं छात्र(student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int ,unique (student_id));# एक समय में अद्वितीय कई कॉलम परिभाषित करें वाक्यविन्यास: CREATE  TABLE table_name(स्तंभ 1 डेटा प्रकार, ……… स्तंभ n, बाधा बाधा_नाम अद्वितीय (स्तंभ1,..));उदाहरण: तालिका छात्र बनाएं (student_id int,student_name varchar(10) unique,student_dept varchar(10) not null,classyear int, Constraint cs_studentunique (student_id, student_name)); # ALTER स्टेटमेंट का उपयोग करके UNIQUE बाधा जोड़ेंसिंटैक्स: तालिका बदलें table_nameअद्वितीय जोड़ें (column_name);उदाहरण: तालिका बदलें छात्रअद्वितीय जोड़ें (student_id);सिंटैक्स: तालिका बदलें_नामप्रतिबंध बाधा जोड़ें_नाम अद्वितीय (कॉलम1,कॉलम2);उदाहरण: तालिका बदलें विद्यार्थी बाधा जोड़ें cs_student अद्वितीय (student_id,student_name);प्राथमिक कुंजी प्राथमिक कुंजी स्तंभ में प्रत्येक रिकॉर्ड की विशिष्ट रूप से पहचान करती है, एक तालिका में एकल प्राथमिक कुंजी होती है। प्राथमिक कुंजी एकल स्तंभ या स्तंभों का समूह हो सकती है।वाक्यविन्यास: तालिका बनाएं table_name (स्तंभ डेटा प्रकार प्राथमिक कुंजी, स्तंभ 2 डेटा प्रकार,………);उदाहरण: तालिका बनाएं STUDENT(student_id int Primary Key,student_name varchar(20),student_dept varchar(20),classyear int); वाक्यविन्यास: तालिका बनाएं table_name (स्तंभ 1 डेटा प्रकार, स्तंभ 2 डेटा प्रकार, ……… स्तंभ n डेटा प्रकार, प्राथमिक कुंजी (column_name));उदाहरण: तालिका बनाएँ छात्र (student_id int,student_name varchar(10),student_dept varchar(10),classyear int,Primary key (student_id)); # ALTER Statement का उपयोग करना वाक्यविन्यास: तालिका बदलें तालिका_नामप्राथमिक कुंजी जोड़ें (कॉलम_नाम); उदाहरण: तालिका बदलें छात्रप्राथमिक कुंजी जोड़ें (student_id); सिंटैक्स: तालिका बदलें तालिका_नामड्रॉप प्राथमिक कुंजी;उदाहरण: तालिका छात्रड्रॉप प्राथमिक कुंजी बदलें;

डिफ़ॉल्ट

डिफ़ॉल्ट मान को कॉलम में सेट करने के लिए DEFAULT बाधा का उपयोग किया जाता है। यह बाधा सिंगल कॉलम या मल्टीपल कॉलम पर लागू की जा सकती है। तालिका में सभी स्तंभों के लिए NULL एक डिफ़ॉल्ट मान है। जब उपयोगकर्ता किसी कॉलम पर नॉट अशक्त या प्राथमिक बाधा लागू करता है तो उसका डिफ़ॉल्ट मान बदल जाता है।सिंटैक्स: तालिका बनाएं table_name (स्तंभ डेटा प्रकार,…….स्तंभ डेटा प्रकार डिफ़ॉल्ट मान);उदाहरण: तालिका छात्र बनाएं (student_id int,student_name varchar(20),student_dept varchar(20) default 'IT',classyear int); आउटपुट स्क्रीन डिफ़ॉल्ट मान 'IT' दिखाती है छात्र_विभाग को कॉलम सौंपा गया है। 'आईटी' कॉलम student_dept . पर सेट मान जब student_dept . कॉलम के लिए कोई मान प्रदान नहीं किया जाता है .  # ALTER Statement का उपयोग करके कॉलम पर DEFAULT बाधा जोड़ना   वाक्यविन्यास: तालिका बदलें table_namealter column_nameset डिफ़ॉल्ट मान;उदाहरण: तालिका में परिवर्तन छात्र/छात्र_डेप्टसेट डिफ़ॉल्ट 'सीएस' बदलें; सिंटैक्स: तालिका बदलें table_namealter column_namedrop डिफ़ॉल्ट;उदाहरण: तालिका बदलें छात्रबदलें student_deptdrop डिफ़ॉल्ट; विदेशी कुंजी विदेशी कुंजी दो तालिकाओं के बीच की कड़ी है। एक तालिका की प्राथमिक कुंजी दूसरी तालिका की संदर्भ/विदेशी कुंजी हो सकती है। तालिका, जिसमें विदेशी कुंजी होती है, जिसे चाइल्ड टेबल कहा जाता है और अन्य तालिका जिसकी प्राथमिक कुंजी को संदर्भ के रूप में संदर्भित किया जाता है, वह तालिका एक मूल तालिका होती है। यदि मूल तालिका में कोई डेटा मौजूद नहीं है, तो उपयोगकर्ता को चाइल्ड टेबल से पहले पैरेंट टेबल में रिकॉर्ड दर्ज करना होगा। एक तालिका में एकल प्राथमिक कुंजी हो सकती है।विभाग तालिका
DEPT_ID DEPT_NAME DEPT_HEAD DEPT_LOC
0001 आईटी मि. एस.के. मिश्रा 06
0002 सीएस मि. डी.पी. पाटिल 04
0003 EXTC श्रीमती. एस.के. भोसले 05
0004 MECH मि. ए.बी. झा 07
विद्यार्थी तालिका
STUDENT_ID STUDENT_NAME DEPT_NAME क्लासियर
10001 रैम आईटी 02
10002 किरण आईटी 04
10003 नेहा सीएस 01
10004 रूपा MECH 01
विद्यार्थी प्राथमिक कुंजी   student_idविदेशी कुंजी   dept_nameविभाग प्राथमिक कुंजी   dept_nameयहां, DEPARTMENT पैरेंट टेबल है और STUDENT चाइल्ड टेबल है। DEPARTMENT तालिका की प्राथमिक कुंजी छात्र तालिका में विदेशी कुंजी के रूप में संदर्भित है जिसे dept_name नाम दिया गया है। यह संभव हो सकता है कि दो तालिका में एक ही नाम के कॉलम हो सकते हैं। मान लीजिए छात्र तालिका में dept_name अलग-अलग नामों से मौजूद है जैसे student_dept या किसी भी तरह से यह कोई समस्या पैदा नहीं करता है। तालिका में एक या अधिक विदेशी कुंजी हो सकती है।# तालिका बनाते समय बाधा लागू करें वाक्यविन्यास: //  पैरेंट टेबल में एक प्राथमिक कुंजी होनी चाहिए टेबल टेबल_नाम बनाएं (कॉलम डेटा टाइप प्राइमरी की, कॉलम …….., कॉलम एन डेटा टाइप);//चाइल्ड टेबल में फॉरेन की होती है तालिका बनाएं table_name(कॉलम डेटा प्रकार,…………,विदेशी कुंजी(कॉलम_नाम)संदर्भ parent_table_name(प्राथमिक कुंजी का कॉलम_नाम));उदाहरण: तालिका विभाग बनाएं (dept_id int, dept_name varchar (30) प्राथमिक कुंजी, dept_head varchar (50), dept_loc int); तालिका छात्र बनाएं (student_id int प्राथमिक कुंजी, छात्र_नाम varchar (30), dept_name varchar (30), क्लासियर इंट, विदेशी कुंजी (dept_name)संदर्भ विभाग (dept_name)); # ऑल्टर स्टेटमेंट का उपयोग करके विदेशी कुंजी बाधा लागू करें वाक्यविन्यास: तालिका बदलें तालिका_नामविदेशी कुंजी जोड़ें (कॉलम_नाम)संदर्भ parent_table_name (प्राथमिक कुंजी का कॉलम_नाम);उदाहरण: तालिका बदलें छात्रविदेशी कुंजी जोड़ें (dept_name)संदर्भ विभाग(dept_name);वाक्यविन्यास: तालिका बदलें तालिका_नामबाधा जोड़ें बाधा_नामविदेशी कुंजी (कॉलम_नाम)संदर्भ parent_table_name (प्राथमिक कुंजी का कॉलम_नाम);उदाहरण: तालिका बदलें छात्र बाधा जोड़ें fk_studentविदेशी कुंजी (dept_name)संदर्भ विभाग (dept_name);# DROP बाधा वाक्यविन्यास: तालिका बदलें तालिका_नामड्रॉप विदेशी कुंजी बाधा_नाम;उदाहरण: तालिका छात्र ड्रॉप विदेशी कुंजी fk_student बदलें; तालिका छात्र बनाएं (छात्र_आईडी int, छात्र_नाम वर्कर (50) शून्य नहीं, छात्र_डिप्ट वर्कर (30) डिफ़ॉल्ट 'आईटी', क्लासियर इंट चेक (कक्षा वर्ष <5 और कक्षा> 0), प्राथमिक कुंजी (छात्र_आईडी) );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. माइक्रोसॉफ्ट ऑफिस से सेल्सफोर्स SOQL

  2. Google BigQuery को IRI Voracity सॉफ़्टवेयर से कनेक्ट करना

  3. बजट पर विभाजन

  4. स्केलग्रिड DBaaS के लिए दो-कारक प्रमाणीकरण सक्षम करना

  5. असंरचित सामग्री:एआई और मशीन लर्निंग के लिए एक अप्रयुक्त ईंधन स्रोत