DECIMAL डेटा प्रकार की सीमा INTEGER डेटा प्रकार और BIGINT से अधिक है। जैसा कि हम जानते हैं कि BIGINT 18446744073709551615 स्टोर कर सकता है जबकि DECIMAL में आप DECIMAL(65,0) स्टोर कर सकते हैं जहां x 65 नाइन (9) का प्रतिनिधित्व करता है। DECIMAL संख्या को बाइट्स में संग्रहीत करता है और संग्रहण आवश्यकता सूत्र है:DECIMAL(x,0) यानी
StorageRequirementInBytes =(x/9) + शेष; जहां शेष =राउंड_अप ((x%9)/2 )
DECIMAL(65,0) स्टोरेज इस प्रकार है -
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 तक पहलेयह समझने के लिए कि हमने ऊपर क्या चर्चा की, आइए एक तालिका बनाएं। तालिका बनाने की क्वेरी इस प्रकार है -
mysql> टेबल बनाएं DecimalDemo-> (-> UserId DECIMAL(65,0)->);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.62 सेकंड)अब आप इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डाल सकते हैं। क्वेरी इस प्रकार है -
mysql> DecimalDemovalues (999999999999999999999999999999999999999999999999999999999) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.16 सेकंड) mysql> DecimalDemovalues में डालें (999999999999999999999999999999999999999999999999999999999999.0); क्वेरी ठीक है, 1 पंक्ति प्रभावित हुई (0.28 सेकंड)चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें। क्वेरी इस प्रकार है -
mysql> DecimalDemo से *चुनें;आउटपुट
<पूर्व>+------------------------------------------ ---------------------+| उपयोगकर्ता आईडी |+-------------------------------------------------------- ------------------------+| 99999999999999999999999999999999999999999999999999999999999 || 9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999 ------------------------+2 पंक्तियाँ सेट में (0.00 सेकंड)यदि आप तालिका बनाते समय 66 देने का प्रयास करते हैं, तो आपको निम्न त्रुटि मिलेगी -
mysql> तालिका बनाएं DecimalDemo1-> (-> UserId DECIMAL(66,0)-> );ERROR 1426 (42000):'UserId' के लिए बहुत बड़ी परिशुद्धता 66 निर्दिष्ट है। अधिकतम 65 है।