.SQLITE SQLite Database
.sqlite

SQLite Database

ملف SQLite قاعدة بيانات علائقية كاملة في ملف واحد — بدون خادم، بدون تثبيت، بدون إعدادات. هاتفك يحتوي عشرات منها الآن: الرسائل، جهات الاتصال، سجلّ المتصفّح، ذاكرة كل تطبيق. أكثر من تريليون نسخة نشطة حول العالم — أكثر من كل محركات قواعد البيانات مجتمعةً.

بنية الصيغة
SQLite format 3
Page header
B-tree
WAL
بيانات وصفيةBinary
غير قابل للتحويل

تحويل SQLite غير متاح حالياً في FileDex. استخدم أوامر CLI في المرجع التقني أدناه للتصدير أو التحويل بين صيغ قواعد البيانات عبر sqlite3 أو DB Browser.

أسئلة شائعة

ما الفرق بين امتداد .sqlite و .db؟

كلا الامتدادين يحتويان على التنسيق نفسه — أوّل 16 بايت دائماً `SQLite format 3\0`. الفرق إعلانيّ فقط. تطبيقات تستخدم `.sqlite` أو `.sqlite3` تُعلن صراحةً عن محرّكها؛ تطبيقات تستخدم `.db` أو `.db3` تبقى عامّة؛ ملف History في Chrome لا يستخدم أي امتداد. المحرّك نفسه لا يهتمّ — البشر وأدوات التحليل فقط يهتمّون.

كيف أفتح ملف .sqlite؟

استخدم الأمر `sqlite3` من سطر الأوامر (مُثبَّت مسبقاً على macOS وLinux). على Windows حمِّل ملف sqlite3.exe من موقع sqlite.org أو استخدم أداة DB Browser — الواجهة الرسومية المجّانية. للعرض السريع اسحب الملف إلى نافذة الأداة. للعمل البرمجي شغّل أمر `sqlite3 file.db` ثم الأمر `.tables` لرؤية الجداول. ثم استعلام `SELECT` أساسي لقراءة أوّل الصفوف.

ما وضع WAL وما هو ملف -wal؟

وضع WAL يُتيح قراءات متزامنة مع الكتابات. عند تفعيله بأمر `PRAGMA` المناسب، SQLite يُنشئ ملفاً مرافقاً ينتهي بـ `-wal` يحمل الصفحات غير المدمَجة. حذف هذا الملف يُفقد أي معاملات لم تُدمج بعد. للنسخ الآمن استخدم الأمر `sqlite3 source.db '.backup dest.db'` الذي يدمج بيانات WAL تلقائياً قبل الكتابة.

هل يمكن استرجاع صفوف محذوفة من قاعدة بيانات SQLite؟

نعم جزئياً. الإصدار 3.29.0 وما بعده يتضمّن الأمر `.recover` الذي يتجاوز بنية الشجرة الثنائية ويمسح الصفحات الخام بحثاً عن سجلات قابلة للاستخراج — بما في ذلك صفوف حُذفت لكنّ محتواها لا يزال في صفحات القائمة الحرّة. الأمر `sqlite3 source.db '.recover' | sqlite3 recovered.db` يُنتج قاعدة بيانات جديدة تحمل كلّ ما لا يزال قابلاً للقراءة في الأصل.

كيف تستخدم تطبيقات أبشر وSTC Pay تقنية SQLite؟

تطبيقات الجوّال السعودية الكبرى (أبشر، STC Pay، Tamara، جاهز، HungerStation) تستخدم SQLite للتخزين المحلّي والعمل دون اتّصال. تُحفَظ فيها رموز الجلسات، البيانات المؤقّتة للنماذج، والمعاملات الأخيرة قبل المزامنة مع الخوادم. التصميم الذي لا يحتاج خادماً والتشغيل عبر جميع الأنظمة يجعل SQLite الاختيار الافتراضي للتقنية المالية في المنطقة التي تتعرّض أحياناً لانقطاعات في الاتّصال. القواعد تعيش عادةً داخل مجلّد بيانات التطبيق على Android.

ما يميز .SQLITE

تريليون نسخة نشطة
أكثر من كلّ المحرّكات الأخرى مجتمعةً
SQLite تعمل داخل كلّ جهاز Android وiPhone، وكلّ متصفّح رئيسي، وأنظمة macOS وWindows، وتطبيقات واتساب وSignal، ومعظم أجهزة إنترنت الأشياء. المحرّك الأكثر انتشاراً في التاريخ بأضعاف من أقرب منافس — قاعدة بيانات كاملة في ملف واحد.
أول 100 بايت
المحلِّلون يبصمون الملف دون فتحه
الترويسة تكشف حجم الصفحة (الإزاحة 0x10)، ووضع WAL أو Rollback Journal (الإزاحة 0x12)، وترميز النصّ (0x38)، ورقم إصدار المكتبة التي كتبت الملف أخيراً (0x60). المحقِّقون الجنائيّون يستعرضون عشرات الآلاف من قواعد البيانات يومياً بهذه البايتات فقط.
فخّ الملف الثاني
أمر cp يفقد الرسائل المُرسَلة حديثاً
ملف `msgstore.db` في واتساب يحمل المحادثات القديمة؛ ملف `-wal` المرافق يحمل الجديدة التي لم تُدمج بعد. نسخ الأصل فقط يفقد أياماً من الرسائل. الطريقة الآمنة هي أمر `sqlite3 source.db '.backup dest.db'` — يمرّ عبر محرّك SQLite ويدمج البيانات المعلَّقة تلقائياً.
كلّ تطبيق يستخدمه
50-100 قاعدة بيانات تعمل في هاتفك الآن
واتساب، Signal، Chrome، Firefox، Safari، Apple Messages، جهات الاتّصال، مكتبات الصور، أبشر، STC Pay، Tabby، كريم — كلّ تطبيق محمول ذي معنى يُخزِّن البيانات في SQLite. استخراج مجلّد `/data/data/` يكشف الحياة الرقمية الكاملة لمالك الجهاز.

قاعدة بيانات كاملة في ملف واحد. هذه الجملة تلخّص SQLite كلّها. لا خادم يعمل في الخلفية، لا مستخدم قاعدة بيانات، لا إعدادات شبكة، لا مسؤول نظام. افتح الملف، اكتب، أغلقه. هذا البساطة الجذرية هي السبب الذي جعل SQLite أكثر محرّك قواعد بيانات انتشاراً في التاريخ.

اكتشف التفاصيل التقنية

الامتداد يمكن أن يكون أيّ شيء تختاره. ماذا يعني ذلك عن التنسيق؟

افتح مدير الملفات على جهازك واستعرض تطبيقات سعودية. ستجد عشرات من ملفات قواعد البيانات، لكنّ أسماءها مختلفة. places.sqlite في Thunderbird. app.db في تطبيق لإدارة الديون. chat.db في iMessage. ملف اسمه History بدون أيّ امتداد على الإطلاق في Chrome.

كلّها تبدأ بـ 16 بايتاً نفسها عند الإزاحة 0: 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 — نصّ ASCII يُقرأ "SQLite format 3" متبوعاً ببايتٍ صفري. المحرّك لا يهتمّ بالاسم الذي اختاره المطوِّر. نظام التشغيل لا يهتمّ كذلك. المهتمّون الوحيدون هم البشر — والمحلّلون الجنائيّون.

التمييز مهمّ في التحقيقات الرقمية. محقِّق يفحص مجلّد تطبيقات على هاتف محمول يستطيع تحديد ملفات .sqlite بسرعة؛ بينما ملفات .db العامّة تحتاج فحصاً داخلياً للتمييز بين SQLite وBerkeley DB وLevelDB وغيرها. تطبيقات تريد بياناتها قابلة للفحص تختار .sqlite صراحةً. تطبيقات بنوك تُفضّل عدم إعلان محرّكها تختار .db عامّاً أو تحذف الامتداد تماماً.

الامتداد بالتالي ليس مطلباً تقنياً — هو إعلان عن نيّة المطوِّر. اختيار .sqlite3 يقول للعالم "هذه قاعدة بيانات SQLite، تعامل معها". اختيار .db يقول "تعامل معها كصندوق أسود". المحقِّقون يعرفون هذا. يتجاوزون الامتداد ويقرؤون البايتات مباشرة.

المحلِّلون الجنائيّون يقرؤون أوّل 100 بايت قبل أيّ شيء آخر. لماذا هذه البايتات بالذات؟

كلّ تحقيق يبدأ بأوّل 100 بايت. الستّ عشرة الأولى هي التوقيع السحري. البايتات الـ 84 المتبقّية تحمل ملخّصاً كاملاً عن الملف قبل أن يحتاج المحلّل فتحه.

الإزاحة 0x10 تحمل حجم الصفحة — عدد صحيح من بايتين يجب أن يكون من قوى الرقم 2 بين 512 و65536. الإفتراضي 4096 بايت. الإزاحة 0x12 تحمل إصدار تنسيق الكتابة: القيمة 1 تعني وضع "Rollback Journal" التقليدي، والقيمة 2 تعني وضع "Write-Ahead Logging" الحديث. الإزاحة 0x13 تحمل إصدار تنسيق القراءة المُطابق. ثلاث بايتات تكشف الحالة الأساسية للقاعدة.

عدّاد تغيير الملف عند الإزاحة 0x18 يتزايد مع كلّ معاملة كتابة — يسمح للتطبيقات بمعرفة ما إذا كانت القاعدة قد تغيّرت منذ آخر قراءة. "schema cookie" عند 0x28 يتزايد مع كلّ تعديل في بنية الجداول. ترميز النصّ عند 0x38 (القيمة 1 تعني UTF-8، 2 تعني UTF-16 صغير النهاية، 3 تعني UTF-16 كبير النهاية) يُحدِّد كيف تُقرأ النصوص داخل الصفوف.

الإزاحة 0x60 هي الأجمل: أربع بايتات تُخزِّن رقم إصدار المكتبة التي كتبت الملف آخر مرّة، بتنسيق عشري مُعبَّأ. القيمة 00 38 12 00 تُقرأ 3.39.0. المحلّلون يستطيعون إعطاء بصمة كاملة لأي ملف — إصدار المكتبة، حجم الصفحة، وضع التسجيل — دون فتحه أبداً. الترويسة تكشف ما في الملف. الملفات المرافقة بجانبه تكشف ما لم يُثبَّت بعد.

انسخ ملف SQLite بدون المرافق. لقد فقدت للتوّ معاملات مُثبَّتة. لماذا؟

افتح قاعدة بيانات SQLite حديثة وسترى ملفاً ثانياً يظهر بجانبها. database.db هو الأصل. database.db-wal هو سجلّ الكتابة المسبقة. database.db-shm هو مؤشّر في الذاكرة المشتركة تستخدمه عدّة عمليات عند الوصول المتزامن.

احذف ملف -wal بينما يحمل بيانات لم تُدمج بعد، وستفقد تلك التغييرات للأبد. هذا الخطر هو العقبة الكبرى في التحليل الجنائي للهواتف المحمولة.

قبل 2010 كانت SQLite تستخدم "Rollback Journal" فقط — تكتب نسخ الصفحات القديمة إلى ملف منفصل قبل تعديل القاعدة الأصلية. إذا انهار النظام أثناء الكتابة، المحرّك يقرأ الملف ويُعيد الصفحات القديمة. النظام يعمل، لكنّه يمنع القراءة أثناء الكتابة.

وضع WAL أُضيف في الإصدار 3.7.0 يوليو 2010. الاسم الكامل للوضع Write-Ahead Logging. بدل نسخ الصفحات القديمة، WAL يُلحق الصفحات الجديدة إلى ملف منفصل ويدمجها لاحقاً في "نقطة تحقّق". الفائدة: القرّاء لا يتأثّرون بوجود كاتب نشط.

هذا يخلق مشكلة في التحقيق الجنائي. ملف msgstore.db الخاصّ بواتساب يحمل الرسائل القديمة؛ ملف msgstore.db-wal يحمل الرسائل الجديدة التي لم تُدمج بعد. محقّق يستخدم أمر cp لنسخ القاعدة الرئيسية فقط يفقد الرسائل الأحدث — أحياناً أياماً من المحادثات. النسخ الآمن يستخدم الأمر sqlite3 source.db '.backup destination.db' الذي يعبر عبر محرّك SQLite نفسه، ويدمج بيانات WAL المعلَّقة قبل الكتابة. سلوك WAL تفصيل هندسي. الحجم الذي يعمل به هو الجزء المذهل.

تريليون نسخة نشطة من SQLite. كيف وصلت إلى هذا الرقم؟

هاتفك يحمل الآن عشرات قواعد بيانات SQLite. رسائل واتساب في msgstore.db.crypt14. رسائل Apple في chat.db. تطبيقات المراسلة الكبرى جميعها تستخدم SQLite. سجلّ Chrome في ملف اسمه History. places.sqlite في Firefox. History.db في Safari.

التطبيقات السعودية الاستهلاكية الرئيسية — بينها أبشر وSTC Pay وجاهز — تُخزِّن البيانات في SQLite للعمل بدون اتّصال بالإنترنت. عندما يُفتح التطبيق في منطقة ضعيفة التغطية، البيانات تعمل محلياً من قاعدة SQLite. عند استعادة الاتّصال، التطبيق يُزامن مع خوادمه.

نظام Android يُشحن SQLite كمكوِّن إطاري أساسي. نظام iOS يستخدم إطاراً اسمه Core Data. هذا الإطار يعمل فوق SQLite. تطبيقات Mail وSafari في macOS تستخدمها داخلياً. كلّ تثبيت Windows 10 أو 11 يحتوي قواعد بيانات SQLite لميزات النظام.

مشروع sqlite.org يُقدِّر أكثر من تريليون نسخة نشطة حول العالم — أكثر من كلّ محرّكات قواعد البيانات الأخرى مجتمعةً بأضعاف. سير عمل التحليل الجنائي للهواتف يبدأ دائماً بـ SQLite. يستخرج المحقِّق مجلّد قواعد البيانات من الجهاز. يفتح كلّ ملف بواسطة أمر sqlite3 أو أداة DB Browser. ثم يُشغِّل الأمر .recover لاسترجاع الصفوف المحذوفة من صفحات القائمة الحرّة. معظم الناس يحملون 50-100 قاعدة بيانات SQLite في جيوبهم كلّ يوم دون أن يعلموا.

مقارنة .SQLITE مع البدائل

مقارنة .SQLITE مع الصيغ البديلة
المقارنة المعيار الفائز
.SQLITE vs .MYSQL
نموذج النشر
SQLite ملف واحد لا يحتاج شيئاً — لا خادم، لا تركيب، لا إعدادات. افتح الملف، اكتب، أغلقه. MySQL في المقابل يحتاج عملية خادم تعمل دائماً في الخلفية، وحسابات مستخدمين، وإعدادات شبكة، ومسؤول قاعدة بيانات يُراقب الأداء. لمعظم التطبيقات الصغيرة والمتوسّطة، SQLite يحذف طبقة كاملة من التعقيد.
SQLITE أفضل
.SQLITE vs .MYSQL
الكتابات المتزامنة
MySQL يستطيع التعامل مع آلاف اتّصالات الكتابة في الوقت نفسه عبر قفل على مستوى الصفّ الواحد. SQLite يُرتِّب كلّ الكتابات عبر قفل واحد على مستوى الملف كلّه. لتطبيق يستقبل كتابات متزامنة عالية الحجم، MySQL يفوز بوضوح. لقراءات كثيرة مع كتابات قليلة، SQLite كافٍ تماماً.
MYSQL أفضل
.SQLITE vs .POSTGRESQL
اكتمال ميزات SQL
PostgreSQL يدعم ميزات متقدّمة تغيب عن SQLite: FULL OUTER JOIN، إجراءات مخزَّنة بلغة PL/pgSQL، أنواع بيانات مُخصَّصة، وامتدادات شاملة مثل PostGIS للبيانات الجغرافية. SQLite يركِّز على الأساسيات — استعلامات، فهارس، جداول. للمشاريع التي تحتاج ميزات SQL كاملة، PostgreSQL أفضل.
POSTGRESQL أفضل
.SQLITE vs .ملف JSON
قدرة الاستعلام
SQLite يدعم استعلامات SQL كاملة مع JOIN والتجميع ودوال النافذة والفهارس — كلّ ذلك في ملف واحد. ملفّات JSON تتطلّب تحميلاً كاملاً في الذاكرة والمرور على كلّ السجلات لكلّ استعلام. لبيانات تزيد عن عدّة آلاف من الصفوف، SQLite أسرع بأضعاف.
SQLITE أفضل

المرجع التقني

نوع MIME
application/vnd.sqlite3
Magic Bytes
53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 SQLite format 3\0 text signature.
المطوّر
D. Richard Hipp
سنة التقديم
2000
معيار مفتوح
نعم — عرض المواصفات
0000000053514C69746520666F726D6174203300SQLite format 3.

SQLite format 3\0 text signature.

البنية الثنائية

ملف SQLite ثنائي يبدأ بترويسة طولها 100 بايت. الستّ عشرة بايت الأولى هي السلسلة النصّية `SQLite format 3\0` — التوقيع المُستخدم في فهرس PRONOM الرسمي (fmt/729). الـ 84 بايت المتبقّية تحمل بيانات بنيوية أساسية: حجم الصفحة (الإزاحة 0x10)، إصدار تنسيق الكتابة والقراءة (0x12-0x13، القيمة 1 تعني Rollback Journal والقيمة 2 تعني WAL)، عدّاد تغيير الملف (0x18)، مؤشّر تعديل بنية الجداول (0x28)، ترميز النصّ (0x38، القيمة 1 تعني UTF-8)، ورقم إصدار مكتبة SQLite التي كتبت الملف آخر مرّة (0x60، بتنسيق عشري معبَّأ). بعد الترويسة يُقسَّم الملف إلى صفحات ثابتة الحجم تحتوي صفحات الشجرة الثنائية، الفهارس، وصفحات الفيض للسجلات الأكبر من صفحة واحدة.

OffsetLengthFieldExampleDescription
0x00 16 bytes السلسلة السحرية 53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00 السلسلة النصّية `SQLite format 3\0` — تُحدِّد الملف كقاعدة بيانات SQLite، وهي أطول توقيع بين تنسيقات الملفّات الشائعة
0x10 2 bytes حجم الصفحة 10 00 (4096) حجم الصفحة داخل الملف بالبايت. يجب أن يكون قوّة من الرقم 2 بين 512 و65536. القيمة 4096 هي الافتراضية في معظم الأنظمة الحديثة
0x12 1 byte إصدار تنسيق الكتابة 01 القيمة 1 تعني وضع Rollback Journal التقليدي. القيمة 2 تعني وضع Write-Ahead Logging الحديث الذي يسمح بالقراءات المتزامنة مع الكتابة
0x13 1 byte إصدار تنسيق القراءة 01 نفس الترميز لإصدار الكتابة: القيمة 1 تعني Rollback Journal، القيمة 2 تعني وضع WAL. يجب أن تتطابق مع إصدار الكتابة في الملفات الصحيحة
0x14 1 byte مساحة محجوزة 00 عدد البايتات غير المستخدمة في نهاية كلّ صفحة — عادةً 0. يُستخدم أحياناً لإضافات خاصّة بتطبيقات معيَّنة
0x18 4 bytes عدّاد تغيير الملف 00 00 00 2A يتزايد مع كلّ معاملة كتابة. يُستخدم للتحقّق من صلاحية ذاكرة التخزين المؤقَّت — العملاء الذين يحتفظون ببيانات مؤقّتة يقارنون قيمتهم بالقيمة الحالية
0x1C 4 bytes حجم القاعدة بالصفحات 00 00 00 08 العدد الإجمالي للصفحات في ملف قاعدة البيانات. ضرب هذا الرقم في حجم الصفحة يُعطي الحجم الكامل للملف بالبايت
0x20 4 bytes أوّل صفحة جذع في القائمة الحرّة 00 00 00 00 رقم أوّل صفحة في القائمة الحرّة — الصفحات التي حُذفت محتوياتها وأصبحت متاحة لإعادة الاستخدام. القيمة 0 تعني لا توجد صفحات حرّة
0x24 4 bytes عدد صفحات القائمة الحرّة 00 00 00 00 العدد الإجمالي للصفحات في القائمة الحرّة المتاحة لإعادة الاستخدام. تتزايد مع حذف السجلات وتنقص مع الإدخالات الجديدة
0x28 4 bytes ملفّ تعريف المخطَّط 00 00 00 05 يتزايد مع كلّ تعديل في بنية الجداول (CREATE، DROP، ALTER). يُشغِّل إعادة ترجمة العبارات المُعدَّة مسبقاً في التطبيقات
0x2C 4 bytes إصدار تنسيق المخطَّط 00 00 00 04 رقم إصدار تنسيق المخطَّط الداخلي — القيمة الحالية 4 منذ SQLite 3.3.0. تُحدِّد الميزات المدعومة في تخزين الجداول والفهارس
0x34 4 bytes حجم ذاكرة التخزين المقترح 00 00 00 00 الحجم الافتراضي لذاكرة التخزين المؤقَّت للصفحات، المقترح عبر الأمر PRAGMA default_cache_size. مجرّد اقتراح — التطبيقات يمكنها تجاوزه
0x38 4 bytes ترميز النصّ 00 00 00 01 يُحدِّد ترميز النصوص داخل قاعدة البيانات: القيمة 1 تعني UTF-8، القيمة 2 تعني UTF-16 صغير النهاية، القيمة 3 تعني UTF-16 كبير النهاية
0x3C 4 bytes إصدار المستخدم 00 00 00 00 رقم إصدار مخصَّص للتطبيق، يُضبط عبر PRAGMA user_version. تستخدمه التطبيقات لتعقُّب إصدارات المخطَّط وإجراء عمليات الترحيل
0x60 4 bytes رقم إصدار SQLite 00 38 12 00 (3.39.0) رقم إصدار مكتبة SQLite التي كتبت الملف آخر مرّة، بتنسيق عشري معبَّأ. يُستخدم في التحليل الجنائي لمعرفة إصدار الكاتب الأخير
2000د. ريتشارد هيب يكتب SQLite لبرنامج تحكّم في مدمّرة صواريخ موجَّهة تابعة للبحرية الأميركية — قاعدة بيانات بلا حاجة لمسؤول نظام2004إصدار تنسيق ملف SQLite الثالث — التوافق الخلفي محافَظ عليه حتى 2026 بعد أكثر من 20 عاماً2005شركة Apple تتبنّى SQLite لنظام Mac OS X — تطبيقات Mail وSafari وإطار Core Data2008نظام Android 1.0 يُشحَن مع SQLite كمكوِّن إطاري أساسي؛ نظام iPhone OS 2.0 يستخدمه داخلياً2010وضع WAL يُضاف في الإصدار 3.7.0 — قراءات متزامنة مع الكتابة؛ Firefox وChrome يُحوِّلون سجلّ التصفّح إلى SQLite2019إصلاح ثغرة Magellan الأمنية (CVE-2019-8457) في الإصدار 3.28.02024sqlite.org تُقدِّر عدد النسخ النشطة بأكثر من تريليون حول العالم
استعلام بسيط على قاعدة بيانات أخرى
sqlite3 database.db 'SELECT name, email FROM users LIMIT 10;'

الأمر يفتح ملف قاعدة البيانات ويُنفِّذ استعلام SQL مباشرةً. النتائج تُطبع على الشاشة. ضع الاستعلام بين علامتَي اقتباس لتشغيله كأمر واحد دون دخول القشرة التفاعلية، مفيد للاستخدام داخل برامج نصّية أو عمليات آلية.

تفريغ قاعدة بيانات كاملة إلى نصّ SQL أخرى
sqlite3 database.db .dump > backup.sql

الأمر `.dump` يُنتِج جميع عبارات CREATE TABLE وINSERT اللازمة لإعادة بناء القاعدة من الصفر. النتيجة ملف نصّي قابل للاستيراد بواسطة أمر sqlite3 مرّة أخرى أو أي محرّك قاعدة بيانات آخر يفهم SQL — وسيلة نقل شائعة بين الأنظمة.

فحص سلامة قاعدة البيانات أخرى
sqlite3 database.db 'PRAGMA integrity_check;'

الأمر يمرّ على كلّ صفحة في الملف ويفحص: بنية الشجرة الثنائية، أرقام التحقّق للصفحات، تناسق الفهارس، وإشارات كلّ الصفوف. يُعيد كلمة `ok` إذا لم يعثر على أي مشكلة. مفيد قبل نسخ القاعدة احتياطياً.

تصدير جدول إلى ملف CSV مع العناوين أخرى
sqlite3 -header -csv database.db 'SELECT * FROM products;' > products.csv

الخيار `-header` يضيف أسماء الأعمدة كسطر أول. الخيار `-csv` يُنسِّق المخرجات بفواصل قياسية. نتيجة جاهزة للفتح في أيّ برنامج جداول بيانات أو استيراد إلى نظام آخر.

استعراض بنية الجداول في قاعدة البيانات أخرى
sqlite3 database.db '.schema --indent'

الأمر `.schema` يطبع جميع عبارات CREATE TABLE وCREATE INDEX في القاعدة. الخيار `--indent` ينسِّقها بإزاحات واضحة لقراءة أسهل. خطوة أولى لفهم قاعدة بيانات جديدة قبل الاستعلام عنها.

تحويل SQLite غير متاح حالياً في FileDex. استخدم أوامر CLI في المرجع التقني أدناه للتصدير أو التحويل بين صيغ قواعد البيانات عبر sqlite3 أو DB Browser.

متوسط

نقاط الضعف

  • حقن SQL عبر كود التطبيق
  • ملفات قواعد بيانات خبيثة (CVE-2019-8457 Magellan)
  • استخراج البيانات من الأجهزة المحمولة
  • هجوم ATTACH DATABASE للوصول إلى نظام الملفات

الحماية: افتح ملفات SQLite من مصادر موثوقة فقط. افحص ترويسة الملف الثنائية قبل التحليل الكامل عند التعامل مع قواعد بيانات غير موثوقة. استخدم الأمر `PRAGMA integrity_check` للكشف عن الفساد أو التلاعب في المخطَّط. لا تُحمِّل ملفات SQLite تطبيقية عبر الشبكة دون تشفير. FileDex لا يحلل ملفات SQLite — هذه الصفحة مرجع ثابت، لا رفع ملف.

SQLite CLI أداة
قشرة سطر الأوامر الرسمية من sqlite.org. تسمح بتشغيل استعلامات مباشرة، استيراد وتصدير البيانات، وتنفيذ أوامر خاصّة مثل `.dump` و`.backup` و`.recover`. مُثبَّتة مسبقاً على macOS وجميع توزيعات Linux الحديثة
الواجهة الرسومية الأكثر استخداماً لـ SQLite — إنشاء وتصفّح وتحرير قواعد البيانات مع أداة بناء استعلامات مرئية. مجّانية ومفتوحة المصدر، تعمل على Windows وmacOS وLinux
DBeaver أداة
واجهة قاعدة بيانات شاملة تدعم SQLite بالإضافة إلى PostgreSQL وMySQL وأكثر من 80 قاعدة بيانات أخرى. الإصدار المجّاني يغطّي معظم الاحتياجات المهنية
SQLiteStudio أداة
واجهة رسومية مجّانية مكتوبة بـ C++ وQt. ميزات متقدّمة بما في ذلك محرِّر البرامج النصّية، معالجات الاستيراد والتصدير، ونظام إضافات قابل للتوسّع
Python sqlite3 مكتبة
مكتبة قياسية مدمجة في Python — تُشحن مع كلّ تثبيت للّغة دون الحاجة إلى تثبيت إضافي. الأداة الأولى لتجربة SQLite في أي بيئة تطوير
sql.js مكتبة
مكتبة SQLite مُجمَّعة إلى WebAssembly — تشغيل استعلامات SQL كاملة داخل المتصفح بدون خادم، بدون رفع الملفات. خيار مناسب لأي تطبيق ويب يحتاج تشغيل SQLite محلياً
Litestream أداة
نسخ مستمرّ لقواعد بيانات SQLite — يحفظ تغييرات WAL إلى خدمات S3 أو Azure أو SFTP مع دعم استرداد نقطة زمنية. يُحوِّل SQLite من قاعدة ملف واحد إلى نظام إنتاج موزَّع
better-sqlite3 مكتبة
أسرع وأبسط ربط SQLite للغة Node.js — واجهة برمجة تطبيقات متزامنة مع توافق كامل مع مكتبة SQLite الأساسية. خيار بديهي لتطبيقات JavaScript من جانب الخادم