في هذا الدرس 6تصفّح المواضيع
توفّر MySQL 8 خمس فئات للأعداد الصحيحة مصممة للموازنة بين استهلاك القرص والمدى الرقمي: TINYINT بحجم 1 بايت، وSMALLINT بحجم 2 بايت، وMEDIUMINT بحجم 3 بايت، وINT بحجم 4 بايت، وBIGINT بحجم 8 بايت. يساعد اختيار أصغر نوع يغطي مدى بياناتك الفعلي على تقليص استهلاك ذاكرة التخزين المؤقت في محرك InnoDB وتسريع قراءة الفهارس.
-- 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 يستثمر بت الإشارة لمضاعفة السقف الموجب الأعلى ضمن نفس عدد البايتات تماماً.
-- 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 خانة) دون أي تشوه ناتج عن التقريب الثنائي.
-- 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 الثنائي في المعالج.
-- 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....
-- 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 | حالة الاستخدام الهندسي المثلى |
|---|---|---|---|---|
TINYINT | 1 بايت | من -128 إلى 127 | من 0 إلى 255 | رموز الحالة، القيم المنطقية، والعدادات الصغيرة |
SMALLINT | 2 بايت | من -32,768 إلى 32,767 | من 0 إلى 65,535 | أرقام المنافذ وترتيب التصنيفات الفرعية |
MEDIUMINT | 3 بايت | من -8,388,608 إلى 8,388,607 | من 0 إلى 16,777,215 | المعرّفات المتوسطة والجداول الإقليمية |
INT | 4 بايت | من -2,147,483,648 إلى 2,147,483,647 | من 0 إلى 4,294,967,295 | معرّفات السجلات القياسية وعدادات التطبيقات |
BIGINT | 8 بايت | من -9.22 × 1018 إلى 9.22 × 1018 | من 0 إلى 1.84 × 1019 | سجلات الأحداث الضخمة والمعرّفات العالمية |
DECIMAL(M,D) | متغير (4 بايت لكل 9 خانات) | دقيق تماماً حتى 65 خانة (D ≤ 30) | أُهمل في MySQL 8.0.17+ | الأسعار، الفواتير، المحافظ المالية، والضرائب |
FLOAT / DOUBLE | 4 بايت / 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
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 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
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 IEEE 754 IEEE 754
- IEEE Standard for Floating-Point Arithmetic
- المعيار القياسي لتمثيل وحساب الأعداد العائمة الثنائية التقريبية في نوعي FLOAT وDOUBLE.
- للمراجعة
- 02 BCD BCD
- Binary-Coded Decimal Packing
- تقنية الترميز العشري المضغوط التي يعتمدها محرك InnoDB لتخزين كل 9 خانات من نوع DECIMAL في 4 بايت بدقة تامة.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
افتح عميل MySQL 8 المحلي ونفّذ استعلام SQL المشروح في قسم فئات الأعداد الصحيحة وتخزينها للتحقق من النتائج.
-
بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم النطاقات السالبة والموجبة للأعداد وقارن مخرجات MySQL 8.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي4 أسئلة تنتظرك +
كم عدد البايتات التي يشغلها نوع INT القياسي في ذاكرة وتخزين MySQL 8؟
اختر السعة التخزينية الدقيقة بالبايت لنوع INT القياسي في محرك InnoDB.
ما هي أقصى قيمة موجبة يمكن تخزينها في نوع TINYINT UNSIGNED؟
تذكّر كيف يؤدي إلغاء بت الإشارة السالبة إلى مضاعفة السقف الموجب في مساحة 1 بايت.
أي نوع بيانات في MySQL يجب اعتماده لتخزين أسعار المنتجات والأرصدة المحاسبية لتجنب أخطاء التقريب؟
اختر النوع الرقمي الذي يخزّن الكسور العشرية بالأساس 10 بدقة تامة.
ما هو النوع الفعلي الذي تستخدمه MySQL داخلياً عند التصريح بالنوع BOOLEAN؟
حدّد النوع الصحيح الذي يُعد BOOLEAN مرادفاً له في MySQL.