🗄️ تمارين قواعد البيانات (30 تمرين)
تمارين عملية للتعامل مع قواعد البيانات في لغة ص. تشمل إنشاء الجداول، الإدراج، الاستعلام، والتحديث باستخدام SQLite.
إنشاء قاعدة بيانات
اكتب برنامجاً ينشئ قاعدة بيانات SQLite جديدة ويتحقق من نجاح الاتصال.
💡 تلميح
استخدم دالة قاعدة_بيانات() لإنشاء اتصال
📝 عرض الحل
إنشاء جدول
اكتب برنامجاً ينشئ جدول "طلاب" بأعمدة: المعرف، الاسم، العمر.
💡 تلميح
استخدم نفّذ() مع أمر CREATE TABLE
📝 عرض الحل
إدراج سجل واحد
اكتب برنامجاً يدرج سجل طالب واحد في جدول الطلاب.
💡 تلميح
استخدم نفّذ() مع INSERT INTO ومعاملات ?
📝 عرض الحل
إدراج سجلات متعددة (إسلامي: طلاب حلقة تحفيظ)
اكتب برنامجاً يدرج مجموعة طلاب حلقة تحفيظ القرآن في قاعدة البيانات.
💡 تلميح
كرر على المصفوفة وأدرج كل طالب بـ نفّذ()
📝 عرض الحل
استعلام جميع السجلات
اكتب برنامجاً يسترجع ويطبع جميع الطلاب من الجدول.
💡 تلميح
استخدم استعلم() مع SELECT * ثم كرر على النتائج
📝 عرض الحل
استعلام مع شرط
اكتب برنامجاً يسترجع الطلاب الذين أعمارهم أكبر من 10.
💡 تلميح
استخدم WHERE مع معامل ? في الاستعلام
📝 عرض الحل
تحديث سجل
اكتب برنامجاً يحدّث عمر طالب معين.
💡 تلميح
استخدم UPDATE SET WHERE مع معاملات
📝 عرض الحل
حذف سجل
اكتب برنامجاً يحذف طالباً من الجدول.
💡 تلميح
استخدم DELETE FROM WHERE مع معاملات
📝 عرض الحل
عد السجلات
اكتب دالة تعد عدد الطلاب في قاعدة البيانات.
💡 تلميح
استخدم SELECT COUNT(*) في الاستعلام
📝 عرض الحل
الترتيب
اكتب برنامجاً يسترجع الطلاب مرتبين حسب العمر.
💡 تلميح
استخدم ORDER BY مع DESC أو ASC
📝 عرض الحل
جدول أوقات الصلاة (إسلامي)
أنشئ قاعدة بيانات لتخزين مواقيت الصلاة اليومية مع إمكانية البحث حسب اليوم والصلاة.
💡 تلميح
أنشئ جدولاً بأعمدة: يوم، صلاة، وقت
📝 عرض الحل
سجل حضور الطلاب
اكتب نظام تسجيل حضور طلاب حلقة التحفيظ مع تقرير الحضور.
💡 تلميح
استخدم GROUP BY مع SUM و COUNT لحساب الإحصائيات
📝 عرض الحل
دفتر حسابات (إسلامي: صندوق المسجد)
اكتب نظام محاسبة بسيط لصندوق المسجد يتتبع التبرعات والمصروفات.
💡 تلميح
استخدم SUM مع WHERE لحساب التبرعات والمصروفات منفصلين
📝 عرض الحل
جدول متعدد العلاقات
أنشئ جدولين مرتبطين: الأقسام والموظفين مع ربطهما.
💡 تلميح
استخدم JOIN لربط الجدولين بالمفتاح الأجنبي
📝 عرض الحل
بحث نصي
اكتب دالة بحث في قاعدة بيانات باستخدام LIKE.
💡 تلميح
استخدم LIKE مع % للبحث الجزئي
📝 عرض الحل
نظام الصفحات (Pagination)
اكتب دالة تسترجع السجلات بنظام الصفحات.
💡 تلميح
استخدم LIMIT و OFFSET — الإزاحة = (رقم_الصفحة - 1) × حجم_الصفحة
📝 عرض الحل
معاملة (Transaction) (إسلامي: تحويل الزكاة)
اكتب نظام تحويل زكاة يستخدم المعاملات لضمان سلامة البيانات.
💡 تلميح
استخدم معاملة() وثبّت() وتراجع() لضمان ذرية العمليات
📝 عرض الحل
تجميع وإحصاء
اكتب استعلامات تجميعية لحساب المتوسط والحد الأدنى والأقصى.
💡 تلميح
استخدم AVG و MIN و MAX مع GROUP BY
📝 عرض الحل
فهرس (Index) لتسريع البحث
أنشئ فهرساً على عمود لتسريع الاستعلامات.
💡 تلميح
استخدم CREATE INDEX لإنشاء فهرس على العمود المراد تسريعه
📝 عرض الحل
نسخ احتياطي
اكتب دالة تصدّر بيانات جدول إلى صيغة JSON للنسخ الاحتياطي.
💡 تلميح
استعلم عن كل السجلات وحوّلها لـ JSON
📝 عرض الحل
نظام إدارة المكتبة الإسلامية
اكتب نظام إدارة مكتبة متكامل مع الكتب والاستعارات والأعضاء.
💡 تلميح
أنشئ 3 جداول مترابطة واستخدم JOIN في التقارير
📝 عرض الحل
نظام ترحيل (Migration)
اكتب نظام ترحيل بسيط لتطبيق تغييرات البنية على قاعدة البيانات.
💡 تلميح
تتبع الترحيلات المنفذة في جدول منفصل وتحقق قبل التنفيذ
📝 عرض الحل
استعلام فرعي (Subquery)
اكتب استعلامات تحتوي استعلامات فرعية للحصول على نتائج متقدمة.
💡 تلميح
ضع SELECT داخلياً في WHERE للاستعلام الفرعي
📝 عرض الحل
نظام الأوقاف الإسلامية
اكتب نظام إدارة أوقاف متكامل يتتبع الأوقاف ومداخيلها وتوزيعاتها.
💡 تلميح
استخدم LEFT JOIN مع GROUP BY و COALESCE للتقارير الشاملة
📝 عرض الحل
نظام أحداث (Triggers) مُحاكى
اكتب نظاماً يحاكي عمل المُحفّزات (Triggers) عند إدراج أو تعديل البيانات.
💡 تلميح
اقرأ القيمة القديمة قبل التحديث وسجّل التغيير
📝 عرض الحل
ORM مبسط
اكتب طبقة ORM بسيطة تحوّل بين الكائنات وجداول قاعدة البيانات.
💡 تلميح
أنشئ دوال تولّد SQL ديناميكياً من الأسماء والقيم
📝 عرض الحل
ذاكرة مؤقتة مع قاعدة بيانات
اكتب نظام تخزين مؤقت يحفظ في الذاكرة ويكتب لقاعدة البيانات.
💡 تلميح
ابحث في الذاكرة أولاً، ثم في قاعدة البيانات
📝 عرض الحل
نظام التقارير المتقدم
اكتب نظام تقارير يولّد إحصائيات وملخصات من بيانات متعددة الجداول.
💡 تلميح
استخدم SUM مع GROUP BY و ORDER BY لتقارير متعددة
📝 عرض الحل
نظام صلاحيات المستخدمين
اكتب نظام صلاحيات مع مستخدمين وأدوار وصلاحيات.
💡 تلميح
أنشئ جدول وسيط يربط الأدوار بالصلاحيات (علاقة many-to-many)
📝 عرض الحل
نظام سجل التغييرات (Audit Log)
اكتب نظام تتبع كل التغييرات على قاعدة البيانات مع إمكانية التراجع.
💡 تلميح
سجّل كل عملية بالقيمة القبلية والبعدية ثم عكسها للتراجع