এটি সংরক্ষণ করার জন্য অগত্যা সর্বোত্তম উপায়টি কী তা আমি জানি না - তবে একটি ব্যবহার করার চেয়ে কমপক্ষে আরও ভাল বিকল্প রয়েছে varchar(39)(বা varchar(40)যদি এটির স্বাক্ষর করার প্রয়োজন হয়); পরিবর্তে একটি ব্যবহার decimal(39,0)। মাইএসকিএল ডক্স থেকে :
নির্দিষ্ট পয়েন্ট (সঠিক মান) প্রকার
ডেসিমাল এবং NUMERIC প্রকারগুলি সঠিক সংখ্যার ডেটা মানগুলিকে সঞ্চয় করে। সঠিক নির্ভুলতা সংরক্ষণ করা যখন গুরুত্বপূর্ণ তখন এই ধরণেরগুলি ব্যবহৃত হয়, উদাহরণস্বরূপ আর্থিক তথ্য সহ। মাইএসকিউএলে, NUMERIC ডেসিমাল হিসাবে প্রয়োগ করা হয়েছে, সুতরাং ডিসিমাল সম্পর্কে নিম্নলিখিত মন্তব্যগুলি NUMERIC এর জন্য সমানভাবে প্রযোজ্য।
মাইএসকিউএল 5.1 বাইনারি ফর্ম্যাটে ডেসিমাল মানগুলি সঞ্চয় করে। মাইএসকিউএল 5.0.3 এর আগে সেগুলি স্ট্রিং হিসাবে সংরক্ষণ করা হয়েছিল। বিভাগ 11.18, "যথার্থ গণিত" দেখুন।
একটি ডেসিমাল কলাম ঘোষণায়, নির্ভুলতা এবং স্কেল নির্দিষ্ট করা যেতে পারে (এবং সাধারণত ব্যবহৃত হয়); উদাহরণ স্বরূপ:
salary DECIMAL(5,2)
এই উদাহরণে, 5 হ'ল যথার্থতা এবং 2 স্কেল। যথাযথতা উল্লেখযোগ্য অঙ্কগুলির সংখ্যা উপস্থাপন করে যা মানগুলির জন্য সঞ্চিত থাকে এবং স্কেল দশমিক সংখ্যাটি অনুসরণ করে সংরক্ষণ করা যায় এমন সংখ্যাগুলির প্রতিনিধিত্ব করে।
স্ট্যান্ডার্ড এসকিউএল প্রয়োজন যে ডিসিমাল (5,2) পাঁচটি অঙ্ক এবং দুটি দশমিক সহ যে কোনও মান সংরক্ষণ করতে সক্ষম হবে, সুতরাং যে মানগুলি বেতন কলামে -999.99 থেকে 999.99 অবধি সঞ্চিত হতে পারে।
স্ট্যান্ডার্ড এসকিউএল-তে সিনট্যাক্স ডেসিমাল (এম) ডেসিমাল (এম, 0) এর সমান। একইভাবে সিনট্যাক্স ডিসিআইএমএল ডেসিমাল (এম, ০) এর সমতুল্য, যেখানে এম মাইএসকিউএল ডেসিমাল সিনট্যাক্সের এই দুটি রূপকে সমর্থন করে মাইএসকিউএল এর মান নির্ধারণের অনুমতি দেওয়া হয়। এম এর ডিফল্ট মান 10 হয়।
যদি স্কেল 0 হয় তবে DECIMAL মানগুলিতে কোনও দশমিক বিন্দু বা ভগ্নাংশ থাকে না।
ডিসেমিমালের জন্য সর্বাধিক সংখ্যার সংখ্যা 65, তবে প্রদত্ত ডিস্কিমাল কলামের জন্য প্রকৃত পরিসীমা প্রদত্ত কলামের যথার্থতা বা স্কেল দ্বারা সীমাবদ্ধ হতে পারে। যখন এই জাতীয় কলামটি নির্দিষ্ট স্কেল দ্বারা অনুমোদিত দশমিক পয়েন্ট অনুসরণ করে আরও বেশি সংখ্যার সাথে একটি মান নির্ধারিত হয় তখন মানটি সেই স্কেলে রূপান্তরিত হয়। (সুনির্দিষ্ট আচরণটি অপারেটিং সিস্টেম-নির্দিষ্ট, তবে সাধারণত প্রভাবটি অনুমোদিত সংখ্যার সংকোচন হয়))