انتقل إلى محتوى الدرس
الدرس 08
دورة MySQL

أنواع البيانات الرقمية الصحيحة والعشرية في MySQLMySQL Numeric Data Types

تعلّم أنواع البيانات الرقمية الصحيحة والعشرية في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
أقسام الدرس
6
الأمثلة
5
اللغة
العربية
تاريخ النشر
غير محدد
المشاهدات
8
محتوى الدرس
في هذا الدرس 6تصفّح المواضيع

توفّر MySQL 8 خمس فئات للأعداد الصحيحة مصممة للموازنة بين استهلاك القرص والمدى الرقمي: TINYINT بحجم 1 بايت، وSMALLINT بحجم 2 بايت، وMEDIUMINT بحجم 3 بايت، وINT بحجم 4 بايت، وBIGINT بحجم 8 بايت. يساعد اختيار أصغر نوع يغطي مدى بياناتك الفعلي على تقليص استهلاك ذاكرة التخزين المؤقت في محرك InnoDB وتسريع قراءة الفهارس.

مخطط الأنواع الرقمية في MySQL 8: الأعداد الصحيحة والعشرية الدقيقة والعائمة
SQL
-- Inspect standard maximum signed values per integer class
SELECT
  127 AS max_tinyint_1b,
  32767 AS max_smallint_2b,
  8388607 AS max_mediumint_3b,
  2147483647 AS max_int_4b;

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

SQL
-- Compare SIGNED vs UNSIGNED positive boundaries
SELECT
  CAST(-128 AS SIGNED) AS min_signed_tiny,
  CAST(255 AS UNSIGNED) AS max_unsigned_tiny,
  CAST(4294967295 AS UNSIGNED) AS max_unsigned_int;

تتطلب السجلات المحاسبية وأسعار المنتجات وحسابات الضرائب دقة عشرية تامة بالأساس 10. يخزّن النوع DECIMAL(M, D) ومرادفه القياسي NUMERIC(M, D) إجمالي M من الخانات الرقمية (بحد أقصى 65 خانة) منها D خانات يمين الفاصلة العشرية (بحد أقصى 30 خانة) دون أي تشوه ناتج عن التقريب الثنائي.

SQL
-- Perform exact base-10 monetary calculation with DECIMAL
SELECT
  CAST(149.95 AS DECIMAL(10, 2)) AS unit_price,
  CAST(149.95 * 3 AS DECIMAL(10, 2)) AS subtotal,
  CAST(149.95 * 3 * 0.15 AS DECIMAL(10, 2)) AS vat_amount;

للقياسات العلمية والإحداثيات الجغرافية والمعدلات الإحصائية ذات النطاقات الواسعة جداً، توفّر MySQL نوع FLOAT أحادي الدقة بحجم 4 بايت (نحو 7 خانات معنوية) ونوع DOUBLE مزدوج الدقة بحجم 8 بايت (نحو 15 إلى 17 خانة معنوية) وفق معيار IEEE 754 الثنائي في المعالج.

SQL
-- Compare floating-point division and explicit rounding
SELECT
  10.0 / 3.0 AS decimal_division,
  ROUND(3.141592653589793, 4) AS rounded_pi,
  TRUNCATE(98.7654, 2) AS truncated_metric;

تطبّق MySQL النوعين BOOL وBOOLEAN كمرادفات مباشرة لنوع TINYINT(1)، حيث تُمثّل القيمة TRUE بالرقم 1 والقيمة FALSE بالرقم 0. أما لتخزين أقنعة البتات ورايات الحالة من 1 إلى 64 بت، فيوفر النوع BIT(M) تخزيناً ثنائياً خاماً يُكتب بالصيغة b'...' أو 0b....

SQL
-- Evaluate BOOLEAN constants and binary BIT literals
SELECT
  TRUE AS bool_true,
  FALSE AS bool_false,
  b'1010' + 0 AS bit_mask_decimal,
  BIN(b'1010' + 0) AS bit_mask_binary;
نوع البياناتحجم التخزينالنطاق بإشارة / الدقةالنطاق الموجب UNSIGNEDحالة الاستخدام الهندسي المثلى
TINYINT1 بايتمن -128 إلى 127من 0 إلى 255رموز الحالة، القيم المنطقية، والعدادات الصغيرة
SMALLINT2 بايتمن -32,768 إلى 32,767من 0 إلى 65,535أرقام المنافذ وترتيب التصنيفات الفرعية
MEDIUMINT3 بايتمن -8,388,608 إلى 8,388,607من 0 إلى 16,777,215المعرّفات المتوسطة والجداول الإقليمية
INT4 بايتمن -2,147,483,648 إلى 2,147,483,647من 0 إلى 4,294,967,295معرّفات السجلات القياسية وعدادات التطبيقات
BIGINT8 بايتمن -9.22 × 1018 إلى 9.22 × 1018من 0 إلى 1.84 × 1019سجلات الأحداث الضخمة والمعرّفات العالمية
DECIMAL(M,D)متغير (4 بايت لكل 9 خانات)دقيق تماماً حتى 65 خانة (D ≤ 30)أُهمل في MySQL 8.0.17+الأسعار، الفواتير، المحافظ المالية، والضرائب
FLOAT / DOUBLE4 بايت / 8 بايتنحو 7 خانات / 15–17 خانة (IEEE 754)أُهمل في MySQL 8.0.17+القياسات العلمية والإحداثيات الجغرافية

ملخص الدرس: استعرضنا في هذا الدرس هرمية الأنواع الرقمية في MySQL 8، وقارنّا فئات الأعداد الصحيحة من 1 بايت حتى 8 بايت، والفرق بين النطاقات السالبة والموجبة UNSIGNED، والأعداد العشرية الدقيقة DECIMAL للحسابات المالية، مقابل الأعداد العائمة التقريبية والقيم المنطقية.
الخطوة التالية والدرس القادم: في الدرس القادم سننتقل إلى دراسة أنواع البيانات النصية والثنائية والتعداد في MySQL، بما يشمل CHAR وVARCHAR وTEXT وBLOB وENUM وSET وترميز utf8mb4.

خلاصة المعرفة ومحطة الانتقال

ملخص الدرس

حصاد الدرس

مراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي

ماذا تعلّمت في هذا الدرس؟

استعرضنا في هذا الدرس هرمية الأنواع الرقمية في MySQL 8، وقارنّا فئات الأعداد الصحيحة من 1 بايت حتى 8 بايت، والفرق بين النطاقات السالبة والموجبة UNSIGNED، والأعداد العشرية الدقيقة DECIMAL للحسابات المالية، مقابل الأعداد العائمة التقريبية والقيم المنطقية. الخطوة التالية: في الدرس القادم سننتقل إلى دراسة أنواع البيانات النصية والثنائية والتعداد في MySQL، بما يشمل CHAR وVARCHAR وTEXT وBLOB وENUM وSET وترميز utf8mb4.

مشاركة

هل كان هذا الدرس مفيدًا؟

جارٍ تحميل الآراء…

ابنِ لغتك البرمجية

المصطلحات4

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 4 مفهومةأول بطاقة، أول خطوة
01 Numeric Types الأنواع الرقمية
تعلّم أنواع البيانات الرقمية الصحيحة والعشرية في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
للمراجعة
02 Integer Storage Classes فئات الأعداد الصحيحة وتخزينها
المفهوم الهندسي الأساسي لقسم فئات الأعداد الصحيحة وتخزينها في قواعد بيانات MySQL 8 الحديثة.
للمراجعة
03 Signed and Unsigned Ranges النطاقات السالبة والموجبة للأعداد
الصياغة القياسية وقواعد التنفيذ العملي لقسم النطاقات السالبة والموجبة للأعداد.
للمراجعة
04 Exact Decimal Monetary Math الأعداد العشرية الدقيقة للماليات
آلية التخزين وأفضل ممارسات محرك InnoDB الخاصة بقسم الأعداد العشرية الدقيقة للماليات.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

حروف قليلة. معنى كامل.

الاختصارات2

راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.

0 / 2 مفهومةأول بطاقة، أول خطوة
01 IEEE 754 IEEE 754
IEEE Standard for Floating-Point Arithmetic
المعيار القياسي لتمثيل وحساب الأعداد العائمة الثنائية التقريبية في نوعي FLOAT وDOUBLE.
للمراجعة
02 BCD BCD
Binary-Coded Decimal Packing
تقنية الترميز العشري المضغوط التي يعتمدها محرك InnoDB لتخزين كل 9 خانات من نوع DECIMAL في 4 بايت بدقة تامة.
للمراجعة

اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.

من الفهم للتطبيق

مهامك قبل الاختبار

خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.

0/2مهام منجزة
  1. افتح عميل MySQL 8 المحلي ونفّذ استعلام SQL المشروح في قسم فئات الأعداد الصحيحة وتخزينها للتحقق من النتائج.

  2. بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم النطاقات السالبة والموجبة للأعداد وقارن مخرجات MySQL 8.

تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.

مساحة التحدي

اختبر فهمك.
ووصلها للإتقان.

كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.

4أسئلة 1أنواع تحديات 100%هدف الإتقان
تصحيح تلقائي. فرص بلا حدود.

أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.

الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.

لمحة عن التحدي4 أسئلة تنتظرك
01

كم عدد البايتات التي يشغلها نوع INT القياسي في ذاكرة وتخزين MySQL 8؟

اختر السعة التخزينية الدقيقة بالبايت لنوع INT القياسي في محرك InnoDB.

02

ما هي أقصى قيمة موجبة يمكن تخزينها في نوع TINYINT UNSIGNED؟

تذكّر كيف يؤدي إلغاء بت الإشارة السالبة إلى مضاعفة السقف الموجب في مساحة 1 بايت.

03

أي نوع بيانات في MySQL يجب اعتماده لتخزين أسعار المنتجات والأرصدة المحاسبية لتجنب أخطاء التقريب؟

اختر النوع الرقمي الذي يخزّن الكسور العشرية بالأساس 10 بدقة تامة.

04

ما هو النوع الفعلي الذي تستخدمه MySQL داخلياً عند التصريح بالنوع BOOLEAN؟

حدّد النوع الصحيح الذي يُعد BOOLEAN مرادفاً له في MySQL.