MySQL में, कार्डिनैलिटी शब्द डेटा मानों की विशिष्टता को संदर्भित करता है जिसे कॉलम में रखा जा सकता है। यह एक तरह की संपत्ति है जो डेटा को खोजने, क्लस्टर करने और सॉर्ट करने की क्षमता को प्रभावित करती है।
कार्डिनैलिटी दो प्रकार की हो सकती है जो इस प्रकार हैं -
-
कम कार्डिनैलिटी - एक कॉलम के सभी मान समान होने चाहिए।
-
उच्च कार्डिनैलिटी - कॉलम के सभी मान अद्वितीय होने चाहिए।
उच्च कार्डिनैलिटी की अवधारणा का उपयोग तब किया जाता है जब हम डुप्लिकेट मानों को प्रतिबंधित करने के लिए किसी स्तंभ पर बाधा डालते हैं।
उच्च कार्डिनैलिटी
निम्नलिखित उच्च कार्डिनैलिटी का एक उदाहरण है, जिसमें एक स्तंभ के सभी मान अद्वितीय होने चाहिए।
mysql> तालिका बनाएं UniqueDemo1 -> ( -> id int, -> name varchar(100), ->UNIQUE(id,name) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.81 सेकंड
तालिका में रिकॉर्ड सम्मिलित करना।
mysql> UniqueDemo1 मानों (1, 'जॉन') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.18 सेकंड) mysql> UniqueDemo1 मानों में डालें (1, 'जॉन'); त्रुटि 1062 (23000):डुप्लिकेट प्रविष्टि ' 1-जॉन' कुंजी 'आईडी' के लिए
उपरोक्त में हमें एक त्रुटि मिल रही है जब हम तालिका में समान रिकॉर्ड डालते हैं।
सभी रिकॉर्ड प्रदर्शित करने के लिए।
mysql> UniqueDemo1 से *चुनें;
निम्नलिखित आउटपुट है। चूंकि, डुप्लिकेट मान के लिए, यह एक त्रुटि दिखाता है; इसलिए, अभी तालिका में केवल 1 रिकॉर्ड है, जिसे हमने पहले जोड़ा था।
<पूर्व>+----------+------+| आईडी | नाम |+----------+------+| 1 | जॉन |+------+------+1 पंक्ति सेट (0.00 सेकंड) मेंकम कार्डिनैलिटी
निम्न कार्डिनैलिटी का उदाहरण।
एक टेबल बनाना।
mysql> तालिका बनाएं LowCardinality -> ( -> id int, -> name varchar(100) -> );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.71 सेकंड)
डुप्लिकेट मानों के साथ रिकॉर्ड सम्मिलित करना।
mysql> LowCardinality मानों (1, 'जॉन') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.19 सेकंड) mysql> LowCardinality मानों (1, 'जॉन') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.14 सेकंड) )
सभी रिकॉर्ड प्रदर्शित करना।
mysql> LowCardinality से *चुनें;
आउटपुट डुप्लिकेट मान दिखाता है, क्योंकि हमने तालिका बनाते समय UNIQUE को शामिल नहीं किया था।
<पूर्व>+----------+------+| आईडी | नाम |+----------+------+| 1 | जॉन || 1 | जॉन |+------+------+2 पंक्तियों में सेट (0.00 सेकंड)