عند تخزين سعر منتج، تكون دقة الأجزاء العشرية جزءًا من معنى البيانات. يمثل DECIMAL الأعداد العشرية تمثيلًا دقيقًا ضمن المجال وعدد الخانات المحددين، بينما يستخدم FLOAT تمثيلًا تقريبيًا. بعض الكسور العشرية البسيطة لا تملك تمثيلًا ثنائيًا منتهيًا، ولذلك قد تكون القيمة المخزنة باستخدام النوع التقريبي قريبة من المدخل دون أن تطابقه تمامًا.
لا يعني ذلك أن FLOAT معيب أو غير صالح للاستخدام، بل إن له استخدامات تقبل التقريب. أما الأسعار والمبالغ التي تتطلب دقة عشرية محددة فتستفيد عادة من DECIMAL. يجب أيضًا اختيار مجال يكفي لأكبر مبلغ متوقع، لأن الدقة لا تلغي حدود السعة. ولا يحفظ النوع كل عدد من الخانات تلقائيًا؛ إذ تبقى الخانات الكسرية مقيدة بتعريف العمود، وقد يحدث تقريب عند إدخال تفاصيل أكثر.
مثال
CREATE TABLE books (
price DECIMAL(10,2)
);
INSERT INTO books (price) VALUES (19.90);
باختصار: اختر DECIMAL عندما تكون الدقة العشرية للمبالغ مطلوبة، مع تحديد مجال وخانات مناسبين.
هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.