यह अतिरिक्त "फीचर" डिस्प्ले चौड़ाई काफी भ्रमित करने वाली है, क्योंकि अन्य कॉलम प्रकारों जैसे CHAR
. में लंबाई निर्दिष्ट करता है।
यहाँ एक संक्षिप्त विश्लेषण है:
- सबसे महत्वपूर्ण:यह नहीं है "भंडारण स्थान" या "अंकों की संख्या" निर्दिष्ट करना। यह केवल यह कह रहा है कि इस कॉलम में डेटा कैसे स्वरूपित . है इसे वापस करने से पहले। INT(5) समान को स्टोर कर सकता है INT(16) या INT(255) जैसे मान - तीनों सभी (और केवल) मानों को संग्रहीत कर सकते हैं जो INT के लिए मान्य हैं। INT(255) 255 अंकों वाली किसी संख्या को संग्रहीत नहीं कर सकता। उन सभी के लिए संग्रहण स्थान वह स्थान है जो INT रखता है।
- यदि आप
ZEROFILL
का उपयोग करते हैं प्रदर्शन चौड़ाई वाले कॉलम पर, और संग्रहीत संख्या का स्ट्रिंग प्रतिनिधित्व प्रदर्शन चौड़ाई से छोटा है, इसे शून्य के साथ छोड़ दिया जाएगा। अगर यह लंबा है, तो कुछ नहीं होता है। यदि आप INT(5) चुनते हैं और मान 13 है, तो इसे 00013 के रूप में वापस कर दिया जाएगा। यदि मान 123456 है तो इसे 123456 के रूप में वापस कर दिया जाएगा। - यदि आप
ZEROFILL
का उपयोग नहीं करते हैं , कोई पैडिंग बिल्कुल नहीं होगी (कोई रिक्त स्थान और ऐसा नहीं) - यदि आप
ZEROFILL
का उपयोग करते हैं , आपको पता होना चाहिए कि कॉलम भीUNSIGNED
. होगा - किसी भी स्थिति में, टेबल मेटा डेटा के क्वेरी होने पर डिस्प्ले की चौड़ाई वापस कर दी जाती है। तो एक एप्लिकेशन जान सकता है कि डेटा को कैसे प्रारूपित किया जाना चाहिए।
मैं प्रदर्शन चौड़ाई को नापसंद करता हूं, क्योंकि भंडारण परत संग्रहीत डेटा की दृश्य प्रस्तुति के बारे में "जानना" है। इसके अलावा, इसका कोई फायदा नहीं है जिसके बारे में मुझे जानकारी है।