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

SQL बाधाएँ क्या हैं और इसके विभिन्न प्रकार क्या हैं?

चूंकि डेटाबेस में बड़ी मात्रा में डेटा मौजूद है, इसलिए हम सभी के लिए डेटाबेस में मौजूद डेटा की सटीकता और विश्वसनीयता को बढ़ाना बहुत महत्वपूर्ण है। ठीक है, SQL बाधाओं का उपयोग इसे बनाए रखने के लिए किया जाता है। विभिन्न प्रकार की बाधाएं हैं जिनका उपयोग किया जा सकता है। इस लेख में, मैं उदाहरणों के साथ उन बाधाओं पर चर्चा करूंगा।

इस लेख में निम्नलिखित विषयों को शामिल किया जाएगा:

  1. प्रतिबंध क्या हैं?
  2. एसक्यूएल में उपलब्ध बाधाएं:
      • पूर्ण बाधा नहीं
      • अद्वितीय बाधा
      • बाधा की जांच करें
      • डिफ़ॉल्ट प्रतिबंध
      • इंडेक्स बाधा

एसक्यूएल प्रतिबंध क्या हैं?

SQL Constraints का उपयोग किसी तालिका में डेटा के नियमों को निर्दिष्ट करने के लिए किया जाता है। इनका उपयोग यह सीमित करने के लिए किया जाता है कि डेटाबेस में किस प्रकार के डेटा को संग्रहीत किया जाना चाहिए, और इसका उद्देश्य डेटाबेस में संग्रहीत डेटा की सटीकता और विश्वसनीयता को बढ़ाना है।

इसलिए, बाधाएं सुनिश्चित करती हैं कि डेटा के लेन-देन के मामले में कोई उल्लंघन नहीं हुआ है, फिर भी कोई उल्लंघन पाया गया है; कार्रवाई समाप्त हो जाती है।

दो प्रकार की बाधाएं लागू की जा सकती हैं:

  1. स्तंभ-स्तर की बाधाएं - ये बाधाएं एक कॉलम पर लागू होती हैं
  2. तालिका-स्तर की बाधाएं - ये बाधाएं पूरी तालिका के लिए आवेदन हैं

इस लेख में आगे बढ़ते हुए, आइए हम विभिन्न प्रकार की बाधाओं को समझते हैं। साथ ही, मैं आपको बेहतर ढंग से समझने में मदद करने के लिए निम्न तालिका पर विचार करने जा रहा हूं।

विभिन्न SQL बाधाएं उपलब्ध हैं:

पूर्ण बाधा नहीं

NOT NULL बाधा सुनिश्चित करती है कि एक कॉलम में NULL मान नहीं हो सकता। आप तालिका डेटाबेस बनाते समय या इसे संशोधित करते समय NOT NULL बाधा का उपयोग कर सकते हैं।

उदाहरण

टेबल बनाने पर पूर्ण प्रतिबंध नहीं

उपरोक्त छात्र तालिका बनाने के लिए एक प्रश्न लिखें, जहां छात्र आईडी और छात्र नाम शून्य नहीं हो सकते।

CREATE TABLE Students( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, City varchar(255) );

वैकल्पिक तालिका पर पूर्ण प्रतिबंध नहीं

उपरोक्त छात्र तालिका को बदलने के लिए एक प्रश्न लिखें, जहां जन्मतिथि का एक नया कॉलम जोड़ा जाना चाहिए, और इसमें कोई NULL मान नहीं होना चाहिए।

ALTER TABLE Students ADD COLUMN DOB year NOT NULL;

SQL बाधाओं पर इस लेख में आगे बढ़ते हुए, आइए समझते हैं कि UNIQUE बाधा का उपयोग कैसे करें।

अद्वितीय बाधा

UNIQUE बाधा का उपयोग यह सुनिश्चित करने के लिए किया जाता है कि कॉलम में सभी मान अद्वितीय हैं। आप UNIQUE बाधा का उपयोग या तो कई स्तंभों पर या एकल स्तंभ पर कर सकते हैं। इसके अलावा, आप आगे बढ़ सकते हैं और मौजूदा तालिकाओं को संशोधित करने के लिए UNIQUE बाधा का उपयोग कर सकते हैं।

नोट:

  1. तालिका बनाते समय, प्राथमिक कुंजी बाधा में एक स्तंभ की विशिष्टता की गारंटी के लिए स्वचालित रूप से एक अद्वितीय बाधा होती है।
  2. एक टेबल में कई UNIQUE बाधाएं हो सकती हैं, लेकिन एक प्राथमिक कुंजी बाधा हो सकती है।

उदाहरण:

टेबल बनाने पर अद्वितीय प्रतिबंध

एक टेबल बनाने के लिए एक क्वेरी लिखें छात्र, कॉलम स्टूडेंटआईडी, स्टूडेंटनाम, उम्र और शहर के साथ। यहां, छात्र आईडी प्रत्येक रिकॉर्ड के लिए अद्वितीय होना चाहिए।

CREATE TABLE Students ( 
StudentID int NOT NULL UNIQUE, 
StudentName varchar(255) 
NOT NULL, Age int, City varchar(255) );

एकाधिक स्तंभों पर एक अद्वितीय बाधा को नाम दें

एक अद्वितीय बाधा को नाम देने के लिए और इसे कई स्तंभों के लिए परिभाषित करने के लिए आप निम्न उदाहरण देख सकते हैं:

एक तालिका बनाने के लिए एक प्रश्न लिखें छात्र, कॉलम स्टूडेंटआईडी, स्टूडेंटनाम, आयु और शहर के साथ। यहां, छात्र आईडी और छात्रनाम प्रत्येक रिकॉर्ड के लिए अद्वितीय होना चाहिए।

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255) CONSTRAINT Stu_Example 
UNIQUE (StudentID,StudentName) );

यहाँ, Stu_Example, StudentID और StudentName पर लागू अद्वितीय बाधा को दिया गया नाम है।

वैकल्पिक तालिका पर अद्वितीय प्रतिबंध

छात्र तालिका को बदलने के लिए एक प्रश्न लिखें, जहां एक UNIQUE बाधा को StudentID कॉलम में जोड़ा जाना चाहिए।

ALTER TABLE Students ADD UNIQUE (StudentID);

इसी तरह, यदि आप कई स्तंभों पर UNIQUE बाधा का उपयोग करना चाहते हैं और इसे नाम भी देना चाहते हैं, तो आप निम्नानुसार एक प्रश्न लिख सकते हैं:

ALTER TABLE Students ADD CONSTRAINT Stu_Example UNIQUE (StudentID,StudentName);

एक अद्वितीय बाधा छोड़ें

किसी स्तंभ पर निर्दिष्ट बाधा को छोड़ने के लिए, आप उस नामकरण परंपरा का उपयोग कर सकते हैं जिसका उल्लेख आपने बाधा जोड़ते समय किया होगा।

उदाहरण के लिए, यदि हमें ऊपर बनाई गई UNIQUE बाधा को छोड़ने के लिए एक प्रश्न लिखना है, तो आप क्वेरी को इस प्रकार लिख सकते हैं:

ALTER TABLE Students DROP CONSTRAINT Stu_Example;

SQL बाधाओं पर इस लेख में अगला, आइए समझते हैं कि CHECK बाधा का उपयोग कैसे करें।

बाधा की जांच करें

CHECK बाधा यह सुनिश्चित करती है कि कॉलम के सभी मान एक विशिष्ट शर्त को पूरा करते हैं।

उदाहरण:

तालिका बनाएं पर बाधाओं की जांच करें

एक तालिका बनाने के लिए एक प्रश्न लिखें छात्र, कॉलम स्टूडेंटआईडी, स्टूडेंटनाम, आयु और शहर के साथ। यहाँ, शहर मुंबई होना चाहिए।

CREATE TABLE Students ( 
StudentID int NOT NULL UNIQUE, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)CHECK (City==’Mumbai’) );

एकाधिक कॉलम पर बाधाओं की जांच करें

एकाधिक कॉलम पर चेक बाधा का उपयोग करने के लिए आप नीचे एक प्रश्न लिख सकते हैं:

एक तालिका बनाने के लिए एक प्रश्न लिखें छात्र, कॉलम स्टूडेंटआईडी, स्टूडेंटनाम, आयु और शहर के साथ। यहां, शहर मुंबई होना चाहिए, और छात्रों की आयु> 19 होनी चाहिए।

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)CHECK (City==’Mumbai’ AND Age>19));

इसी तरह, आप CHECK बाधा का उपयोग ALTER TABLE कमांड के साथ भी कर सकते हैं। नीचे देखें।

वैकल्पिक तालिका पर प्रतिबंध की जांच करें

छात्र तालिका को बदलने के लिए एक प्रश्न लिखें, जहां एक CHECK बाधा को शहर के कॉलम में जोड़ा जाना चाहिए। यहाँ, शहर मुंबई होना चाहिए।

ALTER TABLE Students ADD CHECK (City=='Mumbai');

इसी प्रकार, यदि आप CHECK बाधा को एक नाम देकर उपयोग करना चाहते हैं, तो आप निम्न प्रकार से एक प्रश्न लिख सकते हैं:

ALTER TABLE Students ADD CONSTRAINT StuCheckExample CHECK (City=='Mumbai');

एक जांच बाधा छोड़ें

एक कॉलम पर निर्दिष्ट बाधा को छोड़ने के लिए, आप नामकरण परंपरा का उपयोग कर सकते हैं जिसका उल्लेख आपने बाधा जोड़ते समय किया होगा।

उदाहरण के लिए, यदि हमें ऊपर बनाई गई CHECK बाधा को दूर करने के लिए कोई क्वेरी लिखनी है, तो आप क्वेरी को इस प्रकार लिख सकते हैं:

ALTER TABLE Students DROP CONSTRAINT StuCheckExample;

SQL बाधाओं पर इस लेख में आगे बढ़ते हुए, आइए समझते हैं कि DEFAULT बाधा का उपयोग कैसे करें।

डिफ़ॉल्ट प्रतिबंध

DEFAULT बाधा का उपयोग किसी कॉलम के लिए डिफ़ॉल्ट मानों के एक सेट का उल्लेख करने के लिए किया जाता है जब कोई मान निर्दिष्ट नहीं होता है। अन्य बाधाओं के समान, हम इस बाधा का उपयोग CREATE और ALTER तालिका कमांड पर कर सकते हैं।

उदाहरण

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

CREATE TABLE Students ( 
StudentID int NOT NULL, 
StudentName varchar(255) NOT NULL, 
Age int, 
City varchar(255)DEFAULT ‘Delhi’);

वैकल्पिक तालिका पर डिफ़ॉल्ट प्रतिबंध

ALTER TABLE कमांड के साथ DEFAULT बाधा का उपयोग करने के लिए, आप निम्न प्रकार से एक क्वेरी लिख सकते हैं:

ALTER TABLE Students ADD CONSTRAINT StuDefauExample DEFAULT 'Mumbai' FOR City;

एक डिफ़ॉल्ट बाधा छोड़ें

DEFAULT बाधा को छोड़ने के लिए आप ALTER TABLE कमांड का उपयोग इस प्रकार कर सकते हैं:

ALTER TABLE Students ALTER COLUMN City DROP DEFAULT;

SQL बाधाओं पर इस लेख में अगला, आइए समझते हैं कि INDEX बाधा का उपयोग कैसे करें।

इंडेक्स बाधा

इंडेक्स बाधा का उपयोग तालिका में इंडेक्स बनाने के लिए किया जाता है, इन इंडेक्स की मदद से आप डेटाबेस से डेटा को बहुत जल्दी बना और पुनर्प्राप्त कर सकते हैं।

वाक्यविन्यास

--Create an Index where duplicate values are allowed
CREATE INDEX IndexName
ON TableName (ColumnName1, ColumnName2, ...ColumnName(N));

--Create an Index where duplicate values are not allowed
CREATE UNIQUE INDEX IndexName
ON TableName (ColumnName1, ColumnName2, ...ColumnName(N));

उदाहरण

स्टूडेंट्स टेबल पर Stu_index नाम से एक इंडेक्स बनाने के लिए एक क्वेरी लिखें, जो स्टूडेंटनाम को स्टोर करती है।

CREATE INDEX Stu_index ON Students (StudentName);

इसी प्रकार, तालिका से किसी अनुक्रमणिका को हटाने के लिए, आपको अनुक्रमणिका के नाम के साथ DROP कमांड का उपयोग करना होगा।

DROP INDEX Students.Stu_index;

उपरोक्त बाधाओं के अलावा प्राथमिक कुंजी और विदेशी कुंजी को भी बाधाओं के रूप में माना जाता है। प्राथमिक कुंजी बाधा का उपयोग बाधाओं को परिभाषित करने के लिए किया जाता है कि कैसे एक विशिष्ट कॉलम विशिष्ट रूप से प्रत्येक टपल की पहचान करता है। FOREIGN KEY बाधा का उपयोग एक रिश्ते के आधार पर दो तालिकाओं को जोड़ने के लिए किया जाता है।

इसी के साथ, हम इस लेख को समाप्त करते हैं। मुझे आशा है कि आप समझ गए होंगे कि डेटाबेस में मौजूद विभिन्न बाधाओं का उपयोग कैसे किया जाता है। यदि आप MySQL के बारे में अधिक जानना चाहते हैं और इस ओपन-सोर्स रिलेशनल डेटाबेस को जानना चाहते हैं, तो हमारा MySQL DBA प्रमाणन प्रशिक्षण देखें। जो प्रशिक्षक के नेतृत्व वाले लाइव प्रशिक्षण और वास्तविक जीवन परियोजना अनुभव के साथ आता है। यह प्रशिक्षण आपको MySQL को गहराई से समझने और विषय पर महारत हासिल करने में मदद करेगा।

हमारे लिए एक प्रश्न है? कृपया SQL बाधाओं पर इस लेख के टिप्पणी अनुभाग में इसका उल्लेख करें और मैं आपसे संपर्क करूंगा।


  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. उदाहरण के साथ एसक्यूएल जॉइन ट्यूटोरियल

  3. फील्डशील्ड में प्रॉक्सी-आधारित गतिशील डेटा मास्किंग

  4. जावा में समवर्ती संग्रह एपीआई का परिचय

  5. एमएस एसक्यूएल को आईआरआई वर्कबेंच से जोड़ना