আমি মাইএসকিউএল এর ডেসিমাল সম্পর্কে খুব একটা উপলব্ধি পেতে পারি না। আমার সারিটি 00.0001 থেকে 99.9999 পর্যন্ত যেকোন জায়গায় থাকতে সক্ষম হতে হবে। আমি এটির মতো কাজ করার জন্য এটি কীভাবে গঠন করব?
আমি মাইএসকিউএল এর ডেসিমাল সম্পর্কে খুব একটা উপলব্ধি পেতে পারি না। আমার সারিটি 00.0001 থেকে 99.9999 পর্যন্ত যেকোন জায়গায় থাকতে সক্ষম হতে হবে। আমি এটির মতো কাজ করার জন্য এটি কীভাবে গঠন করব?
উত্তর:
ডাবল কলামগুলি ডেসিমাল কলামগুলির মতো নয় এবং আপনি আর্থিক তথ্যের জন্য ডাবল কলামগুলি ব্যবহার করলে আপনি সমস্যায় পড়বেন ।
ডবল আসলে শুধু একটি ডবল স্পষ্টতা (64 বিট পরিবর্তে 32 বিট) এর সংস্করণ ভাসা । ভাসমান পয়েন্ট সংখ্যাগুলি হ'ল প্রকৃত সংখ্যার আনুমানিক উপস্থাপনা এবং সেগুলি সঠিক নয়। প্রকৃতপক্ষে, 0.01 এর মতো সাধারণ সংখ্যার ফ্লোট বা ডাবল প্রকারের মধ্যে সঠিক প্রতিনিধিত্ব নেই।
ডেসিমাল কলামগুলি হ'ল উপস্থাপনা, তবে তারা সম্ভাব্য সংখ্যার অনেক কম পরিসরের জন্য অনেক বেশি জায়গা নেয়। 0.0001 থেকে 99.9999 পর্যন্ত মানগুলি রাখতে সক্ষম কলাম তৈরি করতে আপনি যেমন অনুরোধ করেছেন নীচের বিবৃতিটি প্রয়োজন
CREATE TABLE your_table
(
your_column DECIMAL(6,4) NOT NULL
);
কলাম সংজ্ঞাটি ডেসিমাল (এম, ডি) ফর্ম্যাট অনুসরণ করে যেখানে এম সর্বাধিক সংখ্যার ( যথার্থতা ) এবং ডি দশমিক বিন্দুর ( স্কেল ) ডানদিকে সংখ্যার সংখ্যা ।
এর অর্থ হ'ল পূর্ববর্তী কমান্ডটি একটি কলাম তৈরি করে যা -99.9999 থেকে 99.9999 পর্যন্ত মান গ্রহণ করে। আপনি 0.0000 থেকে 99.9999 অবধি একটি অনির্দিষ্ট ডিসিসিমাল কলামও তৈরি করতে পারেন।
মাইএসকিউএল ডিসমিমাল সম্পর্কিত আরও তথ্যের জন্য অফিসিয়াল ডক্স সর্বদা একটি দুর্দান্ত সংস্থান।
মনে রাখবেন যে এই সমস্ত তথ্য মাইএসকিউএল 5.0.3 এবং এর বেশি সংস্করণের জন্য সত্য। আপনি যদি পূর্ববর্তী সংস্করণগুলি ব্যবহার করে থাকেন তবে আপনার সত্যিকারের আপগ্রেড করা উচিত।
DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]। এটি নেতিবাচক মানগুলির জন্য সীমার বাইরে ত্রুটি ফিরিয়ে দেবে। আপনি একইভাবে স্বাক্ষরযুক্ত ফ্লোট এবং ডাবল তৈরি করতে পারেন can ম্যানুয়াল: dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
যদিও উপরের উত্তরগুলি সঠিক বলে মনে হচ্ছে, এটি কীভাবে কাজ করে তার একটি ধারণা দেওয়ার জন্য কেবল একটি সহজ ব্যাখ্যা।
মনে করুন আপনার কলামটি সেট করা আছে DECIMAL(13,4)। এর অর্থ হ'ল কলামটিতে মোট 13 টি সংখ্যার আকার থাকবে যেখানে এর মধ্যে 4 টি যথার্থ প্রতিনিধিত্বের জন্য ব্যবহৃত হবে।
সুতরাং, সংক্ষেপে, সেই কলামটির জন্য আপনার সর্বাধিক মান হবে: 999999999.9999
মন্তব্যে সঠিক সমাধান রয়েছে তবে সেগুলিকে একটি একক উত্তরে সংক্ষিপ্ত করতে:
আপনাকে ডেসিমাল (6,4) ব্যবহার করতে হবে।
তারপরে আপনার দশমিক পয়েন্ট (স্কেল) এর পরে 2 এবং 4 আগে মোট 6 টি সংখ্যা থাকতে পারে। অনুযায়ী অন্তত এই ।
মাইএসকিউএল 5.x স্পেসিফিকেশন দশমিক ডাটাটাইপ জন্য: DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]। উপরের উত্তরটি এই বলে ভুল যে স্বাক্ষরযুক্ত দশমিক সম্ভব নয়।
6 টি সংখ্যা, যার মধ্যে 4 দশমিক হয় একটি মোট দৈর্ঘ্য সঙ্গে একটি ক্ষেত্র শুধুমাত্র স্বাক্ষরবিহীন দশমিক যার ফলে নির্ধারণ করতে, আপনি ব্যবহার হবে: DECIMAL (6,4) UNSIGNED।
আপনি একইভাবে স্বাক্ষরযুক্ত (যেমন নেতিবাচক নয়) ফ্লোট এবং ডাবল ডেটাটাইপ তৈরি করতে পারেন।