كيفية التعامل مع البيانات من قواعد البيانات باستخدام Python و SQLite

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 10 سبتمبر 2024

محتوى المقال

كيفية التعامل مع البيانات من قواعد البيانات باستخدام Python و SQLite

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

ما هي SQLite ولماذا تستخدمها؟

SQLite هي قاعدة بيانات مدمجة وخفيفة الوزن تُستخدم على نطاق واسع في التطبيقات التي تحتاج إلى تخزين البيانات محليًا دون تعقيدات إدارة خادم قاعدة بيانات. تُعد مثالية للتطبيقات المحمولة، الألعاب، والمواقع الصغيرة.

إنشاء قاعدة بيانات SQLite

الخطوة الأولى للتعامل مع قواعد البيانات هي إنشاء قاعدة بيانات. باستخدام مكتبة sqlite3 في Python، يمكنك إنشاء قاعدة بيانات ببساطة عن طريق إنشاء اتصال بملف قاعدة بيانات:

import sqlite3

# إنشاء اتصال بقاعدة البيانات (سيتم إنشاء ملف قاعدة البيانات إذا لم يكن موجودًا)
conn = sqlite3.connect('example.db')
# إنشاء كائن المؤشر لتنفيذ الأوامر
cursor = conn.cursor()

في هذا المثال، نقوم بإنشاء اتصال بقاعدة بيانات باسم example.db. إذا لم يكن الملف موجودًا، سيتم إنشاؤه تلقائيًا.

إنشاء جداول في قاعدة البيانات

بعد إنشاء قاعدة البيانات، الخطوة التالية هي إنشاء الجداول التي ستخزن البيانات. يتم ذلك باستخدام أوامر SQL التي يتم تنفيذها من خلال كائن المؤشر:

# إنشاء جدول باسم users
cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY, name TEXT NOT NULL, age INTEGER, email TEXT UNIQUE ) ''')
# حفظ التغييرات
conn.commit()

في هذا المثال، نقوم بإنشاء جدول باسم users يحتوي على أعمدة للمعرف، الاسم، العمر، والبريد الإلكتروني. نستخدم conn.commit() لحفظ التغييرات التي أجريناها على قاعدة البيانات.

إدراج البيانات في الجداول

بعد إنشاء الجدول، يمكنك البدء في إدخال البيانات باستخدام أمر INSERT:

# إدراج بيانات في جدول users
cursor.execute(''' INSERT INTO users (name, age, email) VALUES (?, ?, ?) ''', ('أحمد', 25, 'ahmed@example.com'))

# إدراج عدة صفوف دفعة واحدة
users = [('سارة', 30, 'sara@example.com'), ('علي', 22, 'ali@example.com')]
cursor.executemany(''' INSERT INTO users (name, age, email) VALUES (?, ?, ?) ''', users)
conn.commit()

في هذا المثال، نقوم بإدخال بيانات مستخدمين باستخدام cursor.execute() وcursor.executemany() لإدخال عدة صفوف دفعة واحدة.

استرجاع البيانات من الجداول

لاسترجاع البيانات من قاعدة البيانات، نستخدم أمر SELECT مع تنفيذ الاستعلام من خلال كائن المؤشر:

# استرجاع جميع البيانات من جدول users
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()

# عرض البيانات
for row in rows:
    print(row)

في هذا المثال، نقوم باسترجاع جميع البيانات من جدول users وعرضها باستخدام حلقة for. الأمر cursor.fetchall() يجلب جميع الصفوف الناتجة عن الاستعلام.

تحديث البيانات في الجداول

لتحديث البيانات الموجودة في الجدول، نستخدم أمر UPDATE:

# تحديث بيانات مستخدم بناءً على البريد الإلكتروني
cursor.execute(''' UPDATE users SET age = ? WHERE email = ? ''', (26, 'ahmed@example.com'))
conn.commit()

في هذا المثال، نقوم بتحديث العمر للمستخدم صاحب البريد الإلكتروني "ahmed@example.com". يتم حفظ التغييرات باستخدام conn.commit().

حذف البيانات من الجداول

لحذف بيانات من الجدول، نستخدم أمر DELETE:

# حذف مستخدم من جدول users بناءً على البريد الإلكتروني
cursor.execute(''' DELETE FROM users WHERE email = ? ''', ('ali@example.com',))
conn.commit()

في هذا المثال، نقوم بحذف المستخدم صاحب البريد الإلكتروني "ali@example.com". مرة أخرى، نستخدم conn.commit() لحفظ التغييرات.

إغلاق الاتصال بقاعدة البيانات

بعد الانتهاء من العمليات على قاعدة البيانات، من المهم إغلاق الاتصال بها لتجنب تسريب الموارد:

# إغلاق الاتصال بقاعدة البيانات
conn.close()

في هذا المثال، نقوم بإغلاق الاتصال بقاعدة البيانات باستخدام conn.close().

مقارنة بين SQLite وقواعد البيانات الأخرى

على الرغم من أن SQLite تُعد خيارًا ممتازًا للمشاريع الصغيرة والمتوسطة، إلا أن هناك قواعد بيانات أخرى مثل MySQL و PostgreSQL توفر ميزات متقدمة وإدارة أفضل للبيانات في التطبيقات الكبيرة. إليك مقارنة بسيطة:

  • SQLite: قاعدة بيانات خفيفة ولا تتطلب خادمًا، مناسبة للتطبيقات الفردية والأنظمة المدمجة.
  • MySQL: قاعدة بيانات قوية تُستخدم على نطاق واسع في الويب وتوفر أداءً جيدًا وإدارة معقدة للبيانات.
  • PostgreSQL: قاعدة بيانات متقدمة مفتوحة المصدر تُعرف بقدرتها العالية على التعامل مع البيانات والعلاقات المعقدة.

الخلاصة

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

طور مهاراتك: مقالات يجب قراءتها في البرمجة