في هذا الدرس 6تصفّح المواضيع
تتطلب التقارير المالية وحسابات الضرائب والفواتير تقريب الأعداد العشرية إلى عدد محدد من الخانات باستخدام دالة ROUND(X, D):
- الصيغة المختصرة
ROUND(X): تقرب الرقم إلى أقرب عدد صحيح (وتكافئROUND(X, 0)). - الصيغة الدقيقة
ROUND(X, D): تقرب الرقم إلىDمن الخانات العشرية؛ ومع الأعداد العشرية الدقيقةDECIMALيطبق MySQL قاعدة التقريب الحسابي القياسي من النصف للأعلى (Round Half Away From Zero). - المعامل السالب
D < 0: تمرير عدد سالب مثلROUND(1248, -2)يقرب الأعداد الصحيحة على يسار الفاصلة العشرية إلى أقرب مئة (1200).
SELECT
product_id,
unit_price,
ROUND(unit_price * 1.15, 2) AS price_with_vat,
ROUND(unit_price, 0) AS nearest_whole,
ROUND(unit_price, -1) AS nearest_ten
FROM products;
على عكس دالة ROUND() التي تفحص الخانة التالية وتجبر الكسر للأعلى، تقوم دالة TRUNCATE(X, D) بقص الأرقام الزائدة مباشرة باتجاه الصفر دون أي تقريب حسابي:
- إلزامية المعاملين معاً: يجب دائماً تمرير الرقم
Xوعدد الخاناتD(فمثلاًTRUNCATE(99.999, 2)تعيد99.99، بينما تعيدROUND(99.999, 2)القيمة100.00). - عدم الخلط مع أمر
TRUNCATE TABLE: دالةTRUNCATE(X, D)هي دالة رياضية آمنة داخل الاستعلام ولا علاقة لها بأمر تفريغ الجداول.
SELECT
ROUND(99.999, 2) AS rounded_val,
TRUNCATE(99.999, 2) AS truncated_val,
TRUNCATE(1589.75, 0) AS whole_only,
TRUNCATE(1589.75, -2) AS hundreds_only;
عند حساب عدد صناديق الشحن اللازمة لطلبية، أو إجمالي صفحات الترقيم، أو عدد السنوات المكتملة، نحتاج إلى التقريب القسري باتجاه واحد نحو عدد صحيح باستخدام دالتي السقف والأرضية:
- دالة السقف
CEIL(X)(أوCEILING(X)): تعيد أصغر عدد صحيح أكبر من أو يساويX؛ فأي كسر موجب مهما صغر يُرفع للعدد الصحيح الأعلى (CEIL(4.01)تعيد5). - دالة الأرضية
FLOOR(X): تعيد أكبر عدد صحيح أصغر من أو يساويX؛ فتُهمل الكسور الموجبة نزولاً للعدد الصحيح الأدنى (FLOOR(4.99)تعيد4).
SELECT
total_items,
CEIL(total_items / 12.0) AS boxes_needed,
FLOOR(loyalty_points / 100) AS redeemable_vouchers
FROM shipments
WHERE total_items > 0;
يوفر محرك MySQL مجموعة متكاملة من الدوال الحسابية لحساب المقدار المطلق وباقي القسمة والأسس والجذور:
- دالة القيمة المطلقة
ABS(X): تزيل الإشارة السالبة وتعيد المسافة الموجبة عن الصفر (تحول-250إلى250)، بينما تعيد دالةSIGN(X)إشارة الرقم (-1أو0أو1). - دالة باقي القسمة
MOD(N, M): تعيد الباقي من قسمةNعلىM، وتُستخدم بكثرة لاختبار الأرقام الزوجية والفردية وتوزيع السجلات على مجموعات. - دالتا الأس والجذر
POW(X, Y)وSQRT(X): لحساب القوى الأسية والجذر التربيعي.
SELECT
ABS(-420.50) AS abs_amount,
SIGN(-420.50) AS num_sign,
MOD(105, 10) AS remainder_val,
POW(2, 10) AS kilobyte_bytes,
SQRT(144) AS root_val;
تولد دالة RAND() عدداً عشرياً عشوائياً يقع في النطاق 0 <= v < 1.0:
- توليد عدد صحيح عشوائي بين حدين
[min, max]: نستخدم المعادلة القياسيةFLOOR(min + RAND() * (max - min + 1)). - البذرة الثابتة القابلة للتكرار
RAND(N): عند تمرير عدد صحيح كبذرة (Seed) مثلRAND(42)، ينتج المحرك نفس التسلسل العشوائي في كل مرة، وهو أمر مثالي لبيانات الاختبار القابلة لإعادة الإنتاج.
SELECT
RAND(7) AS seeded_float,
FLOOR(1 + RAND() * 100) AS random_1_to_100,
FLOOR(100000 + RAND() * 900000) AS six_digit_code;
يوضح الجدول المرجعي التالي مقارنة شاملة بين الدوال الرقمية والرياضية في MySQL 8:
| الدالة الرقمية | السلوك الحسابي | مثال الاستدعاء | النتيجة المعادة |
|---|---|---|---|
ROUND(X, D) | التقريب الحسابي لعدد D من الخانات | ROUND(19.876, 2) | 19.88 |
TRUNCATE(X, D) | قص الكسر لعدد D دون أي تقريب | TRUNCATE(19.876, 2) | 19.87 |
CEIL(X) | التقريب للعدد الصحيح الأعلى | CEIL(4.05) | 5 |
FLOOR(X) | التقريب للعدد الصحيح الأدنى | FLOOR(4.95) | 4 |
ABS(X) / MOD(N,M) | القيمة المطلقة وباقي القسمة | MOD(17, 5) | 2 |
RAND() | كسر عشوائي بين 0 و 1 | FLOOR(1 + RAND()*6) | 1..6 |
ملخص الدرس
حصاد الدرسمراجعة مركّزة لأهم المفاهيم والقواعد الهندسية التي أتقنتها في هذا الدرس قبل التطبيق العملي
ماذا تعلّمت في هذا الدرس؟
أتقنت في هذا الدرس التقريب الحسابي بدالة ROUND(X, D)، وقص الكسور المباشر بدالة TRUNCATE(X, D)، والحدود الصحيحة عبر CEIL() وFLOOR()، ودوال القيمة المطلقة وباقي القسمة والأسس وتوليد الأرقام العشوائية بـ RAND().
الخطوة التالية والدرس القادم
انتقل الآن إلى الدرس السادس والثلاثين «دوال التاريخ والوقت وحساب الفروق الزمنية وتنسيقها في MySQL» لاحتراف العمليات الزمنية.
سجّل الدخول لحفظ تقدمك
تابع إنجاز المواضيع والمصطلحات والمهام، وكمّل من آخر خطوة على أي جهاز.
المصطلحات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 Math Functions الدوال الرياضية
- تعلّم الدوال الرقمية والرياضية والتقريب الحسابي في MySQL بأسلوب MySQL 8 الحديث مع أمثلة استعلامات SQL وتطبيقات تفاعلية.
- للمراجعة
- 02 Rounding Decimals with ROUND تقريب الأعداد بدالة ROUND
- المفهوم الهندسي وصياغة استعلام SQL القياسية لقسم تقريب الأعداد بدالة ROUND في MySQL 8.
- للمراجعة
- 03 Cutting Decimals with TRUNCATE قص الكسور بدالة TRUNCATE
- المفهوم الهندسي وصياغة استعلام SQL القياسية لقسم قص الكسور بدالة TRUNCATE في MySQL 8.
- للمراجعة
- 04 Ceiling and Floor Integer Bounds التقريب للأعلى CEIL وللأسفل
- المفهوم الهندسي وصياغة استعلام SQL القياسية لقسم التقريب للأعلى CEIL وللأسفل في MySQL 8.
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
الاختصارات4
راجع المعنى، اشرحه لنفسك، ثم علّم البطاقة كمفهومة.
- 01 VAT VAT
- Value Added Tax
- ضريبة القيمة المضافة وتُحسب على أسعار المنتجات وتُقرب إلى خانتين عشريتين بدالة ROUND(amount, 2).
- للمراجعة
- 02 IEEE IEEE
- Institute of Electrical and Electronics Engineers (IEEE 754)
- المعيار الهندسي لتمثيل الأعداد العشرية التقريبية FLOAT و DOUBLE في المعالجات.
- للمراجعة
- 03 PRNG PRNG
- Pseudo-Random Number Generator
- مولد الأرقام شبه العشوائية خلف دالة RAND() وينتج تسلسلاً قابلاً للتكرار عند تزويده ببذرة رقمية.
- للمراجعة
- 04 DDL DDL
- Data Definition Language
- فئة أوامر تعريف البيانات وتضم أمر TRUNCATE TABLE المختلف تماماً عن الدالة الحسابية TRUNCATE(X, D).
- للمراجعة
لا توجد بطاقات تطابق البحث والتصفية.
اقرأ البطاقات بحرية. سجّل الدخول لحفظ تقدم مراجعتك.
مهامك قبل الاختبار
خطوة صغيرة كل مرة. وإنجاز تقدر ترجع له.
-
نفّذ استعلامات SQL المشروحة في قسم تقريب الأعداد بدالة ROUND داخل قاعدة بيانات MySQL 8 المحلية وتأكد من مطابقة النتائج.
-
بدّل بين الحالات الثلاث في المحاكي التفاعلي ضمن قسم قص الكسور بدالة TRUNCATE وقارن مخرجات الاستعلام.
تأشير المهمة إقرار منك بإتمامها، وليس تصحيحًا آليًا للكود. يُحفظ تقدمك في حسابك.
اختبر فهمك.
ووصلها للإتقان.
كل سؤال خطوة لقدّام. اختار، اكتب كود، وشوف نتيجتك فورًا.
أكمل المهام، واجمع كل الإجابات الصحيحة. أقل من 100%؟ راجع وأعد المحاولة.
الأسئلة متاحة للاطلاع. سجّل الدخول للتفاعل وحفظ تقدمك.
لمحة عن التحدي8 أسئلة تنتظرك +
ما هي مخرجات الاستعلام SELECT ROUND(19.876, 2), TRUNCATE(19.876, 2); في MySQL؟
تقرب دالة ROUND القيمة إلى 19.88 بينما تقص TRUNCATE الأرقام بعد الخانة الثانية لتعيد 19.87.
في MySQL، المعامل الثاني D في الدالة الحسابية TRUNCATE(X, D) إلزامي ولا يمكن حذفه.
صواب؛ يجب دائماً تمرير الرقم وعدد الخانات العشرية في دالة TRUNCATE(X, D).
أي دالة رياضية في MySQL ترفع القيمة العشرية 4.05 دائماً إلى العدد الصحيح الأعلى 5؟
تعيد دالة CEIL() أصغر عدد صحيح أكبر من أو يساوي الرقم المدخل.
ما هي القيمة التي تعيدها الدالة FLOOR(9.99) في MySQL؟
تعيد دالة FLOOR() أكبر عدد صحيح أصغر من أو يساوي القيمة، فتكون النتيجة 9.
ما هي نتيجة الاستعلام SELECT ABS(-35), MOD(17, 5); في MySQL؟
تعيد ABS(-35) القيمة الموجبة 35، وباقي قسمة 17 على 5 في دالة MOD هو 2.
تمرير عدد صحيح ثابت كبذرة مثل RAND(42) يولد تسلسلاً عشوائياً قابلاً للتكرار بنفس القيم عند إعادة التشغيل.
صواب؛ تمرير بذرة ثابتة لدالة RAND(N) يضمن الحصول على نفس الأرقام العشوائية عند تكرار الاختبار.
ما النتيجة التي تعيدها الدالة ROUND(1460, -2) عندما يكون المعامل الثاني سالباً؟
يقرب المعامل السالب -2 الرقم الصحيح على يسار الفاصلة العشرية إلى أقرب مئة فتكون النتيجة 1500.
ما هما الدالتان الرياضيتان لحساب القوى الأسية والجذر التربيعي في MySQL؟ (اختر إجابتين)
تحسب دالة POW(X, Y) الأسس، وتحسب دالة SQRT(X) الجذر التربيعي.