MySQL में, कार्डिनैलिटी शब्द उन डेटा वैल्यूज़ की विशिष्टता को संदर्भित करता है जिन्हें कॉलम में रखा जा सकता है। यह एक प्रकार की प्रॉपर्टी है जो डेटा को खोजने, क्लस्टर करने और सॉर्ट करने की क्षमता को प्रभावित करती है।
कार्डिनैलिटी दो प्रकार की हो सकती है जो निम्न हैं −
लो कार्डिनैलिटी − एक कॉलम के सभी वैल्यूज़ समान होने चाहिए।
हाई कार्डिनैलिटी − एक कॉलम के सभी वैल्यूज़ यूनिक होने चाहिए।
हाई कार्डिनैलिटी का कॉन्सेप्ट तब उपयोग किया जाता है जब हम डुप्लीकेट वैल्यूज़ को प्रतिबंधित करने के लिए किसी कॉलम पर कंस्ट्रेंट लगाते हैं।
हाई कार्डिनैलिटी
हाई कार्डिनैलिटी का निम्न उदाहरण है, जिसमें एक कॉलम के सभी वैल्यूज़ यूनिक होने चाहिए।
mysql> create table UniqueDemo1 -> ( -> id int, -> name varchar(100), -> UNIQUE(id, name) -> ); Query OK, 0 rows affected (0.81 sec)
टेबल में रिकॉर्ड्स इन्सर्ट करना।
mysql> insert into UniqueDemo1 values(1,'John'); Query OK, 1 row affected (0.18 sec) mysql> insert into UniqueDemo1 values(1,'John'); ERROR 1062 (23000): Duplicate entry '1-John' for key 'id'
उपरोक्त में, जब हम टेबल में समान रिकॉर्ड्स इन्सर्ट करते हैं तो एरर आती है।
सभी रिकॉर्ड्स डिस्प्ले करने के लिए।
mysql> select * from UniqueDemo1;
आउटपुट निम्न है। चूंकि डुप्लीकेट वैल्यू के लिए एरर आती है; इसलिए, अभी टेबल में केवल 1 रिकॉर्ड है, जिसे हमने पहले जोड़ा था।
+------+------+ | id | name | +------+------+ | 1 | John | +------+------+ 1 row in set (0.00 sec)
लो कार्डिनैलिटी
लो कार्डिनैलिटी का उदाहरण।
टेबल बनाना।
mysql> create table LowCardinality -> ( -> id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.71 sec)
डुप्लीकेट वैल्यूज़ के साथ रिकॉर्ड्स इन्सर्ट करना।
mysql> insert into LowCardinality values(1,'John'); Query OK, 1 row affected (0.19 sec) mysql> insert into LowCardinality values(1,'John'); Query OK, 1 row affected (0.14 sec)
सभी रिकॉर्ड्स डिस्प्ले करना।
mysql> select * from LowCardinality;
आउटपुट डुप्लीकेट वैल्यूज़ दिखाता है, क्योंकि हमने टेबल बनाते समय UNIQUE शामिल नहीं किया था।
+------+------+ | id | name | +------+------+ | 1 | John | | 1 | John | +------+------+ 2 rows in set (0.00 sec)