مع استمرار نمو الطلب على المتخصصين المهرة في مجال البيانات، تظل لغة SQL أداة مهمة ومستخدمة على نطاق واسع لإدارة قواعد البيانات العلائقية ومعالجتها. الشكل الكامل لـ SQL هو لغة الاستعلام المهيكلة. في عالم التكنولوجيا سريع الوتيرة، يمكن أن تكون أسئلة مقابلات SQL صعبة وتنافسية في نفس الوقت. يبحث أصحاب العمل عن المرشحين الذين يمكنهم إظهار الكفاءة في مفاهيم SQL وتصميم قواعد البيانات وتحسين الاستعلام ومعالجة البيانات. يعد فهم المجموعة المتنوعة من أسئلة مقابلات SQL وإجاباتها التي يمكن أن تظهر أثناء المقابلات أمرًا ضروريًا للنجاح.
سواءً كنت خبيرًا متمرسًا في SQL أو خبيرًا في نظام إدارة قواعد البيانات (DBMS) تتطلع إلى صقل معرفتك أو باحثًا عن عمل تستعد لمقابلات SQL Server أو SQL DBMS أو Oracle SQL، أو مقابلات استعلام SQL، ستغطي هذه المدونة مجموعة واسعة من أسئلة مقابلات SQL المنسقة بعناية وإجاباتها التفصيلية. لقد قمنا بتصنيف أسئلة مقابلات SQL هذه لتشمل مجموعة واسعة من مواضيع SQL، بما في ذلك مفاهيم قواعد البيانات، والاستعلامات، والوصلات، والاستعلامات الفرعية، والفهارس، والمعاملات، وغيرها. يتم شرح كل سؤال من أسئلة مقابلات SQL بوضوح، مما يتيح لك فهم المفاهيم الأساسية بفعالية.
أفضل 60 سؤالاً وإجابة لمقابلة SQL
1. ما هو SQL؟
الإجابة: SQL هي لغة استعلام منظمة وهي لغة قياسية تُستخدم لإدارة قواعد البيانات العلائقية ومعالجتها. وهي تمكن المستخدمين من التفاعل مع قاعدة البيانات من خلال تنفيذ مهام مثل الاستعلام عن البيانات وإدراج السجلات وتحديثها وحذفها.
2. ما هي الأنواع المختلفة لأوامر SQL؟
الإجابة: يمكن تصنيف أوامر SQL بشكل عام إلى أربعة أنواع:
3. ما هو الفرق بين INNER JOIN و OUTER JOIN؟
الإجابة: INNER JOIN ترجع فقط الصفوف المطابقة من كلا الجدولين بناءً على شرط الانضمام. من ناحية أخرى، تقوم الوصلة الخارجية (الوصلة اليسرى، الوصلة اليمنى، الوصلة اليمنى، الوصلة الكاملة) بإرجاع جميع الصفوف المتطابقة بالإضافة إلى أي صفوف غير متطابقة من أحد الجدولين أو كليهما.
4. شرح الفرق بين الجملتين WHERE و HAVING؟
الإجابة: تُستخدم جملة WHERE مع عبارات SELECT وUlCT وUlDATE وELETE وELETE لتصفية الصفوف بناءً على شروط محددة. ومع ذلك، تُستخدم عبارة HAVING مع عبارة GROUP BY لتصفية نتائج المجموعة بناءً على شروط محددة.
5. ما هو المفتاح الأساسي، ولماذا هو مهم؟
الإجابة: المفتاح الأساسي هو معرّف فريد لكل صف في الجدول. وهو يضمن إمكانية تحديد كل سجل بشكل فريد ويساعد في الحفاظ على تكامل البيانات. المفاتيح الأساسية ضرورية لأنها تفرض التفرد وتوفر الأساس للعلاقات بين الجداول.
أسئلة مقابلة SQL الأساسية
6. ما هي الفهارس في SQL، وكيف تعمل على تحسين الأداء؟
الإجابة: الفهارس هي كائنات قاعدة البيانات التي تسرع عملية استرجاع البيانات من خلال توفير وصول سريع إلى الصفوف بناءً على الأعمدة المفهرسة. عندما يتضمن الاستعلام أعمدة مفهرسة، يمكن لمحرك قاعدة البيانات استخدام الفهرس للعثور على البيانات المطلوبة بشكل أسرع، وبالتالي تحسين أداء الاستعلام.
7. ما هو الفرق بين UNION وUNION ALL؟
الإجابة: يتم استخدام كل من UNION وUNION ALL لدمج نتائج استعلامين أو أكثر من استعلامات SELECT. الفرق هو أن UNION يزيل الصفوف المكررة من مجموعة النتائج المدمجة، بينما UNION ALL يحتفظ بجميع الصفوف، بما في ذلك الصفوف المكررة.
8. ما هو الاستعلام الفرعي وكيف يتم استخدامه؟
الإجابة: الاستعلام الفرعي، والمعروف أيضًا باسم الاستعلام الداخلي أو الاستعلام المتداخل، هو استعلام داخل عبارة SQL أخرى. يتم استخدامه لاسترداد البيانات التي سيتم استخدامها كشرط أو مرشح للاستعلام الرئيسي. يتم وضع الاستعلامات الفرعية داخل أقواس ويمكن استخدامها مع عبارات SELECT أو UPDATE أو DELETE أو INSERT.
9. ما هو ACID في سياق معاملات قاعدة البيانات؟
الإجابة: ACID هو اختصار يرمز إلى الذرية والاتساق والعزل والمتانة. وهي مجموعة من الخصائص التي تضمن معالجة معاملات قاعدة البيانات بشكل موثوق وآمن. تضمن الذرية معاملة المعاملة كوحدة عمل واحدة غير قابلة للتجزئة. يضمن الاتساق بقاء قاعدة البيانات في حالة صالحة قبل المعاملة وبعدها. العزل يمنع التداخل بين المعاملات المتزامنة، وتضمن المتانة أن تكون التغييرات الملتزم بها دائمة وقابلة للاسترداد.
10. كيف تتعامل مع القيم الفارغة في SQL؟
الإجابة: تستخدم NULL لتمثيل البيانات المفقودة أو غير المعروفة في SQL. للتعامل مع القيم الفارغة، يمكنك استخدام دوال مثل IS NULL أو IS NOT NULL أو COALESCE أو NULLIF. بالإضافة إلى ذلك، يمكنك استخدام عبارة CASE لتوفير معالجة مخصصة للقيم الفارغة في الاستعلامات.
11. ما هو الفرق بين TRUNCATE وحذف في SQL؟
الإجابة: TRUNCATE هو أمر DDL يُستخدم لإزالة جميع الصفوف من الجدول، مما يؤدي إلى تحرير مساحة تخزين وعملية أسرع. لا يمكن استرجاعه ولا يؤدي إلى تشغيل أي مشغلات حذف صفوف فردية.
DELETE هو أمر DML يُستخدم لإزالة صفوف محددة من جدول. إنه أبطأ من TRUNCATE ويولد مشغلات حذف صفوف فردية إذا تم تعريفه. يمكن استرجاع DELETE ضمن معاملة.
12. شرح مفهوم التطبيع في قواعد البيانات؟
الإجابة: التسوية هي عملية تنظيم البيانات في قاعدة البيانات لتقليل التكرار وتحسين تكامل البيانات. وهي تتضمن تقسيم الجدول إلى جداول أصغر ذات صلة وإنشاء علاقات بينها. وتتحقق عملية التطبيع من خلال سلسلة من القواعد (النماذج العادية) التي تضمن تخزين البيانات بكفاءة وبدون أي شذوذ في البيانات.
13. ما هي الإجراءات المخزنة في SQL، وما هي فوائد استخدامها؟
الإجابة: الإجراءات المخزنة هي عبارة عن تعليمات SQL البرمجية SQL البرمجية المخزنة مسبقًا في قاعدة البيانات ويتم تنفيذها عند استدعائها. وتشمل فوائد استخدام الإجراءات المخزنة ما يلي:
14. شرح مفهوم حقن SQL وكيفية الوقاية منه؟
الإجابة: حقن SQL هو ثغرة أمنية حيث يتم إدراج رمز SQL خبيث في استعلام، مما يسمح بالوصول غير المصرح به أو التلاعب بقاعدة البيانات. لمنع حقن SQL، استخدم العبارات المعدة مسبقًا أو الاستعلامات ذات المعلمات التي تفصل كود SQL بأمان عن مدخلات المستخدم، مما يجعل من المستحيل على المهاجم تغيير بنية بيان SQL.
15. ما هي الدوال المجمعة في SQL؟ اذكر بعض الأمثلة
الإجابة: تقوم الدوال التجميعية بإجراء عمليات حسابية على مجموعة من الصفوف وإرجاع قيمة واحدة. ومن الأمثلة على ذلك:
16. كيف يمكنك تحسين استعلام SQL بطيء الأداء؟
الإجابة: لتحسين استعلام بطيء، يمكنك اتخاذ خطوات مختلفة، بما في ذلك:
17. شرح الفرق بين الفهرس المجمّع وغير المجمّع؟
الإجابة: يحدد الفهرس المجمّع الترتيب الفعلي للبيانات في الجدول ويحدد كيفية تخزين الصفوف على القرص. يمكن أن يحتوي كل جدول على فهرس مجمّع واحد فقط.
أما الفهرس غير المجمّع فهو عبارة عن بنية بيانات منفصلة تحتوي على قائمة مرتبة من القيم الرئيسية، مع مؤشر لصفوف البيانات الفعلية. يمكن أن يحتوي الجدول على عدة فهارس غير مجمعة.
18. ما هو الارتباط الذاتي في SQL؟ اذكر مثالاً
الإجابة: الارتباط الذاتي هو أسلوب يتم فيه ربط جدول مع نفسه، ومعاملته ككيانين منفصلين. وغالبًا ما تستخدم لاسترداد البيانات ذات الصلة من نفس الجدول. على سبيل المثال:
حدد e1.name, e2.ManagerName
من الموظفين e1
انضم إلى الموظفين e2 على e1.managerID = e2.employeeID;
19. شرح الفرق بين طريقة العرض والجدول في SQL؟
الإجابة: الجدول هو كيان مادي يخزن البيانات باستمرار في قاعدة البيانات.
أما العرض فهو جدول افتراضي لا يخزن البيانات ولكنه يستند إلى نتيجة استعلام SELECT. وهي توفر طريقة لتبسيط الاستعلامات المعقدة وتقييد الوصول إلى بيانات محددة.
20. ما هو الغرض من بند التجميع حسب في SQL، وكيف يعمل؟
الإجابة: يُستخدم بند التجميع حسب مع الدوال المجمعة لتجميع الصفوف بناءً على القيم الموجودة في عمود واحد أو أكثر. يسمح لك بإجراء عمليات حسابية على مجموعات من البيانات بدلاً من الصفوف الفردية. ستحتوي مجموعة النتائج على صف واحد لكل مجموعة، مع قيم مجمعة استنادًا إلى الأعمدة المحددة في بند التجميع حسب.
أسئلة مقابلة استعلام SQL
21. ما هو مفتاح أجنبي في SQL؟
الإجابة: المفتاح الخارجي هو عمود أو مجموعة من الأعمدة في جدول ينشئ رابطًا بين البيانات في جدولين. وهو يفرض التكامل المرجعي، مما يضمن تطابق القيم في عمود (أعمدة) المفتاح الخارجي مع قيم عمود (أعمدة) المفتاح الأساسي في الجدول المشار إليه.
22. اشرح الفرق بين المفتاح المرشح والمفتاح الأساسي؟
الإجابة: المفتاح المرشح هو عمود أو مجموعة من الأعمدة التي يمكن أن تحدد بشكل فريد كل صف في الجدول.
المفتاح الأساسي هو المفتاح المرشح المحدد الذي يتم اختياره لتحديد صفوف الجدول بشكل فريد. يمكن أن يحتوي الجدول على مفتاح أساسي واحد فقط، ولكن قد يحتوي على عدة مفاتيح مرشحة.
23. ما هو الاستعلام الفرعي القائم بذاته في SQL؟
الإجابة: الاستعلام الفرعي المستقل بذاته هو استعلام فرعي يمكن تشغيله بشكل مستقل ولا يعتمد على الاستعلام الخارجي للحصول على نتائجه. يمكن تنفيذه من تلقاء نفسه ويعيد مجموعة نتائج يمكن استخدامها بواسطة الاستعلام الخارجي.
24. اشرح الفرق بين عاملي “الاتحاد” و”الاتحاد الشامل”؟
الإجابة: يدمج UNION نتائج استعلامي SELECT أو أكثر في مجموعة نتائج واحدة، مع إزالة الصفوف المكررة.
يدمج UNION ALL أيضًا نتائج استعلامات SELECT في مجموعة نتائج واحدة ولكنه يحتفظ بجميع الصفوف، بما في ذلك الصفوف المكررة.
25. كيف يمكنك إيجاد أعلى/أدنى قيمة في عمود ما؟
الإجابة: يمكنك استخدام مزيج من عبارتي “ترتيب حسب” و”LIMIT (أو FETCH FIRST) للعثور على القيمة التاسعة الأعلى/الأقل قيمة. على سبيل المثال، للعثور على ثالث أعلى راتب:
حدد الراتب
من الموظفين
ترتيب حسب الراتب حسب الراتب DESC
الحد 1 إزاحة 2;
26. شرح الفرق بين المعاملة ونقطة حفظ؟
الإجابة: المعاملة هي عبارة عن تسلسل واحد أو أكثر من عبارات SQL التي يتم تنفيذها كوحدة عمل واحدة. يجب أن تكون إما مكتملة بالكامل أو يتم التراجع عنها بالكامل في حالة حدوث خطأ.
نقطة الحفظ هي علامة داخل المعاملة تسمح لك بتعيين نقطة يمكن التراجع عن المعاملة إليها لاحقًا دون التأثير على بقية المعاملة.
27. ما هي خصائص ACID للمعاملة؟
الإجابة: الذرية: تضمن معاملة المعاملة كوحدة عمل واحدة غير قابلة للتجزئة. يجب إما أن يتم تنفيذها بالكامل، أو يجب ألا يتم تطبيق أي من التغييرات التي تطرأ عليها.
الاتساق: يضمن أن تنقل المعاملة قاعدة البيانات من حالة متسقة إلى أخرى. يجب أن تتبع جميع تعديلات البيانات قواعد محددة.
العزل: يضمن أن تكون الحالة الوسيطة للمعاملة غير مرئية للمعاملات الأخرى حتى يتم تنفيذها.
المتانة: تضمن أنه بمجرد تنفيذ المعاملة، تكون تغييراتها دائمة وتنجو من أي أعطال لاحقة في النظام.
28. شرح مفهوم تكامل البيانات في قواعد البيانات؟
الإجابة: تشير سلامة البيانات إلى دقة واتساق وموثوقية البيانات المخزنة في قاعدة البيانات. ويتم الحفاظ عليها من خلال قيود مثل المفاتيح الأساسية والمفاتيح الخارجية وقيود التحقق التي تمنع إدخال بيانات غير صالحة في قاعدة البيانات.
29. كيف يمكنك تنفيذ الإدخال والتحديث الشرطي في عبارة SQL واحدة؟
الإجابة: يمكنك استخدام عبارة INSERT INSERT INSERT INSERT INTO… ON DUPLICATE KEYATE UPDATE (في MySQL) أو عبارة MERGE (في Oracle على سبيل المثال) لتنفيذ عمليات الإدخال والتحديث الشرطية في استعلام واحد. يسمح لك هذا بإدراج صف جديد أو تحديث صف موجود إذا تم العثور على مفتاح مكرر.
أنواع مختلفة من أسئلة مقابلات Sql للمتقدمين الجدد
30. شرح مفهوم تخزين البيانات في SQL؟
الإجابة: تخزين البيانات هو عملية جمع البيانات وتخزينها وإدارتها من مصادر مختلفة لدعم ذكاء الأعمال وأنشطة صنع القرار. وهي تتضمن استخراج البيانات من قواعد البيانات التشغيلية، وتحويلها إلى صيغة متسقة، وتحميلها إلى مستودع بيانات للمعالجة التحليلية وإعداد التقارير.
31. ما الفرق بين الاستعلام الفرعي المرتبط والاستعلام الفرعي العادي؟
الإجابة: الاستعلام الفرعي المرتبط هو استعلام فرعي يشير إلى عمود من الاستعلام الخارجي، مما يخلق تبعية بين الاستعلامين. يتم تنفيذه مرة واحدة لكل صف في الاستعلام الخارجي، مما يجعله أقل كفاءة من الاستعلام الفرعي العادي.
يمكن تنفيذ الاستعلام الفرعي العادي، المعروف أيضًا باسم الاستعلام الفرعي غير المرتبط، بشكل مستقل ولا يشير إلى أعمدة من الاستعلام الخارجي.
32. اشرح الغرض من بند تجميع المجموعات في SQL؟
الإجابة: يُستخدم بند تجميع المجموعات لتحديد مجموعات متعددة ضمن استعلام واحد، مما يسمح لك بتجميع البيانات على مستويات مختلفة. وهو يساعد على إنتاج مجموعة نتائج مع المجاميع الفرعية والإجماليات الكلية لمجموعات مختلفة من أعمدة التجميع.
33. ما الفرق بين نوعي البيانات CHAR و VARCHAR في SQL؟
الإجابة: CHAR هو نوع بيانات أحرف ذات طول ثابت يخزن عددًا محددًا من الأحرف. يقوم بوضع مسافات إلى اليمين لملء الطول بالكامل.
VARCHAR هو نوع بيانات أحرف متغير الطول يخزن البيانات بعدد متفاوت من الأحرف، باستخدام المساحة الفعلية المطلوبة فقط دون حشو.
34. شرح مفهوم الجمود في SQL وكيفية منعه؟
الإجابة: يحدث الجمود عندما تنتظر معاملتان أو أكثر من المعاملات بعضها البعض لتحرير الموارد، مما يمنعها من المتابعة. ولمنع حالات الجمود، تستخدم أنظمة قواعد البيانات تقنيات مختلفة، مثل آليات القفل، والمهلات، وخوارزميات الكشف عن حالات الجمود.
35. ما هو الغرض من دالة COALESCE في SQL؟
الإجابة: تقوم الدالة COALESCE بإرجاع أول تعبير غير فارغ من قائمة من التعبيرات. وغالبًا ما تُستخدم للتعامل مع القيم الفارغة وتوفير قيمة افتراضية إذا كان التعبير الأول يساوي قيمة فارغة.
36. شرح استخدام عامل ROLLUP في SQL؟
الإجابة: يتم استخدام عامل التشغيل ROLLUP مع شرط GROUP BY لتوليد المجاميع الفرعية والمجاميع الكلية لمجموعات البيانات. فهو ينشئ تسلسل هرمي لمستويات التجميع ويحسب المجاميع لكل مستوى، وصولاً إلى الإجمالي الكلي.
37. كيف يمكنك فرض قيد فريد على عدة أعمدة في جدول؟
الإجابة: لفرض قيد فريد على عدة أعمدة، يمكنك استخدام الكلمة المفتاحية UNIQUE مع مجموعة الأعمدة التي تريدها أن تكون فريدة. على سبيل المثال:
ALTER TABLE table table_name
إضافة قيد CONSTRAINT قيد_اسم UNIQUE (عمود1، عمود2);
38. ما هو تعبير الجدول المشترك التكراري (CTE) في SQL؟
الإجابة: CTE التكراري هو تعبير جدول شائع متكرر يشير إلى نفسه في تعريفه. يتم استخدامه لتنفيذ العمليات العودية، مثل اجتياز البيانات التسلسلية أو حساب التسلسلات العودية.
39. اشرح الغرض من الدالتين LAG و LEAD في SQL؟
الإجابة: LAG: تسمح لك الدالة LAG بالوصول إلى قيمة عمود معين من الصف السابق ضمن مجموعة النتائج.
LEAD: تسمح لك الدالة LEAD بالوصول إلى قيمة عمود معين من الصف التالي ضمن مجموعة النتائج. تُستخدم هذه الدوال غالبًا لمقارنة القيم بين الصفوف المتجاورة.
أسئلة مقابلة SQL Server
40. ما هي عبارة SQL CASE، وكيف يمكنك استخدامها؟
الإجابة: تسمح لك عبارة CASE بتنفيذ المنطق الشرطي في SQL. ويمكن استخدامه في SELECT، تحديث، وعبارات SQL الأخرى. لديها شكلين، بسيط وبحثت. في النموذج البسيط، يمكنك تحديد تعبير ومقارنته بعدة قيم وإرجاع نتيجة. في نموذج البحث، يمكنك توفير عدة شروط وإرجاع نتيجة بناءً على الشرط الأول المطابق.
41. ما هي طريقة العرض المجسدة في SQL؟
الإجابة: العرض المادي هو كائن قاعدة بيانات يخزن نتائج الاستعلام ويقوم بتحديث بياناته بشكل دوري. وهي تسمح باسترجاع البيانات بشكل أسرع عن طريق الحوسبة المسبقة وتخزين نتائج الاستعلام، مما يقلل من الحاجة إلى عمليات الربط والحسابات المعقدة.
42. اشرح الغرض من جملة HAVING في SQL؟
الإجابة: تُستخدم عبارة HAVING بالاقتران مع عبارة GROUP BY لتصفية نتائج استعلام مجمّع بناءً على شروط محددة. وهو يعمل كعامل تصفية للبيانات المجمعة، مما يسمح لك بتصفية المجموعات استنادًا إلى دوال مجمعة مثل SUM و AVG و COUNT، إلخ.
43. ما هي دوال نافذة SQL، وكيف تختلف عن الدوال التجميعية؟
الإجابة: تقوم دوال نافذة SQL، والمعروفة أيضًا باسم الدوال التحليلية، بإجراء عمليات حسابية عبر مجموعة من الصفوف المتعلقة بالصف الحالي. على عكس الدوال التجميعية التي تنتج نتيجة واحدة لكل مجموعة، توفر دوال النوافذ نتيجة لكل صف دون تقليل عدد الصفوف في مجموعة النتائج.
44. اشرح الفرق بين دالة UNION ودالة UNION ALL من حيث الأداء ومجموعة النتائج؟
الإجابة: UNION: تقوم بإجراء عملية مميزة وتزيل الصفوف المكررة من مجموعة النتائج المجمعة لاستعلامي SELECT أو أكثر. قد يكون لها عبء أداء أعلى قليلاً بسبب إزالة التكرارات.
اتحاد الكل: لا تقوم بإزالة التكرارات وتحتفظ بجميع الصفوف من مجموعة النتائج المدمجة، مما يجعلها أسرع من UNION لأنها تتجنب خطوة إزالة التكرارات.
45. كيف يمكنك التعامل مع الأخطاء والاستثناءات في SQL؟
الإجابة: في SQL، يمكنك استخدام بنية TRY…CATCH لمعالجة الأخطاء والاستثناءات. داخل كتلة المحاولة، يمكنك وضع التعليمات البرمجية التي قد تسبب خطأ، وفي كتلة CATCH، يمكنك تحديد الإجراء الذي سيتم اتخاذه في حالة حدوث خطأ، مثل تسجيل الخطأ أو إعادة المعاملة.
46. شرح الغرض من عامل EXISTS في SQL وكيف يعمل؟
الإجابة: يتم استخدام عامل التشغيل EXISTS لاختبار وجود الصفوف التي تم إرجاعها بواسطة استعلام فرعي. يقوم بإرجاع صواب إذا كان الاستعلام الفرعي يُرجع أي صفوف، وإلا فإنه يُرجع خطأ. وغالبًا ما يستخدم مع الاستعلامات الفرعية المترابطة للتحقق من وجود بيانات ذات صلة.
47. ما هو المفتاح البديل في SQL، ومتى يجب استخدامه؟
الإجابة: المفتاح البديل هو مفتاح أساسي مصطنع يتم إنشاؤه بواسطة النظام ويستخدم لتحديد الصفوف في الجدول بشكل فريد. وهو غالبًا ما يكون قيمة صحيحة ليس لها معنى في العالم الحقيقي، ويتم استخدامه في حالة عدم وجود مفتاح طبيعي مرشح أو عندما تتغير المفاتيح الطبيعية بمرور الوقت.
48. اشرح الغرض من شرط OFFSET-FETCH في SQL؟
الإجابة: تُستخدم عبارة OFFSET-FETCH لتنفيذ ترقيم الصفحات في SQL. وتحدد قيمة OFFSET عدد الصفوف المراد تخطيها من بداية مجموعة النتائج، وتشير قيمة FETCH إلى عدد الصفوف المراد إرجاعها بعد OFFSET.
49. ما هو التحديث المرتبط في SQL، وكيف يعمل؟
الإجابة: التحديث المرتبط هو عبارة تحديث يشير إلى جدول آخر في جملة “حيث”، ويقوم بتحديث الصفوف في الجدول الهدف بناءً على القيم المسترجعة من الجدول المرتبط.
50. اشرح الفرق بين المفتاح الأساسي وقيد المفتاح الفريد؟
الإجابة: المفتاح الأساسي هو نوع خاص من المفتاح الفريد الذي يحدد بشكل فريد كل صف في الجدول ولا يسمح بقيم فارغة.
أما قيد المفتاح الفريد، من ناحية أخرى، فإنه يفرض تفرد القيم في عمود أو مجموعة من الأعمدة ولكنه يمكن أن يسمح بقيم فارغة (إلا في الحالات التي يتم فيها تطبيق المفتاح الفريد على عمود واحد).
أسئلة مقابلة SQL لذوي الخبرة
51. ما الفرق بين الوصلة الطبيعية والوصلة المتساوية في SQL؟
الإجابة: الوصلة الطبيعية هي وصلة ضمنية تستند إلى أعمدة لها نفس الأسماء في كلا الجدولين. وهو يطابق ويجمع تلقائيًا الصفوف التي تتطابق فيها أسماء الأعمدة.
أما الوصلة المتساوية فهي وصلة صريحة تستخدم عامل المساواة (=) لدمج صفوف من جدولين بناءً على شرط محدد.
52. شرح الغرض من TRIGGGER في SQL؟
الجواب: المشغّل هو كائن قاعدة بيانات يقوم تلقائيًا بتنفيذ مجموعة من عبارات SQL عند وقوع حدث معين (INSERT، تحديث، حذف) على جدول. تُستخدم المشغلات لفرض قواعد العمل، أو الحفاظ على تكامل البيانات، أو تنفيذ إجراءات استجابةً لتغيرات البيانات.
53. ما هو هجوم حقن SQL، وكيف يمكنك منعه؟
الإجابة: إن حقن SQL هو نوع من الهجمات الإلكترونية حيث يتم إدراج تعليمات SQL البرمجية الخبيثة في حقول الإدخال للتلاعب بقاعدة البيانات. للوقاية من حقن SQL، استخدم الاستعلامات ذات المعلمات أو العبارات المعدة مسبقًا، والتي تفصل كود SQL عن مدخلات المستخدم، مما يجعلها محصنة ضد الحقن.
54. اشرح الفرق بين مشغلي OUTER APPLY و CROSS APPLY؟
يُرجع OUTER APPLY جميع الصفوف من الجدول الأيسر، بالإضافة إلى الصفوف المطابقة من الجدول الأيمن. إذا لم يتم العثور على أي تطابق، فإنه يقوم بإرجاع قيم فارغة لأعمدة الجدول الأيمن.
ترجع CROSS APPLY الصفوف التي تحتوي على صفوف مطابقة في كلا الجدولين فقط. يقوم بتصفية الصفوف غير المتطابقة، مما يجعله مشابهًا ل INNER JOIN.
55. ما هي تعبيرات الجدول الشائعة (CTEs) في SQL، ومتى يجب استخدامها؟
الإجابة: CTEs هي مجموعات نتائج مؤقتة يمكن استخدامها داخل عبارة SQL. فهي تساعد في تحسين سهولة قراءة الاستعلام، وتبسيط الاستعلامات المعقدة، وتجنب الاستعلامات الفرعية الزائدة عن الحاجة. استخدام CTEs عندما تحتاج إلى الرجوع إلى نفس الاستعلام الفرعي عدة مرات في الاستعلام.
56. شرح الفرق بين الفهرس المجمّع وغير المجمّع؟
الإجابة: يحدد الفهرس المجمّع الترتيب الفعلي للبيانات في الجدول. يمكن أن يحتوي كل جدول على فهرس مجمّع واحد فقط، ويؤثر بشكل مباشر على كيفية تخزين البيانات على القرص.
أما الفهرس غير المجمّع فهو عبارة عن بنية بيانات منفصلة تحتوي على قائمة مرتبة من القيم الرئيسية، مع مؤشر لصفوف البيانات الفعلية. يمكن أن يحتوي الجدول على عدة فهارس غير مجمعة.
57. ما هو الغرض من عبارة دمج في SQL؟
الإجابة: تسمح لك عبارة MERGE بتنفيذ عمليتي الإدخال والتحديث في عبارة SQL واحدة. فهي تطابق الصفوف بين الجدولين المصدر والهدف وتنفذ الإجراءات المحددة بناءً على ما إذا كان هناك تطابق أم لا.
58. شرح مفهوم إزالة تشابه البيانات في SQL؟
الإجابة: إن عملية إلغاء تطبيع البيانات هي عملية إدخال التكرار المتعمد في قاعدة البيانات عن طريق دمج الجداول أو تكرار البيانات. ويتم ذلك لتحسين أداء الاستعلام، وتقليل الوصلات، وتبسيط استرجاع البيانات في سيناريوهات معينة، خاصة لأغراض إعداد التقارير والتحليل.
59. كيف يمكنك العثور على ثاني أعلى/أدنى قيمة في عمود ما دون استخدام شرط LIMIT؟
الإجابة: يمكنك استخدام شرط OFFSET مع بند OFFSET مع بند ORDER BY للعثور على ثاني أعلى/أدنى قيمة في عمود ما. على سبيل المثال، للعثور على ثاني أعلى راتب:
حدد الراتب
من الموظفين
ترتيب حسب الراتب DESC
الإزاحة 1 الحد 1;
60. شرح الغرض من دالتي SESSION_USER و CURRENT_USER في SQL؟
الإجابة: تقوم SESSION_USER بإرجاع اسم المستخدم لجلسة العمل الحالية لقاعدة البيانات.
تقوم الدالة CURRENT_USER بإرجاع اسم المستخدم الخاص بالمستخدم المنفذ حاليًا في سياق عبارة SQL. يمكن أن يكون مختلفًا عن SESSION_USER إذا تم تنفيذ العبارة ضمن إجراء مخزن حقوق المحدد أو دالة.
تلخيص – أسئلة وأجوبة مقابلات SQL
SQL هي لغة قوية تكمن في صميم إدارة قواعد البيانات، وإتقان تعقيداتها يمكن أن يفتح الأبواب أمام فرص وظيفية مثيرة.
خلال هذه المدونة، قمنا بتغطية مجموعة واسعة من موضوعات SQL، بدءًا من المفاهيم الأساسية إلى التقنيات الأكثر تقدمًا. يجب أن يكون لديك الآن فهم قوي لتطبيع البيانات، وأنواع الوصلات، ووظائف النوافذ، والاستعلامات الفرعية، والفهارس، والمعاملات، وغير ذلك الكثير. تهدف شروحاتنا التفصيلية وأمثلة الاستعلامات إلى تزويدك برؤية شاملة لـ SQL وتطبيقاتها في سيناريوهات العالم الحقيقي.
هل تتطلع إلى صقل مهاراتك في SQL والتفوق في إدارة قواعد البيانات؟ إذن بالتأكيد لا تنظر إلى أبعد من SPOTO! صُمم برنامجنا التدريبي الشامل على SQL Server للشركات لتلبية احتياجات المبتدئين والمحترفين على حد سواء. وبفضل المدربين الرائدين في هذا المجال والجلسات العملية التطبيقية، نضمن لك استيعابك لأساسيات SQL ومفاهيمها المتقدمة بفعالية.
انضم إلى SPOTO وافتح عالماً من الفرص في مجال إدارة البيانات. استعد لتعزيز فرصك المهنية من خلال تدريب SQL المتميز الذي نقدمه.
سجّل اليوم وارتقِ بخبرتك في SQL إلى آفاق جديدة!
إن SPOTO هي شركة معترف بها عالميًا تقدم مجموعة واسعة من الخدمات الاحترافية المصممة لتلبية الاحتياجات المتنوعة للمؤسسات في جميع أنحاء العالم. نحن متخصصون في التدريب التقني والتجاري، وتطوير تكنولوجيا المعلومات وحلول البرمجيات، وخدمات اللغات الأجنبية، والتعلم الرقمي، وتوفير الموارد والتوظيف، والاستشارات. يتجلى التزامنا الثابت بالتميز من خلال شهادات الأيزو 9001 و27001 وCMMIDEV/3، التي تؤكد على معاييرنا الاستثنائية. وبفضل سجلنا الحافل بالنجاحات الذي يمتد لأكثر من عقدين من الزمن، فقد قدمنا خدماتنا بفعالية لأكثر من 4000 مؤسسة في جميع أنحاء العالم.
