2011-01-20 11 views
74

मैं MySQL संस्करण 5.1.49-1ubuntu8.1 का उपयोग कर रहा हूं। यह मुझे दो अलग-अलग डेटा प्रकारों के कॉलम परिभाषित करने की अनुमति देता है: BOOL और BOOLEAN। दो प्रकार के बीच मतभेद क्या हैं?MySQL BOOL और BOOLEAN कॉलम डेटा प्रकारों के बीच क्या अंतर है?

उत्तर

121

वे TINYINT (1) दोनों के समानार्थी हैं।

+9

एडम क्या कहता है। MySQL में कोई वास्तविक BOOLEAN प्रकार नहीं है। – Mchl

3

एक बात मैं सिर्फ देखा - एक स्तंभ MySql में BOOL के रूप में परिभाषित के साथ, स्प्रिंग रू सही ढंग से जावा कोड एक बूलियन के लिए मूल्य unmarshall को उत्पन्न करता है , इसलिए संभावित रूप से BOOL निर्दिष्ट करना कुछ मूल्य जोड़ सकता है, भले ही यह केवल कॉलम के इच्छित उपयोग के बारे में संकेत की प्रकृति में हो।

17

जैसा कि अन्य टिप्पणियों में स्थापित किया गया है, वे TINYINT (1) के समानार्थी हैं।

* तो, वे बूल, बूलियन, छोटे * int (1) के बीच अंतर को परेशान क्यों करते हैं?

अधिकतर अर्थशास्त्र।

बूल और बूलियन: MySQL डिफ़ॉल्ट इन्हें टिनिंट प्रकार में परिवर्तित करता है। इस लेखन के समय के आसपास किए गए एक MySQL कथन के अनुसार, "हम भविष्य में MySQL रिलीज में मानक एसक्यूएल के अनुसार पूर्ण बूलियन प्रकार हैंडलिंग को लागू करना चाहते हैं।"

0 = FALSE 1 = सही

TINYINT: एक बाइट में रह रहे हैं; -128 से +127 तक है; या, 0 - 256.


आमतौर पर इस तुलना में पले-बढ़े: MySQL 5.0.3 के बाद - बिट: 8 बाइट्स और दुकानों केवल बाइनरी डेटा का उपयोग करता है।

+1

यह वास्तव में प्रश्न का उत्तर नहीं देता है। 'BOOL' और 'BOOLEAN'' के बीच क्या अंतर है? – nalply

+7

पहले की पोस्ट पहले से ही स्थापित हो चुकी थी कि दोनों TINYINT (1) के समानार्थी हैं। आदर्श रूप से, अगला प्रश्न होगा "फिर, उन्होंने डेटा प्रकारों के बीच अंतर क्यों किया?" – Sixthfore

+1

@ 'बिट: पहले 8 बाइट्स का उपयोग करता है और केवल बाइनरी डेटा स्टोर करता है। 'गलत जानकारी है। जब आप अपनी तालिका में थोड़ा कॉलम जोड़ते हैं तो यह प्रत्येक रिकॉर्ड में एक संपूर्ण बाइट पर कब्जा करेगा, केवल एक बिट नहीं। जब आप एक दूसरा बिट कॉलम जोड़ते हैं तो इसे उसी बाइट में संग्रहीत किया जाएगा। नौवें बिट कॉलम को स्टोरेज के दूसरे बाइट की आवश्यकता होगी। – Kolyunya

संबंधित मुद्दे