ما الفرق بين الداتا تايب int و numeric () في sql؟

السلام عليكم ورحمة الله

حاليا أخذ كورس هندسة قواعد بيانات و لاحظت أن المدرس وضع numeric بدلا عن int في الTable فما الفروق بينهم وشكرا!

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

وعليكم السلام ورحمة الله وبركاته

INT (Integer)

  • INT تمثل نوع بيانات صحيح (integer)، وهو مخصص لتخزين الأعداد الصحيحة (أعداد بدون أجزاء عشرية).
  • يستهلك INT مساحة أقل في قاعدة البيانات مقارنة بأنواع البيانات العشرية.
  • عادةً ما يُستخدم INT عندما تكون القيم التي تريد تخزينها أعداداُ صحيحة بدون أي جزء عشري.

NUMERIC

  • NUMERIC هو نوع بيانات يستخدم لتخزين الأعداد العشرية (أعداد تحتوي على أجزاء عشرية).
  • يتيح NUMERIC لك تحديد دقة أكبر للأعداد العشرية مقارنة بـ INT. يمكنك تحديد عدد الأرقام الصحيحة وعدد الأرقام العشرية بدقة.
  • على سبيل المثال، إذا كنت بحاجة لتخزين قيم مثل 3.14 بدقة كاملة، يمكنك استخدام NUMERIC لذلك.

الاختلاف الرئيسي بين INT وNUMERIC هو نوع الأعداد التي يمكنهما تخزينها. بحيث INT مخصص للأعداد الصحيحة بينما NUMERIC مخصص للأعداد العشرية. تحتاج إلى اختيار النوع البياني الذي يتناسب مع نوع البيانات التي تنوي تخزينها في قاعدة البيانات الخاصة بك بناءً على متطلبات التطبيق والدقة المطلوبة.

طيب أخي الفرق بين decimal و numeric وشكرا مقدما!

لا يوجد فرق بين decimal و numeric في قواعد البيانات العلائقية، وهما اسمان لنفس نوع البيانات العددية، حيث يسمح لك هذان النوعان بتخزين الأعداد الصحيحة والأعداد العشرية.

ففي بعض قواعد البيانات، مثل MySQL و PostgreSQL، يكون decimal هو الاسم المفضل، بينما في قواعد بيانات أخرى، مثل Microsoft SQL Server، يكون numeric هو الاسم المفضل.

الفرق الوحيد بين decimal و numeric هو أن numeric هو الاسم الأحدث، وأصبح أكثر شيوعًا في السنوات الأخيرة.

هناك بعض الفروق البسيطة بينهما حيث أن

int (integer) هو النوع المعتاد للأرقام الصحيحة (أعداد صحيحة) مثل 1، 5، 15.

numeric هو نوع أعم يدعم أنواع البيانات العددية (numbers) بشكل عام. بما في ذلك:

  • الأرقام الصحيحة. 
  • الأعداد الحقيقية (real numbers) مثل 3.14159.
  • الأعداد العشرية (decimals) مثل 10.5. 

يسمح numeric بتخزين أنواع أكثر مرونة من البيانات الرقمية. فهو أقوى وأشمل من int.

لكن إذا كانت البيانات أرقامًا صحيحة فقط، فإن int أفضل لأنه أخص وأضيق، مما يوفر مساحة تخزين.

INT و NUMERIC هما نوعان من أنواع البيانات العددية في قواعد البيانات العلائقية، والفرق الرئيسي بينهما هو أن INT مخصص للأعداد الصحيحة، بينما NUMERIC مخصص للأعداد العشرية.

INT

  • هو نوع بيانات صغير نسبيًا يشغل مساحة 4 بايت.
  • يمكنه تخزين الأعداد الصحيحة من -2147483648 إلى 2147483647.
  • يستخدم بشكل شائع لتخزين أعداد صحيحة بسيطة مثل العدد التسلسلي للمنتج أو رقم الهاتف.

NUMERIC

  • نوع بيانات أكبر نسبيًا يمكنه تخزين الأعداد الصحيحة والأعداد العشرية.
  • يحدد المستخدم حجم ودقة NUMERIC، على سبيل المثال NUMERIC(10,2) يمكنه تخزين أعداد صحيحة من 1 إلى 9999999999.99.
  • يستخدم بشكل شائع لتخزين أعداد عشرية دقيقة مثل سعر المنتج أو الوزن.

متى نستخدم INT؟

  • عندما نريد تخزين عدد صحيح بسيط بدون جزء عشري.
  • عندما نريد توفير مساحة التخزين.
  • عندما لا نحتاج إلى دقة عالية.

متى نستخدم NUMERIC؟

  • عندما نريد تخزين عدد صحيح أو عدد عشري مع جزء عشري.
  • عندما نحتاج إلى دقة عالية.
  • عندما نريد تخزين أرقام كبيرة أو صغيرة.

مثال

لنفترض أننا نقوم بإنشاء جدول لمنتجات متجر إلكتروني ونريد تخزين السعر في هذا الجدول، والسعر هو رقم عشري، لذلك يجب علينا استخدام نوع بيانات NUMERIC.

CREATE TABLE products (
  id INT NOT NULL AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  price NUMERIC(10,2) NOT NULL,
  description TEXT,
  PRIMARY KEY (id)
);


هنا نستخدم NUMERIC(10,2) لتخزين السعر ويسمح لنا هذا بتحديد أن السعر يجب أن يكون رقمًا عشريًا مع 10 أرقام إلى اليسار من الفاصلة العشرية و 2 رقمًا إلى اليمين منها.

أي يجب عليك اختيار نوع البيانات المناسب بناءًا على متطلبات التطبيق والدقة المطلوبة.