MySQL में सिंगल बिट स्टोर करने के लिए BIT(1) डेटा टाइप
बूलियन/फ्लैग मान (0 या 1) स्टोर करने के लिए सबसे कॉम्पैक्ट टाइप BIT(1) है, जो केवल 1 बिट उपयोग करता है (हालांकि डिस्क पर 1 बाइट में पैक होता है)।
सिंटैक्स
CREATE TABLE bitDemo (
isValid BIT(1)
);
सत्यापन
SHOW CREATE TABLE bitDemo;
CREATE TABLE `bitdemo` (`isValid` bit(1) DEFAULT NULL) ENGINE=InnoDB ...
डेटा डालना
INSERT INTO bitDemo VALUES (0), (1), (1), (0);
सीधे SELECT (अप्रिंटेबल कैरेक्टर दिख सकते हैं)
SELECT * FROM bitDemo;
+---------+ | isValid | +---------+ | | -- बाइनरी डेटा, टर्मिनल में खाली/गड़बड़ दिख सकता है | | | | | | +---------+
मान देखने के लिए +0 या CAST उपयोग करें
SELECT isValid, isValid+0 AS numeric_value FROM bitDemo;
+---------+---------------+ | isValid | numeric_value | +---------+---------------+ | | 0 | | | 1 | | | 1 | | | 0 | +---------+---------------+
BIT(1) vs TINYINT(1) vs BOOLEAN
| टाइप | स्टोरेज | मान सीमा | नोट |
|---|---|---|---|
| BIT(1) | ~1 बाइट/8 मान (पैक्ड) | 0 या 1 | सबसे कॉम्पैक्ट, लेकिन डिस्प्ले के लिए +0 चाहिए |
| TINYINT(1) | 1 बाइट | -128 से 127 | मानक, सीधे प्रिंट होता है |
| BOOLEAN | 1 बाइट | 0/1 (TINYINT(1) का पर्याय) | पठनीय, एप्लिकेशन फ्रेंडली |
सिफारिश
अधिकांश मामलों में TINYINT(1) या BOOLEAN उपयोग करें — पठनीयता और संगतता बेहतर। BIT(1) केवल अत्यधिक स्टोरेज-संवेदनशील मामलों (करोड़ों पंक्तियां) के लिए।