BIGINT vs BIGINT(20) - डिस्प्ले विड्थ का अंतर
BIGINT और BIGINT(20) के बीच एकमात्र अंतर डिस्प्ले विड्थ (प्रदर्शन चौड़ाई) है। संख्या 20 केवल प्रदर्शन के लिए उपयोग की जाती है, स्टोरेज रेंज या परिशुद्धता पर कोई प्रभाव नहीं पड़ता।
आइए उदाहरण देखते हैं - BIGINT(20) ZEROFILL के साथ टेबल बनाएं:
mysql> CREATE TABLE DemoTable (
Number BIGINT(20) ZEROFILL
);
रिकॉर्ड्स इन्सर्ट करें:
mysql> INSERT INTO DemoTable VALUES (1); mysql> INSERT INTO DemoTable VALUES (12); mysql> INSERT INTO DemoTable VALUES (123); mysql> INSERT INTO DemoTable VALUES (1234);
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+----------------------+ | Number | +----------------------+ | 00000000000000000001 | | 00000000000000000012 | | 00000000000000000123 | | 00000000000000001234 | +----------------------+
व्याख्या:
- ZEROFILL: संख्या को बाएं से शून्य से पैड करके निर्दिष्ट विड्थ (20) तक भरता है
- BIGINT(20): डिस्प्ले विड्थ 20 सेट करता है
- स्टोरेज: दोनों ही मामलों में 8 बाइट्स (64-बिट इंटीजर) स्टोर होता है
- रेंज: -9,223,372,036,854,775,808 से 9,223,372,036,854,775,807 (साइन्ड)
- UNSIGNED रेंज: 0 से 18,446,744,073,709,551,615
महत्वपूर्ण:
- विड्थ स्पेसिफायर (20) केवल ZEROFILL के साथ अर्थपूर्ण है
- ZEROFILL के बिना, BIGINT(20) और BIGINT समान व्यवहार करते हैं
- विड्थ डेटा वैलिडेशन या स्टोरेज को प्रभावित नहीं करता
- MySQL 8.0.17+ में ZEROFILL और डिस्प्ले विड्थ डिप्रिकेटेड हैं
व्यावहारिक सलाह: केवल BIGINT या BIGINT UNSIGNED लिखें। डिस्प्ले फॉर्मेटिंग एप्लिकेशन लेयर में हैंडल करें।