सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि SQLite UNIQUE
. का उपयोग कैसे करें यह सुनिश्चित करने के लिए बाधा है कि किसी स्तंभ या स्तंभों के समूह में सभी मान अद्वितीय हैं।
SQLite का परिचय UNIQUE
बाधा
एक UNIQUE
बाधा यह सुनिश्चित करती है कि किसी स्तंभ या स्तंभों के समूह के सभी मान एक दूसरे से भिन्न या अद्वितीय हों।
एक UNIQUE
परिभाषित करने के लिए बाधा, आप UNIQUE
. का उपयोग करते हैं एक या अधिक कॉलम के बाद कीवर्ड।
आप एक UNIQUE
परिभाषित कर सकते हैं स्तंभ या तालिका स्तर पर बाधा। केवल तालिका स्तर पर, आप एक UNIQUE
. परिभाषित कर सकते हैं एकाधिक स्तंभों में बाधा।
निम्नलिखित दिखाता है कि UNIQUE
को कैसे परिभाषित किया जाए स्तंभ स्तर पर स्तंभ के लिए बाधा:
CREATE TABLE table_name(
...,
column_name type UNIQUE,
...
);
Code language: SQL (Structured Query Language) (sql)
या टेबल स्तर पर:
CREATE TABLE table_name(
...,
UNIQUE(column_name)
);
Code language: SQL (Structured Query Language) (sql)
निम्नलिखित दिखाता है कि UNIQUE
को कैसे परिभाषित किया जाए एकाधिक स्तंभों के लिए बाधा:
CREATE TABLE table_name(
...,
UNIQUE(column_name1,column_name2,...)
);
Code language: SQL (Structured Query Language) (sql)
एक बार UNIQUE
बाधा को परिभाषित किया गया है, यदि आप कॉलम में पहले से मौजूद मान डालने या अपडेट करने का प्रयास करते हैं, तो SQLite एक त्रुटि जारी करेगा और ऑपरेशन को रोक देगा।
SQLite UNIQUE
बाधा उदाहरण
आइए UNIQUE
. का उपयोग करने के कुछ उदाहरण लेते हैं बाधा।
एक UNIQUE
को परिभाषित करना एक कॉलम उदाहरण के लिए बाधा
निम्न कथन contacts
. नामक एक नई तालिका बनाता है एक UNIQUE
के साथ email
. के लिए परिभाषित बाधा कॉलम:
CREATE TABLE contacts(
contact_id INTEGER PRIMARY KEY,
first_name TEXT,
last_name TEXT,
email TEXT NOT NULL UNIQUE
);
Code language: SQL (Structured Query Language) (sql)
निम्न उदाहरण contacts
. में एक नई पंक्ति सम्मिलित करता है टेबल:
INSERT INTO contacts(first_name,last_name,email)
VALUES ('John','Doe','[email protected]');
Code language: SQL (Structured Query Language) (sql)
यदि आप उसी ईमेल के साथ एक नया संपर्क सम्मिलित करने का प्रयास करते हैं, तो आपको एक त्रुटि संदेश प्राप्त होगा:
INSERT INTO contacts(first_name,last_name,email)
VALUES ('Johnny','Doe','[email protected]');
Code language: SQL (Structured Query Language) (sql)
यहाँ त्रुटि संदेश है:
Error while executing SQL query on database 'chinook': UNIQUE constraint failed: contacts.email
Code language: SQL (Structured Query Language) (sql)
एक UNIQUE
को परिभाषित करना एकाधिक कॉलम उदाहरण के लिए बाधा
निम्न कथन shapes
बनाता है UNIQUE
. के साथ तालिका background_color
. के लिए परिभाषित बाधा और foreground_color
कॉलम:
CREATE TABLE shapes(
shape_id INTEGER PRIMARY KEY,
background_color TEXT,
foreground_color TEXT,
UNIQUE(background_color,foreground_color)
);
Code language: SQL (Structured Query Language) (sql)
निम्न कथन shapes
. में एक नई पंक्ति सम्मिलित करता है टेबल:
INSERT INTO shapes(background_color,foreground_color)
VALUES('red','green');
Code language: SQL (Structured Query Language) (sql)
निम्न कथन काम करता है क्योंकि background_color
. दोनों में कोई दोहराव उल्लंघन नहीं है और foreground_color
कॉलम:
INSERT INTO shapes(background_color,foreground_color)
VALUES('red','blue');
Code language: SQL (Structured Query Language) (sql)
हालांकि, निम्न कथन दोनों background_color
. में डुप्लीकेट के कारण त्रुटि उत्पन्न करता है और foreground_color
कॉलम:
INSERT INTO shapes(background_color,foreground_color)
VALUES('red','green');
Code language: SQL (Structured Query Language) (sql)
यहाँ त्रुटि है:
Error while executing SQL query on database 'chinook': `UNIQUE` constraint failed: shapes.background_color, shapes.foreground_color
Code language: SQL (Structured Query Language) (sql)
SQLite UNIQUE
बाधा और शून्य
SQLite मानता है कि सभी NULL मान अलग हैं, इसलिए, UNIQUE
. वाला एक कॉलम बाधा के कई NULL मान हो सकते हैं।
निम्नलिखित कथन lists
नामक एक नई तालिका बनाता है जिसका email
कॉलम में एक UNIQUE
है बाधा:
CREATE TABLE lists(
list_id INTEGER PRIMARY KEY,
email TEXT UNIQUE
);
Code language: SQL (Structured Query Language) (sql)
निम्न कथन email
में एकाधिक NULL मान सम्मिलित करता है lists
. का कॉलम टेबल:
INSERT INTO lists(email)
VALUES(NULL),(NULL);
Code language: SQL (Structured Query Language) (sql)
आइए lists
से डेटा क्वेरी करें टेबल:
SELECT * FROM lists;
Code language: SQL (Structured Query Language) (sql)
यहाँ आउटपुट है:
जैसा कि आप देख सकते हैं, भले ही ईमेल कॉलम में एक UNIQUE
हो बाधा, यह कई NULL मान स्वीकार कर सकता है।
इस ट्यूटोरियल में, आपने सीखा है कि SQLite UNIQUE
. का उपयोग कैसे किया जाता है यह सुनिश्चित करने के लिए बाधा है कि किसी स्तंभ या स्तंभों के समूह में सभी मान अद्वितीय हैं।