MySQL-এ একক বুলিয়ান/বাইনারি মান (০ বা ১) সংরক্ষণের জন্য সবচেয়ে ছোট ডেটা টাইপ হল BIT(1)। এটি ১ বিট স্টোরেজ নেয় (প্রায়াكيلই ১ বাইটে প্যাক হয়)।
সিনট্যাক্স
CREATE TABLE bit_demo (
is_valid BIT(1)
);
টেবিল কাঠামো
SHOW CREATE TABLE bit_demo;
CREATE TABLE `bit_demo` (
`is_valid` bit(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
ডেটা ইনসার্ট
INSERT INTO bit_demo VALUES (0), (1), (1), (0);
সিলেক্ট (রশowy বিট মান)
SELECT * FROM bit_demo;
+---------+
| is_valid|
+---------+
| | -- বাইনারি ডেটা, সরাসরি দেখানো যায় না
| |
| |
| |
+---------+
বিট মান দেখানোর উপায়
পদ্ধতি ১: +0 (নিউমেরিক কনটেক্সট)
SELECT is_valid + 0 AS bit_value FROM bit_demo;
+-----------+
| bit_value |
+-----------+
| 0 |
| 1 |
| 1 |
| 0 |
+-----------+
পদ্ধতি ২: CAST
SELECT CAST(is_valid AS UNSIGNED) AS bit_value FROM bit_demo;
পদ্ধতি ৩: BIN() ফাংশন (বাইনারি স্ট্রিং)
SELECT BIN(is_valid) AS bit_string FROM bit_demo;
+------------+
| bit_string |
+------------+
| 0 |
| 1 |
| 1 |
| 0 |
+------------+
BIT vs TINYINT vs BOOLEAN
| টাইপ | স্টোরেজ | রেঞ্জ | ব্যবহার |
|---|---|---|---|
| BIT(1) | ~1 বাইট | 0/1 | স্পেস-এফিশিয়েন্ট ফ্ল্যাগ |
| TINYINT | 1 বাইট | -128 to 127 | সাধারণ ছোট সংখ্যা |
| BOOLEAN | 1 বাইট | 0/1 (TINYINT(1) এলিয়াস) | বুলিয়ান লজিক |
BIT(N) একাধিক বিটের জন্য
CREATE TABLE bit_multi (
flags BIT(5) -- ৫ বিট, মান ০-৩১
);
INSERT INTO bit_multi VALUES (b'10101'); -- বাইনারি লিটারেল
SELECT flags + 0 FROM bit_multi; -- 21
সুপারিশ
সাদা বুলিয়ান ফ্ল্যাগের জন্য BOOLEAN (হรือ TINYINT(1)) পঠনযোগ্য এবং স্ট্যান্ডার্ড। অত্য্ত বড় টেবিলে স্পেস বাঁচাতে BIT(1) ব্যবহার করুন।