কম্পিউটার টিউটোরিয়াল

MySQL ENUM ডেটা টাইপের বিভিন্ন অ্যাট্রিবিউট কী কী?

MySQL ENUM টাইপ নিচের অ্যাট্রিবিউটগুলো দিয়ে ডিফাইন করা যায়, যা অনুমোদিত মানগুলোকে প্রভাবিত করে:

  • NOT NULL — ডিফল্টভাবে ENUM-এ NULL মান অনুমোদিত। NULL বাধা দিতে NOT NULL অ্যাট্রিবিউট ব্যবহার করতে হয়।
  • NULL — DEFAULT NULL-এর সমার্থক। NULL-এর সূচক মান NULL।
  • DEFAULT — মান নির্দিষ্ট না করলে ডিফল্ট মান সেট করে। INSERT স্টেটমেন্টে এই ফিল্ডের মান না দিলে DEFAULT-এর পশ্চাদ্দের মান ইনসার্ট হবে। DEFAULT এক্সপ্রেশনে ফাংশন ব্যবহার করা যায় না। ENUM-এ ডিফল্ট মান হিসেবে NULL এবং খালি স্ট্রিং ('') ব্যবহার করা যায়।

উদাহরণ

নিচের উদাহরণ ENUM ডেটা টাইপের সাথে এই অ্যাট্রিবিউটগুলো ব্যবহারের 모습을 দেখাবে।

mysql> SET SESSION sql_mode = '';
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE TABLE enumtesting(e_value ENUM('a','1') NOT NULL DEFAULT '1', id TINYINT NOT NULL);
Query OK, 0 rows affected (0.23 sec)
mysql> INSERT INTO enumtesting(e_value, id) VALUES('1', '1'), ('', 2), (NULL, 3), ('abc', 4);
Query OK, 4 rows affected, 3 warnings (0.09 sec)
Records: 4 Duplicates: 0 Warnings: 3
mysql> SHOW WARNINGS;
+---------+------+----------------------------------------------------+
| Level   | Code | Message                                            |
+---------+------+----------------------------------------------------+
| Warning | 1265 | Data truncated for column 'e_value' at row 2       |
| Warning | 1048 | Column 'e_value' cannot be null                    |
| Warning | 1265 | Data truncated for column 'e_value' at row 4       |
+---------+------+----------------------------------------------------+
3 rows in set (0.00 sec)
mysql> SELECT * FROM enumtesting;
+---------+----+
| e_value | id |
+---------+----+
| 1       | 1  |
|         | 2  |
|         | 3  |
|         | 4  |
+---------+----+
4 rows in set (0.00 sec)
mysql> INSERT INTO enumtesting(id) VALUES(5);
Query OK, 1 row affected (0.11 sec)
mysql> SELECT * FROM enumtesting;
+---------+----+
| e_value | id |
+---------+----+
| 1       | 1  |
|         | 2  |
|         | 3  |
|         | 4  |
| 1       | 5  |
+---------+----+
5 rows in set (0.00 sec)
mysql> SELECT e_value, e_value+0 AS enum_index, id FROM enumtesting;
+---------+------------+----+
| e_value | enum_index | id |
+---------+------------+----+
| 1       | 2          | 1  |
|         | 0          | 2  |
|         | 0          | 3  |
|         | 0          | 4  |
| 1       | 2          | 5  |
+---------+------------+----+
5 rows in set (0.00 sec)

এখানে NOT NULL DEFAULT '1' থাকায় NULL ইনসার্ট করলে এরর দিয়েছে, খালি স্ট্রিং এবং অবৈধ মান 'abc'-এর জন্য ডেটা ট্রানকেট হয়েছে (সতর্কতা), এবং ডিফল্ট মান '1' (সূচক ২) ইনসার্ট হয়েছে।

  1. MySQL-এ 0, 1, NULL মান স্টোর করার জন্য সেরা ডেটা টাইপ

  2. MySQL-এ ব্যাকটিক (`) এবং সিঙ্গেল কোট (') এর ব্যবহার ও পার্থক্য

  3. MySQL-র মূল ফিচারগুলো

  4. C#-এ অ্যারের বিভিন্ন ডেটা টাইপগুলো কী কী?