اختبار: أثبت مهاراتك في SQL! هل أنت من أنصار SQL؟ أم تفضل noSQL؟
اختبر أساسيات استعلامات SQL
هل تسبب الاعتماد على الـ ORM في تراجع مستواك التقني؟ لا تقلق، هذا فخ يقع فيه الكثير من المطورين.
ابدأ التحدي الآن لتثبت تمكنك من أساسيات استعلامات SQL! 👇
أي من استعلامات SQL التالية يسترجع الصفوف التي يكون فيها الاسم “John” بشكل صحيح؟
في SQL، تُستخدم علامة يساوي واحدة (=) للتحقق من المساواة في جملة WHERE وليس == أو === اللذان يُعدان من معاملات JavaScript.
الصيغة الصحيحة هي SELECT * FROM users WHERE name = 'John';.
SELECT * FROM users WHERE name LIKE(John);
SELECT * FROM users WHERE name = 'John';
SELECT * FROM users WHERE name == "John";
SELECT * FROM users WHERE name === "John";
ماذا تفعل COUNT(column_name) في SQL؟
تقوم COUNT(column_name) بحساب عدد القيم التي ليست NULL في عمود محدد. لحساب جميع الصفوف، بما في ذلك قيم NULL، استخدم COUNT(*).
يمكنك أيضاً استخدام COALESCE لضمان تعيين قيمة افتراضية بدلاً من NULL. شيء مثل: COUNT(COALESCE(column_name, 0)).
تحسب جميع الصفوف بما في ذلك قيم NULL
تحسب فقط القيم التي ليست NULL في العمود
تحسب قيم NULL كقيمة فريدة واحدة
تتعامل مع كل قيمة NULL كقيمة فريدة، تماماً مثل NaN !== NaN
ماذا تفعل عملية LEFT JOIN في SQL؟
تُرجع عملية LEFT JOIN جميع الصفوف من الجدول الأيسر والصفوف المتطابقة من الجدول الأيمن، مع وضع قيمة NULL للصفوف غير المتطابقة في الجدول الأيمن.
يُرجع صفاً واحداً لكل صف متطابق، ويتجاهل الصفوف غير المتطابقة
يُرجع جميع الصفوف من الجدول الأيسر، بالإضافة إلى الصفوف المتطابقة من الجدول الأيمن
يُرجع جميع الصفوف المتطابقة وغير المتطابقة، حيث تشير قيم NULL إلى عدم وجود تطابق
يُرجع جميع الصفوف من الجدول الأيمن، مع أي صفوف متطابقة من الجدول الأيسر
ماذا يفعل الـ INNER JOIN في SQL؟
يقوم الـ INNER JOIN بإرجاع الصفوف التي يتطابق فيها شرط الربط بين الجدولين فقط. أما الصفوف التي لا تجد لها مقابلاً في الجدول الآخر، فلا يتم تضمينها في مجموعة النتائج.
إرجاع الصفوف غير المتطابقة من كلا الجدولين
إرجاع كافة الصفوف من كلا الجدولين، مع قيم NULL للصفوف غير المتطابقة
إرجاع الصفوف التي تحقق شرط الربط في كلا الجدولين
إرجاع الصفوف غير المتطابقة من الجدول الأيمن
ما هو الاستعلام الفرعي المرتبط (correlated subquery) في SQL؟
يشير الاستعلام الفرعي المرتبط إلى أعمدة من الاستعلام الخارجي، فتُفهم نتيجته منطقيًا بالنسبة لكل صف خارجي. قد يحول مخطط الاستعلام التنفيذ أو يحسنّه، لذلك لا يلزم تنفيذ الاستعلام الفرعي حرفيًا مرة مستقلة لكل صف.
استعلام فرعي يتم تشغيله مرة واحدة بشكل عام
استعلام فرعي يُستخدم فقط في عبارات JOIN
استعلام فرعي يعيد أعمدة متعددة فقط
استعلام فرعي يعتمد على قيم الصف الحالي في الاستعلام الخارجي
ما هو الغرض من عبارة WITH (تعبير الجدول الشائع - CTE) في SQL؟
تُستخدم عبارة WITH أو ما يعرف بتعبير الجدول الشائع (CTE)، لتعريف مجموعة نتائج مؤقتة يمكن الرجوع إليها داخل الاستعلام الرئيسي. في PostgreSQL، يمكن إلحاق WITH بعبارات مثل SELECT أو INSERT أو UPDATE أو DELETE أو MERGE.
يساعد هذا في تحسين قابلية القراءة والصيانة للاستعلامات المعقدة.
بناء الجملة هو:
مسموح بها فقط في عبارات DELETE
تُستخدم لدوال التجميع (aggregation functions)
تُستخدم لتعريف العروض (views) فقط
تعريف مجموعة نتائج مؤقتة للاستخدام ضمن عبارة SQL أكبر
ماذا يفعل معامل IS NULL في SQL؟
يتحقق IS NULL مما إذا كان العمود المحدد يحتوي على قيمة NULL. بينما يتحقق IS NOT NULL من العكس تماماً.
يتحقق مما إذا كانت القيمة NULL
يتحقق مما إذا كانت القيمة فارغة (empty)
يتحقق مما إذا كانت القيمة نصية (string)
يتحقق مما إذا كانت القيمة رقمية (numeric)
ماذا يفعل معامل IN في SQL؟
يتحقق IN من انتماء القيمة إلى قائمة القيم المحددة، ويمكن استخدامه بدل عدة شروط OR. لا يزيل الصفوف المكررة. قد يساعد فهرس B-tree على العمود في استعلام انتقائي، لكن فائدته تعتمد على البيانات والخطة؛ لا يُشترط أن يكون الفهرس فريدًا.
يعيد صفوفاً فريدة
يتطلب عموداً مفهرساً
ينطبق فقط على الأعمدة الرقمية
يعيد الصفوف التي تطابق القيم الموجودة في قائمة محددة
ماذا تفعل دالة COALESCE في SQL؟
تعيد دالة COALESCE أول قيمة ليست NULL في قائمة محددة، وهي مفيدة لاستبدال قيم NULL بقيم افتراضية عند مواجهتها.
على سبيل المثال، COALESCE(column_name, 0) ستعيد 0 إذا كانت قيمة column_name هي NULL.
تقوم بعدّ قيم NULL
تعيد آخر معامل (argument) ليس NULL
تعيد أول معامل (argument) ليس NULL
تقتصر على أعمدة IDENTITY
مشتقة أصلاً من Printer Coalation
ما هو الغرض من جملة GROUP BY في SQL؟
تقوم جملة GROUP BY بتجميع الصفوف التي تحتوي على نفس القيم في أعمدة محددة، مما يسمح بتطبيق دوال التجميع (aggregate functions) على كل مجموعة بشكل مستقل.
إخفاء التكرارات
يُستخدم فقط في عمليات الربط (joins)
فرز الصفوف بترتيب تصاعدي
تجميع الصفوف بناءً على العمود (أو الأعمدة) المحددة
يجب أن تكون الصيغة GROUP WITH/USING
ماذا يفعل الـ FULL OUTER JOIN في SQL؟
يقوم الـ FULL OUTER JOIN بإرجاع كافة الصفوف من كلا الجدولين، مع تعبئة الصفوف غير المتطابقة بقيم NULL للقيم المفقودة.
هذا مفيد لمقارنة جدولين والعثور على الاختلافات بينهما.
إرجاع الصفوف المتطابقة فقط
إرجاع الصفوف التي لا تحتوي على قيم NULL فقط
إرجاع الصفوف غير المتطابقة من الجدول الأيسر فقط
إرجاع الصفوف غير المتطابقة من الجدول الأيمن فقط
إرجاع كافة الصفوف من كلا الجدولين، مع وضع NULL للصفوف غير المتطابقة