কম্পিউটার

মাইএসকিউএল-এ কার্ডিনালিটি কী?


মাইএসকিউএল-এ, কার্ডিনালিটি শব্দটি ডেটা মানগুলির স্বতন্ত্রতাকে বোঝায় যা কলামগুলিতে রাখা যেতে পারে। এটি এমন এক ধরনের সম্পত্তি যা অনুসন্ধান, ক্লাস্টার এবং ডেটা সাজানোর ক্ষমতাকে প্রভাবিত করে।

কার্ডিনালিটি দুই ধরনের হতে পারে যা নিম্নরূপ -

  • কম কার্ডিনালিটি − একটি কলামের সকল মান অবশ্যই একই হতে হবে।

  • উচ্চ কার্ডিনালিটি − একটি কলামের সমস্ত মান অবশ্যই অনন্য হতে হবে৷

ডুপ্লিকেট মান সীমিত করার জন্য যদি আমরা একটি কলামে একটি সীমাবদ্ধতা রাখি তবে উচ্চ কার্ডিনালিটির ধারণাটি ব্যবহৃত হয়৷

উচ্চ কার্ডিনালিটি

নিম্নলিখিতটি উচ্চ কার্ডিনালিটির একটি উদাহরণ, যেখানে একটি কলামের সমস্ত মান অবশ্যই অনন্য হতে হবে৷

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;

আউটপুট ডুপ্লিকেট মান দেখায়, যেহেতু আমরা একটি টেবিল তৈরি করার সময় অনন্য অন্তর্ভুক্ত করিনি৷

+------+------+
| id   | name |
+------+------+
|    1 | John |
|    1 | John |
+------+------+
2 rows in set (0.00 sec)

  1. MySQL মূল্যের একটি তালিকা কোয়েরি?

  2. MySQL-এ "SELECT TRUE" কি?

  3. MySQL-এ একটি পরিসরের মধ্যে মান আনতে BETWEEN ক্লজের বিকল্প কী?

  4. MySQL এলোমেলোভাবে কলাম মান থেকে 2 মান নির্বাচন করুন?