← المستوى 4 – محترف البيانات

الدرس 4 من 6 ⏱ 45 دقيقة بريميوم

SQLite – قاعدة بيانات في ملف واحد

ثبّت SQLite في Node.js واحفظ أول صف في جدول.

ما هو SQLite

SQLite قاعدة بيانات مخزّنة في ملف واحد (مثلاً web.db). لا تحتاج تثبيت خادم كبير – مثالية للتعلّم والمشاريع الأصغر. البيانات فيها تبقى بعد إعادة تشغيل Node.js.

في Node.js نستخدم حزمة better-sqlite3:

cd my-server
npm install better-sqlite3

شاهد معي: جدول وأول سجل

في server.js (أو database.js جديد تستورده):

const Database = require("better-sqlite3");
const db = new Database("web.db");

// Create the table if it doesn't exist yet
db.exec(`
  CREATE TABLE IF NOT EXISTS vzkazy (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    jmeno TEXT NOT NULL,
    text TEXT NOT NULL,
    vytvoreno TEXT DEFAULT CURRENT_TIMESTAMP
  )
`);

// Insert one row
const vloz = db.prepare("INSERT INTO vzkazy (jmeno, text) VALUES (?, ?)");
vloz.run("Martin", "First message in the database! 🎉");

// Read all rows
const vse = db.prepare("SELECT * FROM vzkazy").all();
console.log(vse);

شغّل node server.js (أو سكربت اختبار قصير). سترى array من objects في الـ console. يظهر ملف اسمه web.db في مجلد مشروعك – تلك قاعدة البيانات كلها.

💡

SQL باختصار: CREATE TABLE = جدول جديد (مثل ورقة في Excel). INSERT = أضف صفاً. SELECT = اقرأ بيانات. علامات الاستفهام ? في prepare تحمي من SQL injection – لا تُدخل نص المستخدم مباشرة في سلسلة الاستعلام أبداً!

دورك الآن 💪

  1. ثبّت better-sqlite3 في مجلد خادمك.
  2. أنشئ جدول vzkazy حسب المثال (الأعمدة: id، jmeno، text، vytvoreno).
  3. أدخل 3 رسائل اختبار بـ INSERT.
  4. أوقف السكربت، شغّله مجدداً، وSELECT مرة أخرى – هل البيانات لا تزال هناك؟
  5. أضف web.db إلى .gitignore (في الإنتاج، كل خادم له قاعدة بيانات خاصة؛ أحياناً تُصدَّر منفصلة).

تحقق: الملف web.db موجود، والبيانات تبقى بعد إعادة التشغيل. في الدرس القادم سنوصل سجل الزوار كله بها عبر API.

ما ستخرج به من هذا الدرس