0Pricing
SQL Academy · درس

ترتيب عمود واحد أو عدة أعمدة باستخدام ORDER BY

رتّب النتائج تصاعديًا أو تنازليًا، ورتّبها حسب عدة أعمدة، وتحكم في موضع قيم NULL باستخدام NULLS FIRST وNULLS LAST.

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

لماذا تحتاجون إلى ORDER BY

جدول SQL مجموعة غير مرتبة. من دون ORDER BY، قد تُرجع قاعدة البيانات الصفوف بأي ترتيب، وقد يتغير هذا الترتيب بين عمليات التشغيل. إذا كان الترتيب مهمًا في واجهة المستخدم أو التقرير، فرتّبوا النتائج صراحةً.

الفرز باستخدام عمود واحد

الفرز الافتراضي تصاعدي:

SELECT id, email FROM users ORDER BY created_at;       -- oldest first
SELECT id, email FROM users ORDER BY created_at ASC;
SELECT id, email FROM users ORDER BY created_at DESC;  -- newest first

الفرز باستخدام عدة أعمدة

أدرجوا الأعمدة حسب ترتيب الأولوية. ويُستخدم العمود الثاني لكسر حالات التعادل في العمود الأول:

SELECT first_name, last_name, age
FROM users
ORDER BY last_name ASC, first_name ASC, age DESC;

الفرز باستخدام تعبير

يمكنكم الفرز باستخدام أي تعبير:

SELECT email, full_name
FROM users
ORDER BY LENGTH(email) DESC, email ASC;

الفرز باستخدام اسم مستعار أو موضع

يمكنكم الإشارة إلى اسم مستعار في قائمة SELECT أو إلى موضعه الذي يبدأ من 1:

SELECT id, total * 0.9 AS discounted
FROM orders
ORDER BY discounted DESC;     -- by alias

SELECT id, total
FROM orders
ORDER BY 2 DESC;               -- by position (avoid in code — fragile)

NULLS FIRST / NULLS LAST

تحكّموا في موضع قيم NULL:

-- Default: NULLs LAST when ASC, FIRST when DESC
SELECT * FROM users ORDER BY last_login_at DESC NULLS LAST;
SELECT * FROM users ORDER BY last_login_at ASC  NULLS FIRST;

عمليات الفرز المستقرة وكسر التعادل

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

SELECT * FROM orders
ORDER BY created_at DESC, id DESC;

ORDER BY والفهارس

إذا وُجد فهرس على العمود أو الأعمدة المستخدمة في ORDER BY، يمكن لقاعدة البيانات قراءة الصفوف بالترتيب من دون خطوة فرز.

-- With index on created_at DESC, this can use the index directly:
SELECT * FROM events ORDER BY created_at DESC LIMIT 100;

استخدام CASE في ORDER BY

فرز مخصص باستخدام CASE:

-- Show priority orders first:
SELECT * FROM orders
ORDER BY
  CASE status
    WHEN 'urgent'   THEN 0
    WHEN 'normal'   THEN 1
    ELSE 2
  END,
  created_at DESC;

يُنفَّذ ORDER BY بعد WHERE

يعمل ORDER BY على نتيجة WHERE/GROUP BY/HAVING. تحدث التصفية أولًا، ثم الفرز.

لا تفرزوا الجداول الضخمة من دون LIMIT

يُعد فرز نتيجة تحتوي على مليار صف عملية مكلفة. إذا كنتم تحتاجون فقط إلى أعلى N صفوف، فأضيفوا LIMIT، إذ يمكن للمخطط التبديل إلى استراتيجية Top-N.

SELECT * FROM events ORDER BY created_at DESC LIMIT 50;

مراجعة

يجعل ORDER BY النتائج حتمية.

  • استخدموا ASC / DESC لكل عمود
  • استخدموا عدة أعمدة لكسر التعادل
  • استخدموا NULLS FIRST / LAST عند الحاجة
  • اربطوا عمليات الفرز الكبيرة دائمًا بـ LIMIT

تحقق سريع

ما اتجاه الفرز الافتراضي في SQL؟

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

هل درس «ترتيب عمود واحد أو عدة أعمدة باستخدام ORDER BY» مجاني؟

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

ماذا ستتعلم في «ترتيب عمود واحد أو عدة أعمدة باستخدام ORDER BY»؟

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

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

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

كم من الوقت يستغرق درس «ترتيب عمود واحد أو عدة أعمدة باستخدام ORDER BY»؟

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

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

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

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

  1. اختيار الأعمدة والتعبيرات
  2. مرشحات WHERE: عوامل المقارنة والمنطق
  3. ترتيب عمود واحد أو عدة أعمدة باستخدام ORDER BY
  4. أساسيات LIMIT وOFFSET وتقسيم الصفحات
← العودة إلى SQL Academy