आपकी उलझन का समाधान है-
Mysql में, int(6) का मतलब यह नहीं है कि वे 6 अंकों तक स्टोर कर सकते हैं। 999999 से अधिक नहीं।
हालांकि CHAR(6)इसका मतलब एक वर्ण स्तंभ है, जिसकी अधिकतम लंबाई 6 वर्ण है, जैसे कि ये शब्द:
मकान
अगर मैंने उस कॉलम में "स्पेशल" शब्द को स्टोर करने की कोशिश की, तो MySQL मान को "स्पेशिया" के रूप में काट देगा, क्योंकि मूल शब्द में 7 अक्षर हैं।
वैसे भी, पूर्णांक स्तंभों में सभी अनुमत मानों की एक पूर्व निर्धारित सीमा होती है। कोष्ठक में संख्या केवल प्रदर्शन की चौड़ाई दर्शाती है।
यह शायद अभी भी भ्रमित करने वाला है, इसलिए मुझे आगे समझाना चाहिए…
प्रदर्शन चौड़ाई 1 से 255 तक की संख्या है। यदि आप चाहते हैं कि आपके सभी पूर्णांक मान समान रूप से "दिखाई दें" तो आप प्रदर्शन चौड़ाई सेट कर सकते हैं:
टिन्यिनट[(एम)] [अहस्ताक्षरित] [ज़ीरोफ़िल]
एम पूर्णांक प्रकारों के लिए अधिकतम प्रदर्शन चौड़ाई इंगित करता है। अधिकतम प्रदर्शन चौड़ाई 255 है। प्रदर्शन चौड़ाई उन मानों की श्रेणी से असंबंधित है जिनमें एक प्रकार शामिल हो सकता है, . फ़्लोटिंग-पॉइंट और फिक्स्ड-पॉइंट प्रकारों के लिए, एम अंकों की कुल संख्या है जिसे संग्रहीत किया जा सकता है।
यदि आप संख्यात्मक कॉलम के लिए ZEROFILL निर्दिष्ट करते हैं, तो MySQL स्वचालित रूप से कॉलम में UNSIGNED विशेषता जोड़ देता है।
तो आपके प्रश्न का उत्तर है
create table foo
(
col2 tinyint(2) unsigned zerofill, col4 tinyint(4) unsigned zerofill, col5notzerofill tinyint(5)
)engine=innodb;
insert into foo values (1,2,3),(11,12,14),(123,123,156),(1234,1234,12756);
select * from foo;
OUTPUT :-
+------+------+-----------------+
| col2 | col4 | col5notzerofill |
+------+------+-----------------+
| 01 | 0002 | 3 |
| 11 | 0012 | 14 |
| 123 | 0123 | 127 |
| 255 | 0255 | 127 |
+------+------+-----------------+
*तो समझें, मैसकल में डिस्प्ले की चौड़ाई केवल जीरोफिल के साथ काम करती है।
*यदि आप जीरोफिल का उपयोग नहीं करते हैं, तो यह प्रभावी नहीं है।
और यदि आप ज़ीरोफिल का उपयोग करते हैं तो mysql डिस्प्ले चौड़ाई की जांच करेगा, और यदि आप असाइन नहीं करते हैं तो mysql स्वचालित रूप से उस कॉलम में डिस्प्ले-चौड़ाई असाइन कर देगा। **