0Pricing
SQL Academy · درس

الحساب والمعاملات

أجرِ عمليات الجمع والطرح والضرب والقسمة في SQL

الحساب والمعاملات درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.

إجراء العمليات الحسابية في SELECT

لا يقتصر SQL على جلب الصفوف؛ إذ يمكنكم حساب القيم مباشرةً داخل الاستعلام باستخدام المعاملات الحسابية.

في هذا الدرس ستضيفون وتطرحون وتضربون وتقسمون باستخدام الأعمدة والقيم الحرفية، وتمنحون النتائج أسماءً، وتفهمون كيفية تحديد PostgreSQL لنوع كل نتيجة.

تخيلوا وجود جدول order_items يحتوي على quantity وunit_price. يمكننا حساب إجمالي السطر من دون تعديل شفرة التطبيق.

SELECT quantity, unit_price, quantity * unit_price AS line_total
FROM order_items;

المعاملات الحسابية الخمسة

يدعم PostgreSQL المعاملات المعتادة:

  • + الجمع
  • - الطرح
  • * الضرب
  • / القسمة
  • % باقي القسمة

تعمل هذه المعاملات على الأعمدة الرقمية والقيم الحرفية كما في أي لغة برمجة. يوضح الاستعلام أدناه استخدام كل منها.

SELECT
  10 + 3  AS sum,
  10 - 3  AS difference,
  10 * 3  AS product,
  10 / 3  AS quotient,
  10 % 3  AS remainder;

أولوية المعاملات

يتبع SQL أولوية العمليات الحسابية المعتادة: إذ ترتبط * و/ و% بالحدود قبل + و-.

استخدموا الأقواس لتوضيح المقصود وتجاوز الترتيب الافتراضي. ينتج التعبيران أدناه نتيجتين مختلفتين تمامًا.

SELECT
  2 + 3 * 4        AS without_parens,  -- 14
  (2 + 3) * 4      AS with_parens;     -- 20

حساب السعر بعد الخصم

من المهام العملية الشائعة تطبيق خصم نسبي. اضربوا السعر في (1 - discount_rate).

تُخزَّن discount_rate هنا على شكل كسر (0.15 = 15%). وتضمن الأقواس تنفيذ الطرح قبل الضرب.

SELECT
  product_id,
  price,
  discount_rate,
  price * (1 - discount_rate) AS final_price
FROM products;

العمليات الحسابية بين الأعمدة

لا يلزم أن تكون المعاملات قيمًا حرفية؛ إذ يمكنكم الجمع بين عدة أعمدة في تعبير واحد.

نحسب أدناه صافي الربح لكل عملية بيع: الإيرادات ناقص التكلفة، بعد ضرب الناتج في الكمية المباعة.

SELECT
  sale_id,
  (sale_price - cost) * quantity AS profit
FROM sales;

تسمية النتائج باستخدام AS

تحصل الأعمدة المحسوبة على أسماء تُنشأ تلقائيًا مثل ?column? ما لم تمنحوها اسمًا مستعارًا. استخدموا دائمًا AS لمنحها أسماءً واضحة.

كما يتيح الاسم المستعار الإشارة إلى العمود بوضوح أكبر في أدواتكم وتقاريركم.

SELECT
  base_salary,
  base_salary * 0.10 AS bonus,
  base_salary + base_salary * 0.10 AS total_pay
FROM employees;

العمليات الحسابية في WHERE

يمكنكم استخدام العمليات الحسابية في جملة WHERE أيضًا، وليس في SELECT فقط.

يُجري هذا تصفية للطلبات التي يتجاوز إجماليها المحسوب 100. ملاحظة: قد يؤدي تطبيق العمليات الحسابية على عمود إلى منع استخدام الفهرس، لذا يُفضَّل استخدام أعمدة مباشرة في عوامل التصفية عندما يكون الأداء مهمًا.

SELECT order_id, quantity, unit_price
FROM order_items
WHERE quantity * unit_price > 100;

أنواع النتائج تتبع المدخلات

يستنتج PostgreSQL نوع النتيجة من المعاملات. فجمع عدد صحيح مع عدد صحيح يعطي عددًا صحيحًا؛ وإذا كان أحد الطرفين من النوع numeric أو float، فستكون النتيجة من النوع نفسه أيضًا.

تزداد أهمية ذلك في القسمة، التي سنتناولها لاحقًا. لاحظوا الآن كيف يؤدي خلط الأنواع إلى ترقية نوع النتيجة.

SELECT
  pg_typeof(4 + 2)        AS int_type,      -- integer
  pg_typeof(4 + 2.0)      AS numeric_type,  -- numeric
  pg_typeof(4 * 1.5);                        -- numeric

معامل باقي القسمة

يعيد % باقي القسمة الصحيحة. وهو مفيد في المنطق الدوري، مثل «كل صف رقم N»، أو للتحقق من كون القيم زوجية أو فردية.

نبحث أدناه عن معرّفات المنتجات الزوجية باستخدام % 2 = 0.

SELECT product_id, name
FROM products
WHERE product_id % 2 = 0;

تحديث القيم باستخدام العمليات الحسابية

لا تقتصر العمليات الحسابية على SELECT؛ إذ يمكنكم استخدامها في UPDATE لتعديل القيم المخزنة.

يرفع هذا سعر كل منتج في فئة معينة بنسبة 5%. ويُقيَّم التعبير الموجود على اليمين لكل صف.

UPDATE products
SET price = price * 1.05
WHERE category = 'electronics';

انتبهوا إلى NULL

تؤدي أي عملية حسابية تتضمن NULL إلى NULL، لأن النتيجة غير معروفة.

إذا كان من المحتمل أن تكون قيمة العمود مفقودة، فغلّفوها باستخدام COALESCE لتوفير قيمة افتراضية قبل إجراء العمليات الحسابية.

SELECT
  base + NULL                     AS is_null,      -- NULL
  base + COALESCE(bonus, 0)       AS safe_total
FROM payroll;

اختبار سريع

ما قيمة التعبير 2 + 6 / 2 في PostgreSQL؟

خلاصة

يمكنكم حساب القيم مباشرةً في SQL:

  • + - * / % هي المعاملات الأساسية
  • تتمتع * و/ و% بأولوية أعلى من + و-؛ استخدموا الأقواس للتوضيح
  • امنحوا الأعمدة المحسوبة أسماءً مستعارة باستخدام AS
  • تعمل العمليات الحسابية في SELECT وWHERE وUPDATE
  • يتبع نوع النتيجة المعاملات، وأي معامل يساوي NULL يجعل النتيجة NULL

سنتناول بعد ذلك تقريب هذه النتائج الرقمية واقتطاعها.

الأسئلة الشائعة

هل درس «الحساب والمعاملات» مجاني؟

نعم — نص درس «الحساب والمعاملات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.

ماذا ستتعلم في «الحساب والمعاملات»؟

أجرِ عمليات الجمع والطرح والضرب والقسمة في SQL تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟

لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «الحساب والمعاملات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟

نعم. كل درس في SQL Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الحساب والمعاملات
  2. التقريب والاقتطاع
  3. القسمة الصحيحة مقابل العشرية
  4. دوال رياضية مفيدة
← العودة إلى SQL Academy