أساسيات العمل مع SQL في Python: تثبيت واستخدام SQLAlchemy
يُعد التعامل مع قواعد البيانات جزءًا لا يتجزأ من تطوير البرمجيات الحديثة. سواء كنت تطور تطبيق ويب، أو تنشئ نصوصًا لتحليل البيانات، أو تبني خدمات خلفية (Backend)، فإن مهارات إدارة البيانات باستخدام SQL تظل ضرورية للغاية.
في هذه المقالة، سنستعرض بالتفصيل كيفية استخدام SQL في Python من خلال المكتبة القوية SQLAlchemy. ستتعلم كيفية تثبيت المكتبة، وإعداد الاتصالات بقواعد بيانات مختلفة، وتنفيذ العمليات الأساسية على البيانات.
ما هي SQLAlchemy؟
تُعد SQLAlchemy واحدة من أشهر مكتبات Python وأكثرها فعالية للعمل مع قواعد البيانات العلائقية. توفر هذه المكتبة طريقة بسيطة ومرنة للتفاعل مع أنظمة إدارة قواعد البيانات المختلفة عبر كود Python.
تدعم SQLAlchemy العمل مع أنظمة إدارة قواعد البيانات التالية:
- MySQL
- PostgreSQL
- SQLite
- Oracle
- Microsoft SQL Server
الميزات الرئيسية لـ SQLAlchemy
توفر مكتبة SQLAlchemy للمطورين مجموعة واسعة من الإمكانيات:
- دعم مباشر لاستعلامات SQL لتحقيق أقصى مرونة
- ORM (Object-Relational Mapping) للتعامل مع قواعد البيانات عبر كلاسات Python
- واجهة برمجة تطبيقات (API) موحدة لأنظمة إدارة قواعد البيانات المختلفة
- أداء عالٍ وسهولة في كتابة الكود
- إدارة تلقائية للاتصالات بقاعدة البيانات
- حماية مدمجة ضد هجمات SQL Injection
- دعم المعاملات (Transactions) ومجموعات الاتصالات (Connection Pools)
تثبيت SQLAlchemy في Python
التثبيت الأساسي
عملية تثبيت SQLAlchemy بسيطة للغاية وتتم عبر مدير الحزم pip:
pip install SQLAlchemy
التثبيت في Jupyter Notebook
للعمل في بيئة Jupyter Notebook، استخدم الأمر التالي:
!pip install SQLAlchemy
تثبيت المشغلات (Drivers) الإضافية
قد تحتاج إلى مشغلات إضافية للعمل مع أنظمة قواعد بيانات مختلفة:
pip install pymysql # لقاعدة بيانات MySQL
pip install psycopg2 # لقاعدة بيانات PostgreSQL
pip install cx_Oracle # لقاعدة بيانات Oracle
pip install pyodbc # لقاعدة بيانات SQL Server
التحقق من صحة التثبيت
بعد التثبيت، تحقق من إصدار SQLAlchemy:
import sqlalchemy
print(sqlalchemy.__version__)
بداية سريعة مع SQLAlchemy
استيراد الوحدات الضرورية
للبدء مع SQLAlchemy، يجب استيراد الوحدات الأساسية:
from sqlalchemy import create_engine, Column, Integer, String, DateTime
from sqlalchemy.orm import declarative_base, sessionmaker
from datetime import datetime
إعداد الاتصال بقاعدة البيانات
لتوضيح الإمكانيات، سنستخدم SQLite - قاعدة البيانات خفيفة الوزن المدمجة في Python:
engine = create_engine('sqlite:///example.db', echo=True)
يسمح المعامل echo=True برؤية جميع استعلامات SQL التي ينفذها SQLAlchemy. هذا مفيد لتصحيح الأخطاء وفهم كيفية عمل ORM.
إنشاء النماذج باستخدام ORM
يُعد إنشاء نماذج البيانات أساس العمل مع ORM في SQLAlchemy:
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String, nullable=False)
age = Column(Integer)
created_at = Column(DateTime, default=datetime.utcnow)
def __repr__(self):
return f"<User(name='{self.name}', age={self.age})>"