हाँ, BOOL = TINYINT(1) समानार्थी
MySQL में BOOL और BOOLEAN डेटा टाइप आंतरिक रूप से TINYINT(1) के समानार्थी (synonym) हैं। MySQL इन्हें TINYINT(1) के रूप में स्टोर करता है।
प्रदर्शन
टेबल बनाएं:
mysql> CREATE TABLE boolToTinyIntDemo (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name VARCHAR(20),
-> isAgeGreaterThan18 BOOL
-> );
टेबल संरचना जांचें:
mysql> DESC boolToTinyIntDemo;
परिणाम:
+--------------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------------+-------------+------+-----+---------+----------------+ | Id | int(11) | NO | PRI | NULL | auto_increment | | Name | varchar(20) | YES | | NULL | | | isAgeGreaterThan18 | tinyint(1) | YES | | NULL | | +--------------------+-------------+------+-----+---------+----------------+
देखें: isAgeGreaterThan18 कॉलम का टाइप BOOL से TINYINT(1) में बदल गया है।
डेटा इन्सर्ट और रीड
mysql> INSERT INTO boolToTinyIntDemo(Name, isAgeGreaterThan18) VALUES('Larry', TRUE), ('Sam', FALSE);
mysql> SELECT * FROM boolToTinyIntDemo;
+----+-------+--------------------+ | Id | Name | isAgeGreaterThan18 | +----+-------+--------------------+ | 1 | Larry | 1 | | 2 | Sam | 0 | +----+-------+--------------------+
मुख्य बिंदु
TRUE= 1,FALSE= 0 के रूप में स्टोर होता हैBOOLकेवल पठनीयता के लिए है, स्टोरेज TINYINT(1) ही हैTINYINT(1)1 बाइट उपयोग करता है (-128 से 127 या 0 से 255 अनसाइन्ड)- किसी भी गैर-शून्य मान को TRUE माना जाता है
व्यावहारिक प्रभाव