MySQL में TINYINT(1) और Boolean: कोई अंतर नहीं
MySQL में BOOLEAN (या BOOL) वास्तव में TINYINT(1) का एक पर्याय (synonym) है। दोनों आंतरिक रूप से समान हैं।
प्रदर्शन: Boolean कॉलम वास्तव में TINYINT(1) बनाता है
CREATE TABLE DemoTable (
isMarried BOOLEAN
);
DESC DemoTable;
आउटपुट:
+-----------+------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-----------+------------+------+-----+---------+-------+ | isMarried | tinyint(1) | YES | | NULL | | +-----------+------------+------+-----+---------+-------+
जैसा कि आप देख सकते हैं, BOOLEAN घोषित करने पर भी MySQL इसे tinyint(1) के रूप में दिखाता है।
डेटा डालना और पढ़ना
INSERT INTO DemoTable VALUES (TRUE); INSERT INTO DemoTable VALUES (FALSE); SELECT * FROM DemoTable;
आउटपुट:
+-----------+ | isMarried | +-----------+ | 1 | | 0 | +-----------+
मुख्य बिंदु
TRUE= 1,FALSE= 0 के रूप में स्टोर होता हैBOOLEAN,BOOL,TINYINT(1)— सभी समान हैं- स्टोरेज: 1 बाइट
- रेंज: -128 से 127 (साइन्ड) या 0 से 255 (अनसाइन्ड)
कौन सा उपयोग करें?
सिमेंटिक क्लैरिटी के लिए BOOLEAN या BOOL का उपयोग करें — यह कोड को अधिक पठनीय बनाता है। लेकिन आंतरिक रूप से कोई अंतर नहीं है।
नोट: अन्य डेटाबेस (जैसे PostgreSQL) में वास्तविक Boolean टाइप होता है, लेकिन MySQL में यह केवल TINYINT(1) का एलियास है।