int(11)
बाइट्स में mysql के कॉलम का आकार क्या है ?
और अधिकतम मूल्य जो इस कॉलम में संग्रहीत किए जा सकते हैं?
mysql
को मेरे आने से पहले टैग किया जाना चाहिए । Thx
int(11)
बाइट्स में mysql के कॉलम का आकार क्या है ?
और अधिकतम मूल्य जो इस कॉलम में संग्रहीत किए जा सकते हैं?
mysql
को मेरे आने से पहले टैग किया जाना चाहिए । Thx
जवाबों:
एक INT
हमेशा 4 कोई बात नहीं क्या लंबाई निर्दिष्ट किया जाता है बाइट्स होगा।
TINYINT
= 1 बाइट (8 बिट)SMALLINT
= 2 बाइट्स (16 बिट)MEDIUMINT
= 3 बाइट्स (24 बिट)INT
= 4 बाइट्स (32 बिट)BIGINT
= 8 बाइट्स (64 बिट)।लंबाई सिर्फ यह निर्दिष्ट करती है कि mysql कमांड लाइन क्लाइंट के साथ डेटा का चयन करते समय कितने अक्षर पैड करने के लिए। 12345 के रूप में संग्रहीत int(3)
अभी भी 12345 के रूप में दिखाएगा, लेकिन अगर इसे संग्रहीत किया गया था क्योंकि int(10)
यह अभी भी 12345 के रूप में प्रदर्शित होगा, लेकिन आपके पास पहले पांच अंकों को पैड करने का विकल्प होगा। उदाहरण के लिए, यदि आपने जोड़ा तो ZEROFILL
यह 0000012345 के रूप में प्रदर्शित होगा।
... और अधिकतम मूल्य 2147483647 (हस्ताक्षरित) या 4294967295 (निरस्त) होगा
INT ( x ) केवल प्रदर्शन की अवधि में अंतर करेगा , जो कि x अंकों में संख्या को दिखाना है , और 11. तक सीमित नहीं है। आप इसका उपयोग करते हुए ZEROFILL
जोड़ते हैं, जो आपकी लंबाई से मेल खाने तक शून्य को प्रीपेन्ड करेगा।
तो, किसी भी संख्या में x के लिएINT(x)
यदि संग्रहीत मान में x की तुलना में कम अंक हैं , ZEROFILL
तो शून्य को प्रीप्रेंड करेगा।
INT (5) ZEROFILL 32 की संग्रहीत मूल्य दिखाएगा के साथ 00032
INT (5) 32 की संग्रहीत मूल्य के साथ दिखाई देगा 32
INT 32 की संग्रहीत मूल्य के साथ दिखाई देगा 32
यदि संग्रहीत मान में x की तुलना में अधिक अंक हैं , तो इसे उसी रूप में दिखाया जाएगा।
INT (3) ZEROFILL 250000 की संग्रहीत मूल्य दिखाएगा के साथ 250000
INT (3) 250000 की संग्रहीत मूल्य के साथ दिखाई देगा 250000
INT 250000 की संग्रहीत मूल्य के साथ दिखाई देगा 250000
डेटाबेस में संग्रहीत वास्तविक मूल्य प्रभावित नहीं होता है, आकार अभी भी समान है, और कोई भी गणना सामान्य रूप से व्यवहार करेगी।
यह BIGINT, MEDIUMINT, SMALLINT, और TINYINT पर भी लागू होता है।
ZEROFILL
।
यहाँ के अनुसार , int(11)
अंतरिक्ष के 4 बाइट्स लेगा जो 2^(31) = 2147483648
अधिकतम मूल्य और -2147483648
न्यूनतम मूल्य के साथ 32 बिट्स का स्थान है । एक बिट साइन के लिए है।
जैसा कि अन्य लोगों ने कहा है, माइनम / अधिकतम मान कॉलम को स्टोर कर सकता है और बाइट्स में कितना संग्रहण होता है, यह केवल प्रकार द्वारा परिभाषित किया गया है, लंबाई नहीं।
इनमें से बहुत सारे उत्तर कह रहे हैं कि (11)
भाग केवल प्रदर्शन चौड़ाई को प्रभावित करता है जो कि वास्तव में सही नहीं है, लेकिन ज्यादातर।
कोई ज़ीरोफिल निर्दिष्ट परिभाषा के int(2)
साथ :
100
100
0
00
ज़ीरोफिल भी निर्दिष्ट किया जाता(2)
है तो केवल यही काम करेगा :
1
दिखाया जाएगा 01
।सभी बारीकियों को देखने का सबसे अच्छा तरीका है:
CREATE TABLE `mytable` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`int1` int(10) NOT NULL,
`int2` int(3) NOT NULL,
`zf1` int(10) ZEROFILL NOT NULL,
`zf2` int(3) ZEROFILL NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `mytable`
(`int1`, `int2`, `zf1`, `zf2`)
VALUES
(10000, 10000, 10000, 10000),
(100, 100, 100, 100);
select * from mytable;
जो उत्पादन करेगा:
+----+-------+-------+------------+-------+
| id | int1 | int2 | zf1 | zf2 |
+----+-------+-------+------------+-------+
| 1 | 10000 | 10000 | 0000010000 | 10000 |
| 2 | 100 | 100 | 0000000100 | 100 |
+----+-------+-------+------------+-------+
यह उत्तर लिनक्स के लिए MySQL 5.7.12 के खिलाफ परीक्षण किया गया है और अन्य कार्यान्वयन के लिए भिन्न हो सकता है या नहीं भी हो सकता है।
बाइट्स में mysql में int (11) के कॉलम का आकार क्या है?
(11)
- int
डेटा प्रकार की इस विशेषता का कॉलम के आकार से कोई लेना-देना नहीं है। यह पूर्णांक डेटा प्रकार की प्रदर्शन चौड़ाई है। से 11.1.4.5। संख्यात्मक प्रकार विशेषताएं :
MySQL प्रकार के लिए आधार कीवर्ड के बाद कोष्ठक में पूर्णांक डेटा प्रकारों की प्रदर्शन चौड़ाई को निर्दिष्ट करने के लिए एक एक्सटेंशन का समर्थन करता है। उदाहरण के लिए, INT (4) एक INT को चार अंकों की प्रदर्शन चौड़ाई के साथ निर्दिष्ट करता है।
इसके लिए एक अच्छा स्पष्टीकरण यहां
पाया जा सकता है
संक्षेप में: संख्या एन में इंट (एन) अक्सर कॉलम के लिए अनुमत अधिकतम आकार से भ्रमित होता है, जैसा कि यह वार्चर (एन) के मामले में होता है।
लेकिन यह पूर्णांक डेटा प्रकारों के मामले में नहीं है- के कोष्ठक में संख्या N कॉलम के लिए अधिकतम आकार नहीं है, लेकिन MySQL को बताने के लिए बस एक पैरामीटर है कि तालिका के डेटा को MySQL के माध्यम से देखे जाने पर स्तंभ को प्रदर्शित करने के लिए चौड़ाई क्या है। कंसोल (जब आप ZEROFILL विशेषता का उपयोग कर रहे हों)।
कोष्ठक में संख्या MySQL बताएगी कि आने वाले पूर्णांकों को पैड करने के लिए कितने शून्य हैं। उदाहरण के लिए: यदि आप ZEROFILL का उपयोग किसी ऐसे कॉलम पर कर रहे हैं जो INT (5) पर सेट है और नंबर 78 डाला गया है, तो MySQL उस मान को शून्य तक पैड कर देगा, जब तक संख्या कोष्ठक में संख्या को संतुष्ट नहीं करती। यानी 78 00078 बन जाएगा और 127 00127 बन जाएगा। इसे योग करने के लिए: ब्रैकेट में संख्या प्रदर्शन उद्देश्यों के लिए उपयोग की जाती है।
एक तरह से, जब तक आप ZEROFILL विशेषता का उपयोग नहीं कर रहे हैं, कोष्ठक में संख्या बेकार है।
इसलिए इंट के लिए आकार समान रहेगा अर्थात -2147483648 से 2147483648 पर हस्ताक्षर किए और अहस्ताक्षरित के लिए 0 से 4294967295 (~ 2.15 बिलियन और 4.2 बिलियन, जो एक कारण है कि डेवलपर्स कोष्ठक में नंबर एन के पीछे की कहानी से अनजान रहते हैं, क्योंकि यह शायद ही प्रभावित करता है डेटाबेस जब तक कि इसमें 2 बिलियन से अधिक पंक्तियाँ न हों) और बाइट के संदर्भ में यह 4 बाइट्स होगा ।
पूर्णांक प्रकार के आकार / सीमा के बारे में अधिक जानकारी के लिए, MySQL मैनुअल का संदर्भ लें
हालांकि इस उत्तर को देखने की संभावना नहीं है, मुझे लगता है कि निम्नलिखित स्पष्टीकरण बनाने लायक है:
डीआईटी की एक बिट
प्रदर्शन की चौड़ाई का , जाहिर है, शून्य शून्य संख्या में प्रदर्शित करने के लिए कितने शून्य के बारे में कुछ मेटाडेटा प्रदान करने का इरादा है।
यह वास्तव में क्वेरी से लौटाए गए नंबर की लंबाई को सीमित नहीं करता है यदि यह संख्या निर्दिष्ट प्रदर्शन चौड़ाई से ऊपर जाती है।
यह जानने के लिए कि MySQL में एक पूर्णांक डेटा प्रकार के लिए वास्तव में किस लंबाई / चौड़ाई की अनुमति है, सूची और लिंक देखें: ( प्रकार: टिनटाइन, स्माल्ट, मेडिटेंट, आईएनटी, बिग );
इसलिए ऊपर कहा गया है, आप मानक चौड़ाई से परिणामों पर कोई प्रभाव नहीं होने की उम्मीद कर सकते हैं, जब तक कि कॉलम को शून्य कॉलम के रूप में निर्दिष्ट नहीं किया जाता है
या
मामले में डेटा को एक आवेदन में खींचा जा रहा है और वह आवेदन एकत्र कर रहा है कुछ अन्य प्रकार के पेडिंग के लिए उपयोग करने के लिए चौड़ाई प्रदर्शित करें।
प्राथमिक संदर्भ: https://blogs.oracle.com/jsmyth/entry/what_does_the_11_mean
n
, इसलिए ... हाँ, यह बकवास है। यह केवल शून्य के साथ कुछ भी करता है।
MySQL पूर्णांक में int(11)
में आकार 4 बाइट्स होता है जो 32 बिट के बराबर होता है।
हस्ताक्षरित मूल्य है: -2^(32-1) to 0 to 2^(32-1)-1
= -2147483648 to 0 to 2147483647
अहस्ताक्षरित मान है: 0 to 2^32-1
= 0 to 4294967295
इस पुस्तक के अनुसार :
MySQL आपको पूर्णांक प्रकारों के लिए एक "चौड़ाई" निर्दिष्ट करने देता है, जैसे INT (11)। यह अधिकांश अनुप्रयोगों के लिए अर्थहीन है: यह मूल्यों की कानूनी सीमा को प्रतिबंधित नहीं करता है, लेकिन केवल वर्णों की संख्या निर्दिष्ट करता है MySQL के इंटरैक्टिव टूल प्रदर्शन उद्देश्यों के लिए आरक्षित होंगे। भंडारण और कम्प्यूटेशनल उद्देश्यों के लिए, INT (1) INT (20) के समान है।