MySQL में smallint, smallint, mediumint, bigint और int में क्या अंतर है?
किन मामलों में इनका उपयोग किया जाना चाहिए?
MySQL में smallint, smallint, mediumint, bigint और int में क्या अंतर है?
किन मामलों में इनका उपयोग किया जाना चाहिए?
जवाबों:
वे अलग-अलग मात्रा में जगह लेते हैं और उनके पास स्वीकार्य मूल्यों की अलग-अलग सीमाएं होती हैं।
यहाँ SQL सर्वर के लिए मानों के आकार और सीमाएँ हैं , अन्य RDBMSes के समान दस्तावेज हैं:
NUMBER
datatype वास्तव में है)पता चलता है कि वे सभी एक ही विनिर्देशन का उपयोग करते हैं (नीचे दिए गए कुछ मामूली अपवादों के साथ), लेकिन उन प्रकारों के विभिन्न संयोजनों का समर्थन करते हैं (ओरेकल को शामिल नहीं किया गया क्योंकि इसमें सिर्फ एक NUMBER
डेटा टाइप है , उपरोक्त लिंक देखें):
| SQL Server MySQL Postgres DB2
---------------------------------------------------
tinyint | X X
smallint | X X X X
mediumint | X
int/integer | X X X X
bigint | X X X X
और वे समान मूल्य श्रेणियों (नीचे एक अपवाद के साथ) का समर्थन करते हैं और सभी के लिए समान भंडारण आवश्यकताएं हैं:
| Bytes Range (signed) Range (unsigned)
--------------------------------------------------------------------------------------------
tinyint | 1 byte -128 to 127 0 to 255
smallint | 2 bytes -32768 to 32767 0 to 65535
mediumint | 3 bytes -8388608 to 8388607 0 to 16777215
int/integer | 4 bytes -2147483648 to 2147483647 0 to 4294967295
bigint | 8 bytes -9223372036854775808 to 9223372036854775807 0 to 18446744073709551615
"अहस्ताक्षरित" प्रकार केवल MySQL में उपलब्ध हैं, और बाकी सिर्फ हस्ताक्षरित सीमाओं का उपयोग करते हैं, एक उल्लेखनीय अपवाद के साथ: tinyint
SQL सर्वर में अहस्ताक्षरित है और इसका मान 0 से 255 तक है
भंडारण का आकार आवश्यक है और संख्या कितनी बड़ी हो सकती है
SQL सर्वर पर
टिनीट 1 बाइट, 0 से 255
छोटे 2 बाइट्स, -2 ^ 15 (-32,768) से 2 ^ 15-1 (32,767)
int 4 बाइट्स, -2 ^ 31 (-2,147,483,648) से 2 ^ 31-1 (2,147,483,647)
बिगिन्ट 8 बाइट्स, -2 ^ 63 (-9,223,372,036,854,775,808) से 2 ^ 63-1 (9,223,372,036,854,775,807)
आप सभी 4 में नंबर 1 स्टोर कर सकते हैं, लेकिन एक बिगिन 8 बाइट्स का उपयोग करेगा, जबकि एक टिंटिंट 1 बाइट का उपयोग करेगा
वे MySQL डेटा प्रकार प्रतीत होते हैं।
प्रलेखन के अनुसार वे लेते हैं:
और, स्वाभाविक रूप से, बढ़ती संख्या की बड़ी रेंज स्वीकार करते हैं।
जब यह इन डेटाटाइप्स का वास्तविक विश्व उपयोग करने के लिए हो जाता है, तो यह बहुत महत्वपूर्ण है कि आप यह समझें कि कुछ पूर्णांक प्रकारों का उपयोग करना केवल एक ओवरकिल या इस्तेमाल किया जा सकता है। उदाहरण के लिए, एक तालिका में कर्मचारी के लिए पूर्णांक डेटाटाइप का उपयोग करते हुए कहते हैं कि कर्मचारी एक ओवरकिल हो सकता है क्योंकि यह पूर्णांक मानों की सीमा ~ नकारात्मक 2 बिलियन से सकारात्मक 2 बिलियन या शून्य से लगभग 4 बिलियन (अहस्ताक्षरित) का समर्थन करता है। इसलिए, भले ही आप अमेरिका के सबसे बड़े नियोक्ता में से एक पर विचार करें, जैसे कि वॉलमार्ट के साथ लगभग 2.2 मिलियन कर्मचारी कर्मचारी के कॉलम के लिए पूर्णांक डेटाटाइप का उपयोग करना अनावश्यक होगा। ऐसे मामले में आप उदाहरण के लिए मध्यम (जो 0 से 16 मिलियन (अहस्ताक्षरित) का समर्थन करता है) का उपयोग करते हैं। कहा जाता है कि यदि आपकी सीमा असामान्य रूप से बड़ी होने की उम्मीद है तो आप बड़े पैमाने पर विचार कर सकते हैं जैसा कि आप डैनियल से देख सकते हैं '
अंतर प्रत्येक पूर्णांक को आवंटित की गई मेमोरी की मात्रा है, और वे कितनी बड़ी संख्या में स्टोर कर सकते हैं।
डेटा टाइप रेंज स्टोरेज
bigint -2^63 (-9,223,372,036,854,775,808) to 2^63-1 (9,223,372,036,854,775,807) 8 Bytes
int -2^31 (-2,147,483,648) to 2^31-1 (2,147,483,647) 4 Bytes
smallint -2^15 (-32,768) to 2^15-1 (32,767) 2 Bytes
tinyint 0 to 255 1 Byte
उदाहरण
निम्न उदाहरण बिगिन्ट, int, smallint, और smallint डेटा प्रकारों का उपयोग करके एक तालिका बनाता है। मान प्रत्येक कॉलम में डाले जाते हैं और SELECT स्टेटमेंट में वापस आ जाते हैं।
CREATE TABLE dbo.MyTable
(
MyBigIntColumn bigint
,MyIntColumn int
,MySmallIntColumn smallint
,MyTinyIntColumn tinyint
);
GO
INSERT INTO dbo.MyTable VALUES (9223372036854775807, 214483647,32767,255);
GO
SELECT MyBigIntColumn, MyIntColumn, MySmallIntColumn, MyTinyIntColumn
FROM dbo.MyTable;