شبكة تعلم مع ناو

هل INT(3) يمنع تخزين عدد من أربع خانات؟

قد يوحي التعريف INT(3) بأن العمود يقبل ثلاثة أرقام فقط، لكن هذا تفسير غير صحيح في MySQL. العدد بين القوسين يتعلق بعرض الإظهار التاريخي للأعداد الصحيحة، ولا يحدد عدد خانات القيمة المخزنة. يظل مجال العمود هو مجال INT المعتاد، ولذلك يمكنه قبول العدد 1234 رغم احتوائه على أربع خانات.

هذا يختلف عن معاني الأعداد داخل تعريفات أنواع أخرى، مثل الحد الأقصى للحروف في VARCHAR. لا ينبغي تعميم تفسير الأقواس بين الأنواع المختلفة. كما أن عرض الأعداد الصحيحة أصبح ميزة مهملة في إصدارات MySQL 8 الحديثة، لذلك يفضل كتابة INT مباشرة في التعريفات الجديدة. إذا كانت قاعدة العمل تتطلب عددًا لا يتجاوز ثلاث خانات، فإن نوع العمود وحده بهذا الشكل لا يطبق تلك القاعدة.

مثال

CREATE TABLE employees (
  badge_number INT(3)
);
INSERT INTO employees (badge_number) VALUES (1234);
SELECT badge_number FROM employees;

باختصار: يقبل INT(3) العدد 1234؛ فالعدد بين القوسين ليس حدًا لخانات القيمة.

هل تريد تعلّم SQL خطوة بخطوة مع تمارين عملية؟ تابع مسار SQL من الأساسيات للاحتراف.

اختبر نفسك

خمسة أسئلة سريعة، مع الإجابة والشرح بعد كل سؤال.