SQLite عبارة عن قاعدة بيانات خفيفة الوزن. هدف تصميمها مضمن، وقد تم استخدامها في العديد من المنتجات المضمنة، وهي تشغل موارد منخفضة جدًا، وقد لا تتطلب سوى بضع مئات من كيلو بايت. يمكنه دعم أنظمة التشغيل السائدة مثل Windows/Linux/Unix، ويمكن دمجه مع العديد من لغات البرمجة، مثل Tcl وPHP وJava وما إلى ذلك، بالإضافة إلى واجهات ODBC، كما يمكن مقارنته بـ Mysql وPostgreSQL برنامج مفتوح المصدر مشهور عالميًا فيما يتعلق بأنظمة إدارة قواعد البيانات، فسرعته في المعالجة أسرع منها جميعًا.
على الرغم من أن SQLite صغير جدًا، إلا أن عبارات SQL التي يدعمها ليست أدنى من قواعد البيانات مفتوحة المصدر الأخرى. يتضمن SQL الذي يدعمه:
ATTACH DATABASE
ابدأ المعاملة
تعليق
إتمام الصفقة
ينسخ
إنشاء فهرس
إنشاء جدول
إنشاء الزناد
إنشاء عرض
يمسح
فصل قاعدة البيانات
إسقاط المؤشر
إسقاط الجدول
إسقاط الزناد
عرض إسقاط
إنهاء المعاملة
يشرح
تعبير
إدراج
بند النزاع
براغما
يستبدل
معاملة التراجع
يختار
تحديث
وفي الوقت نفسه، يدعم أيضًا وظائف معالجة المعاملات وما إلى ذلك. يقول بعض الأشخاص أيضًا أنه يشبه برنامج Microsoft Access في بعض الأحيان، يبدو الأمر مشابهًا بعض الشيء، لكنه في الواقع مختلف تمامًا. على سبيل المثال، يدعم SQLite الأنظمة الأساسية المشتركة، وهو سهل التشغيل، ويمكنه إنشاء قواعد بيانات مباشرة بالعديد من اللغات، على عكس Access، الذي لا يتطلب دعم Office. إذا كان لديك تطبيق صغير جدًا، أو كنت تريد القيام بالتطوير المضمن وليس لديك نظام قاعدة بيانات مناسب، فيمكنك التفكير في استخدام SQLite الآن. في الوقت الحاضر، أحدث إصدار له هو 3.2.2، وموقعه الإلكتروني الرسمي هو: http://www.sqlite.org ، حيث يمكن الحصول على الكود المصدري والوثائق. في الوقت نفسه، نظرًا لأن بنية قاعدة البيانات بسيطة ولا يوجد الكثير من التعليمات البرمجية المصدر للنظام، فهي مناسبة أيضًا للمحترفين الذين يرغبون في دراسة تطوير نظام قاعدة البيانات.
الآن لنبدأ بمقدمة موجزة أريد بشكل أساسي توضيح بعض المشكلات، إحداهما تتعلق بكيفية التثبيت والاستخدام، والأخرى تتعلق بكيفية تطويرها جنبًا إلى جنب مع PHP.
1. التثبيت
1. يقوم نظام Windows الأساسي
بتنزيل الملفات ضمن Windows، وهو في الواقع برنامج سطر أوامر (عنوان التنزيل: sqlite>
# موجه SQLite إذا كنت تريد عرض تعليمات الأوامر، فأدخل .help في sqlite، تبدأ جميع أوامر النظام بـ .:
سكليتي> .مساعدة
.databases قائمة بأسماء وملفات قواعد البيانات المرفقة
.dump ?TABLE?... تفريغ قاعدة البيانات بتنسيق نص SQL
.echo ON|OFF تشغيل صدى الأمر أو إيقاف تشغيله
.exit قم بالخروج من هذا البرنامج
شرح تشغيل|إيقاف تشغيل وضع الإخراج المناسب للتشغيل أو إيقاف التشغيل.
.header(s) ON|OFF تشغيل عرض الرؤوس أو إيقاف تشغيله
.help إظهار هذه الرسالة
.import FILE TABLE استيراد البيانات من FILE إلى TABLE
.indices TABLE عرض أسماء جميع المؤشرات على TABLE
.mode MODE ?TABLE? اضبط وضع الإخراج حيث يكون MODE واحدًا من:
CSV قيم مفصولة بفواصل
الأعمدة المحاذية لليسار (راجع .width).
أتش تي أم أل HTML كود <الجدول>
إدراج عبارات إدراج SQL لـ TABLE
سطر قيمة واحدة لكل سطر
قائمة القيم المحددة بسلسلة .separator
علامات التبويب قيم مفصولة بعلامات جدولة
عناصر قائمة TCL TCL
.nullvalue STRING قم بطباعة STRING بدلاً من القيم NULL
.output FILENAME إرسال الإخراج إلى FILENAME
.output stdout إرسال الإخراج إلى الشاشة
.prompt MAIN CONTINUE استبدل المطالبات القياسية
.quit قم بالخروج من هذا البرنامج
.قراءة FILENAME تنفيذ SQL في FILENAME
.المخطط؟ الجدول؟ إظهار عبارات الإنشاء
.separator STRING تغيير الفاصل المستخدم بواسطة وضع الإخراج و.import
.show إظهار القيم الحالية للإعدادات المختلفة
.الجداول؟النمط؟قائمة أسماء الجداول المطابقة لنمط مثل
.timeout MS حاول فتح الجداول المقفلة لـ MS ميلي ثانية
.width NUM NUM... قم بتعيين عرض الأعمدة لوضع "العمود".
سكليتي>
www.knowsky.com
# نقوم بإنشاء سجل بيانات لقاعدة البيانات
sqlite> إنشاء كتالوج الجدول (
...> معرف المفتاح الأساسي الصحيح،
...> عدد صحيح معرف المنتج،
...> الاسم varchar(10) فريد
...> );
سكليتي>
# إذا كان الجدول موجودًا، فسيطالبك بما يلي:
خطأ SQL: كتالوج الجدول موجود بالفعل
# نقوم بإنشاء معلومات الفهرس
إنشاء فهرس catalog_idx في الكتالوج (المعرف تصاعدي)؛
# نتحقق من معلومات الجدول لمعرفة عدد الجداول الموجودة
سكليتي>.الجدول
كتالوج أأ
# عرض هيكل الجدول:
sqlite> كتالوج المخطط
إنشاء كتالوج الجدول(
معرف المفتاح الأساسي عدد صحيح،
عدد صحيح معرف الهوية,
اسم varchar(10) فريد من نوعه
);
إنشاء فهرس catalog_idx في الكتالوج (المعرف التصاعدي)؛
# أدخل سجلاً في جدول البيانات
sqlite> أدخل في قيم الكتالوج (ppid،name) ('001'،'heiyeluren')؛
#لا توجد مطالبات إذا كان التعبير خاطئًا، فستتم مطالبتك برسالة خطأ:
خطأ SQL: بالقرب من "المجموعة": خطأ في بناء الجملة
# استرداد عدد السجلات الموجودة
sqlite> حدد العد (*) من الكتالوج؛
1
# استرجاع سجلات البحث
sqlite> حدد * من الكتالوج؛
1|1|heiyeluren
على أية حال، لا توجد مشكلة إذا كنت تستخدم لغة SQL القياسية للتشغيل. إذا لم تكن متأكدًا، يمكنك التحقق من معلومات المساعدة على الموقع الرسمي. بالإضافة إلى ذلك، تجدر الإشارة إلى أن SQLite لا يدعم تعديل بنية الجدول. إذا كنت ترغب في تعديل بنية الجدول، فيمكنك فقط حذف الجدول وإعادة إنشائه، لذلك يجب عليك مراعاة قابلية التوسع عند إنشاء الجدول. ومن المتوقع أن يتم تعزيز هذه الوظيفة في المستقبل.
2. خطأ في نظام التشغيل Linux/Unix
: لم أقم بتثبيته بعد، هاها، لكنه ربما يكون مشابهًا لنظام التشغيل Windows، وسأقوم بتركيب هذا الجزء في يوم آخر.
2. لم يعد تطوير PHP لـ SQLite
يدعم Mysql افتراضيًا، ولكنه يدعم SQLite افتراضيًا. لذلك، إذا كنت تريد تطوير PHP لـ SQLite، فمن المستحسن استخدام PHP 5.0.0 أو أعلاه. أنا أستخدم حاليًا الإصدار 5.0.4 من PHP، والذي يدعم بشكل مباشر امتدادات SQLite. ولن أشرح هنا كيفية تثبيت ملحقات PHP بالتفصيل. إذا لم تكن متأكدًا، يمكنك التحقق من المستندات المتعلقة بـ PHP.
أنا هنا أتحدث بشكل أساسي عن تطوير SQLite. حاليًا، تدعم جميع فئات قاعدة البيانات السائدة في PHP برامج تشغيل SQLite، بما في ذلك فئة PEAR::DB وفئة ADOdb، لذا فإن استخدام DB للتطوير يعد أيضًا خيارًا جيدًا.
أجل التبسيط،
يتم تنفيذ جميع العمليات التالية على نظام التشغيل Windows
الذي
يعمل به. هناك العديد من وظائف المعالجة لـ SQLite في PHP. يمكنك مراجعة دليل PHP للحصول على معلومات مفصلة.نستخدم الدالة sqlite_open () لفتح قاعدة بيانات sqlite، وتقوم بإرجاع مورد العملية بنجاح، وتعيد الخطأ إذا فشلت، ثم يتم تنفيذ جميع العمليات اللاحقة على هذا المورد، استخدم الدالة sqlite_query.
أفترض أدناه أن لديك ملف قاعدة بيانات sqlite abc.db في دليل برنامج PHP الحالي، ونقوم بتشغيل هذا الملف:
<?php
// افتح قاعدة بيانات SQLite
$db = @sqlite_open("abc.db");
// معالجة الاستثناء
if (!$db) die("فشل اتصال Sqlite.n");
// أضف قاعدة بيانات تسمى foo
@sqlite_query($db, "CREATE TABLE foo (bar varchar(10))");
// أدخل سجلا
@sqlite_query($db, "INSERT INTO foo VALUES('fnord')");
// استرداد كافة السجلات
$result = @sqlite_query($db, 'select bar from foo');
// اطبع النتائج التي تم الحصول عليها
print_r(sqlite_fetch_array($result)
?>
الإخراج الذي نراه هو:
Array
(
[0] => نورد
[شريط] => نورد
)
يثبت أن الكود الخاص بنا قد تم تنفيذه بنجاح. إذا لم يكن هناك إدخال، يرجى التحقق من البرنامج أو ما إذا كان ملف قاعدة البيانات الخاص بك موجودًا.
ومن خلال هذه العملية الأساسية، يمكنك التفكير في استخدام عمليات أكثر تعقيدًا وSQL لتشغيلها والسماح لها بمساعدتك في إدارة المعلومات، ويمكنك إنشاء سجل زوار أو نظام CMS على ما أعتقد.
2. استخدم PHP لإنشاء قاعدة البيانات وتشغيلها
. إذا لم يكن لديك أي أدوات مثل sqlite.exe، فيمكنك أيضًا إنشاء قاعدة بيانات sqlite من خلال PHP وإدارتها.
في الواقع، محتوى قاعدة البيانات التي تم إنشاؤها من خلال برنامج sqlite.exe فارغ. في الواقع، ملف قاعدة البيانات موجود فقط بعد إنشاء الجدول وإضافة البيانات، لذا يمكننا إضافة ملف يدويًا، مثل اختبار فارغ. db الملف والعمل عليه. هذا ممكن تمامًا. أدناه سنستخدم برنامج PHP لإنشاء قاعدة بيانات وتنفيذ وظائف بسيطة لإنشاء جداول البيانات وإدراج البيانات واسترجاع البيانات.
دعونا أولاً نلقي نظرة على الكود: (الكود أطول، ولكن أسهل في الفهم)
<?php
/**
* الملف: sqlite.php
* الوظيفة: معالجة قاعدة بيانات SQLite
* المؤلف : هييلورين
* الزمان : 2005-8-5
*/
تحديد ("LN"، __LINE__)؛// رقم السطر
تعريف ("FL"، __FILE__)؛// الملف الحالي
define("DEBUG", 0);//مفتاح التصحيح
$db_name = "heiyeluren.db";
// أنشئ ملف قاعدة بيانات، محتوى الملف فارغ
إذا (! file_exists($db_name)) {
إذا (!($fp = fopen($db_name, "w+"))) {
خروج(error_code(-1, LN));
}
fClose($fp);
}
// فتح ملف قاعدة البيانات
إذا (!($db = sqlite_open($db_name))) {
خروج(error_code(-2, LN));
}
// إنشاء هيكل جدول البيانات
إذا (!sqlite_query($db, "اختبار DROP TABLE")) {
خروج(error_code(-3, LN));
}
if (!sqlite_query($db, "اختبار إنشاء جدول (معرف المفتاح الأساسي، عدد صحيح معرف المنتج، اسم varchar(10) فريد)")) {
خروج(error_code(-3, LN));
}
// أدخل قطعة من البيانات
if (!sqlite_query($db, " INSERT INTO test (name) VALUES ('heiyeluren')")) {
خروج(error_code(-4, LN));
}
// استرداد البيانات
إذا (!($result = sqlite_query($db, "SELECT * FROM test"))) {
خروج(error_code(-5, LN));
}
// احصل على البيانات المستردة واعرضها
بينما ($array = sqlite_fetch_array($result)) {
صدى "المعرف: ".$array[id] ."<br>الاسم: ".
}
/* وظيفة رمز رسالة الخطأ */
وظيفة error_code($code، $line_num، $debug=DEBUG)
{
إذا ($كود<-6 || كود $>-1) {
عودة كاذبة.
}
التبديل(رمز $) {
الحالة -1: $errmsg = "خطأ في إنشاء ملف قاعدة البيانات.";
استراحة؛
الحالة -2: $errmsg = "فشل فتح ملف قاعدة بيانات sqlite.";
استراحة؛
الحالة -3: $errmsg = "فشل إنشاء الجدول، الجدول موجود بالفعل.";
استراحة؛
الحالة -4: $errmsg = "فشل إدراج البيانات.";
استراحة؛
الحالة -5: $errmsg = "فشل الاستعلام عن بيانات قاعدة البيانات.";
استراحة؛
الحالة -6: $errmsg = "فشل جلب البيانات.";
استراحة؛
الحالة -7: $errmsg = "";
استراحة؛
الافتراضي: $errmsg = "خطأ غير معروف.";
}
$m = "<b>[ خطأ ]</b><br>الملف: ".basename(FL) ." <br>السطر: ".<br>الرسالة: ".$errmsg ."" ;
إذا (! تصحيح الأخطاء $) {
($م = $errmsg);
}
إرجاع مليون دولار؛
}
?>
إذا كنت تعمل بشكل صحيح، فسيقوم البرنامج أخيرًا بإخراج:
ID: 1
الاسم: هييلورين
يتضمن برنامجنا أعلاه وظائف كاملة نسبيًا، بما في ذلك تصحيح الأخطاء ومعالجة الاستثناءات والوصول إلى قاعدة البيانات وما إلى ذلك. ويعتبر تطبيقًا بسيطًا. يمكنك أيضًا توسيعه إذا كنت مهتمًا.
* النهاية:
عملياتنا الأساسية موجودة هنا، وسأكمل المحتوى عندما يتوفر لدي الوقت في المستقبل. إذا كنت مهتمًا، يمكنك البحث عنه ربما تحتاج صفحتك الرئيسية الشخصية إلى قاعدة بيانات صغيرة لمساعدتك.
* الوثائق المرجعية:
http://www.donews.net/limodou/archive/2004/03/21/7997.aspx
http://www.linuxsir.org/bbs/showthread.php?p=1213668#post1213668
* الموقع الرسمي لموارد SQLite: http://www.sqlite.org
بناء جملة SQL: http://www.sqlite.org/lang.html
وثائق التطوير: http://www.sqlite.org/docs.html
الأسئلة الشائعة: http://www.sqlite.org/faq.html
عنوان التنزيل: http://www.sqlite.org/download.html
المؤلف: هييلورين
التاريخ: 2005-8-5