AzLearn

اختبار قواعد البيانات

Databases Quiz

اختبار ~22 دقيقة

اختبار قواعد البيانات — Databases Quiz

وصلت للاختبار الختامي لفصل قواعد البيانات. هذا الاختبار يختبر فهمك لـ:

  • sqlite3 والاستعلامات الآمنة
  • عمليات CRUD الأربع
  • أنماط ORM ومبدأ Repository
  • قراءة النتائج وتفسيرها

كل تحدٍّ مستقل — لا تحتاج نتيجة السابق لتحلّ التالي. إذا علقت راجع الدروس المرتبطة.


التحدي الأول — الاتصال والإنشاء

الاستعلامات الآمنة هي أهم مبدأ في التعامل مع قواعد البيانات. أكمل الكود لإنشاء جدول books وإدراج كتابين.

المرجع: درس أساسيات SQLite

تحدي — Challenge

التحدي الثاني — القراءة والفلترة

القراءة الصحيحة تعتمد على ORDER BY للحصول على نتائج محددة.

المرجع: درس عمليات CRUD

تحدي — Challenge

التحدي الثالث — التحديث والحذف

تحديث وحذف سجلات موجودة مع التحقق من rowcount.

المرجع: درس عمليات CRUD

تحدي — Challenge

التحدي الرابع — الاستعلامات المتقدمة

COUNT, MAX, MIN, ORDER BY — استعلامات تجميع وترتيب أساسية.

المرجع: درس أساسيات SQLite

تحدي — Challenge

التحدي الخامس — نمط Repository

الجمع بين CRUD وتنظيم الكود في طبقة مستقلة — هذا ما يميّز الكود الاحترافي.

المرجع: درس مقدمة SQLAlchemy

تحدي — Challenge

ملخص الفصل — Chapter Summary

أتممت فصل قواعد البيانات. إليك ما تعلمته:

أساسيات SQLite:

  • sqlite3.connect(':memory:') للاختبار، ملف للإنتاج
  • cursor.execute(sql, params) مع ? دائماً — لا استثناء
  • fetchall() للكل، fetchone() للواحد
  • conn.commit() لحفظ التغييرات

عمليات CRUD:

  • Create: INSERT INTO ... VALUES (?, ?) + lastrowid
  • Read: SELECT ... WHERE ... ORDER BY ...
  • Update: UPDATE ... SET ... WHERE id = ? + rowcount
  • Delete: DELETE FROM ... WHERE id = ? + rowcount

SQLAlchemy ORM:

  • النموذج التعريفي: class User(Base): __tablename__ = 'users'
  • الجلسة: session.add(), session.commit(), session.query()
  • قابلية التبديل: تُغيّر create_engine(...) فقط لتُغيّر قاعدة البيانات

المبدأ الأهم: الاستعلامات الموضعية تُبقي تطبيقك آمناً من SQL Injection — لا تكسر هذه القاعدة أبداً.