मैं MySQL संस्करण 5.1.49-1ubuntu8.1 का उपयोग कर रहा हूं। यह मुझे दो अलग-अलग डेटा प्रकारों के कॉलम को परिभाषित करने की अनुमति देता है: BOOLऔर BOOLEAN। दोनों प्रकारों के बीच अंतर क्या हैं?
जवाबों:
वे दोनों टिनिनेट (1) के लिए समानार्थक शब्द हैं ।
जैसा कि अन्य टिप्पणियों में स्थापित किया गया है, वे TINYINT (1) के लिए समानार्थी हैं।
* तो, क्यों वे बूल, बूलियन, छोटे * int (1) के बीच अंतर करना परेशान करते हैं ?
अधिकतर शब्दार्थ।
बूल और बूलियन: MySQL डिफ़ॉल्ट इनको छोटे प्रकार में परिवर्तित करता है। इस लेखन के समय के आसपास किए गए एक MySQL स्टेटमेंट के अनुसार, "हम भविष्य के MySQL रिलीज़ में, मानक SQL के अनुसार, पूर्ण बूलियन टाइप हैंडलिंग को लागू करने का इरादा रखते हैं।"
0 = FALSE 1 = TRUE
TINYINT: एक बाइट पर कब्जा करता है; -128 से +127 तक; या, 0 - 256।
आमतौर पर इस तुलना में लाया जाता है: MySQL 5.0.3 के बाद - बिट: 8 बाइट्स का उपयोग करता है और केवल बाइनरी डेटा संग्रहीत करता है।
BOOLऔर BOOLEAN?
Bit: Uses 8 bytes and stores only binary data.गलत जानकारी है। जब आप अपनी तालिका में थोड़ा कॉलम जोड़ते हैं तो यह केवल एक बिट नहीं, बल्कि प्रत्येक रिकॉर्ड में एक पूरी बाइट पर कब्जा कर लेगा। जब आप दूसरा बिट कॉलम जोड़ते हैं तो इसे उसी बाइट में संग्रहीत किया जाएगा। नौवें बिट कॉलम को भंडारण के दूसरे बाइट की आवश्यकता होगी।
एक बात जो मैंने अभी देखी है - MySql में BOOL के रूप में परिभाषित कॉलम के साथ, स्प्रिंग रूओ सही ढंग से जावा कोड को एक बूलियन के लिए अनमर्सहॉल उत्पन्न करता है, इसलिए संभवतः निर्दिष्ट BOOL कुछ मूल्य जोड़ सकता है, भले ही केवल एक संकेत की प्रकृति में हो। स्तंभ का इच्छित उपयोग।
संख्यात्मक प्रकारों के MySQL डॉक्स अवलोकन की जाँच करें:
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html