DECIMAL ডেটা টাইপের পরিসর INTEGEER ডেটা টাইপ এবং BIGINT-এর চেয়ে বেশি। আমরা জানি যে BIGINT 18446744073709551615 সঞ্চয় করতে পারে যখন DECIMAL-এ আপনি DECIMAL(65,0) সঞ্চয় করতে পারেন যেখানে x 65 নাইনস(9) উপস্থাপন করে। DECIMAL সংখ্যাটিকে বাইটে সঞ্চয় করে এবং স্টোরেজ প্রয়োজনীয়তার সূত্র হল:DECIMAL(x,0) অর্থাৎ
StorageRequirementInBytes =(x/9) + অবশিষ্ট; কোথায় অবশিষ্ট =রাউন্ড_আপ((x%9) / 2 )
DECIMAL(65,0) সঞ্চয়স্থান নিম্নরূপ -
9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
আমরা উপরে কি আলোচনা করেছি তা বোঝার জন্য, আসুন একটি টেবিল তৈরি করি। একটি টেবিল তৈরি করার প্রশ্নটি নিম্নরূপ -
mysql> টেবিল তৈরি করুন DecimalDemo-> (-> UserId DECIMAL(65,0)-> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.62 সেকেন্ড)
এখন আপনি insert কমান্ড ব্যবহার করে টেবিলে কিছু রেকর্ড সন্নিবেশ করতে পারেন। প্রশ্নটি নিম্নরূপ -
MySQL> DecimalDemovalues মধ্যে সন্নিবেশ (99999999999999999999999999999999999999999999999999999999999999999); ক্যোয়ারী ঠিক আছে, 1 টি সারি আক্রান্ত (0.16 সেকেন্ড) মাইএসকিউএল> DecimalDemovalues মধ্যে সন্নিবেশ (99999999999999999999999999999999999999999999999999999999999999999.0); ক্যোয়ারী ঠিক আছে, 1 টি সারি আক্রান্ত (0.28 সেকেন্ড)
একটি নির্বাচন বিবৃতি ব্যবহার করে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ -
mysql> DecimalDemo থেকে *নির্বাচন করুন;
আউটপুট
<পূর্ব>+------------------------------------------------------------ ---------------------+| UserId |+------------------------------------------------------------ --------------------+| 999999999999999999999999999999999999999999999999999999999999999999999999999999 || 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999, -------------------- সেটে +2 সারি (0.00 সেকেন্ড)আপনি যদি টেবিল তৈরি করার সময় 66 দেওয়ার চেষ্টা করেন তবে আপনি নিম্নলিখিত ত্রুটিটি পাবেন -
mysql> টেবিল তৈরি করুন DecimalDemo1-> (-> UserId DECIMAL(66,0)-> );ERROR 1426 (42000):'UserId'-এর জন্য খুব বড় নির্ভুলতা 66 নির্দিষ্ট করা হয়েছে। সর্বোচ্চ 65।