البرمجة

استكشاف SQLAlchemy: إدارة بيانات قاعدة البيانات بسهولة مع Python

في إطار العمل مع قواعد البيانات باستخدام SQLAlchemy، تبرز أهمية فهم كيفية تنظيم السجلات، وكذلك الطرق المتاحة للتحكم في عدد السجلات واسترجاعها بشكل عشوائي. يعتبر SQLAlchemy إطار عمل قويًا يُستخدم لربط تطبيقات Python بقواعد البيانات، ويتيح للمطورين التفاعل مع البيانات بشكل بسيط وفعّال.

أولاً وقبل البدء في التحدث عن ترتيب السجلات، يجب أن نتناول مفهوم الجداول. في SQLAlchemy، يتم تمثيل الجداول باستخدام كائنات Table، والتي تحدد البنية الأساسية للجداول في قاعدة البيانات. يمكننا تعريف الجداول باستخدام MetaData وتحديدها بمعلومات مثل اسم الجدول وأعمدته وأنواع البيانات.

python
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String # تعريف محرك قاعدة البيانات والميتاداتا engine = create_engine('sqlite:///:memory:') metadata = MetaData() # تعريف جدول الطلبات orders = Table('orders', metadata, Column('id', Integer, primary_key=True), Column('customer_name', String), Column('total_amount', Integer) ) # إنشاء الجدول في قاعدة البيانات metadata.create_all(engine)

الآن، بمجرد أن لدينا هيكل الجدول، يمكننا بسهولة إضافة سجلات باستخدام عمليات الإدراج (INSERT). لكن كيف يمكننا تحديد ترتيب السجلات أو الحد من عددها؟ يُستخدم في ذلك استعلامات SQLAlchemy.

python
from sqlalchemy import select # إدراج سجلات engine.execute(orders.insert(), [ {'customer_name': 'John Doe', 'total_amount': 100}, {'customer_name': 'Jane Smith', 'total_amount': 150}, # يمكنك إضافة المزيد من السجلات هنا ]) # استعلام لاسترجاع السجلات بترتيب محدد select_query = select([orders]).order_by(orders.c.total_amount) result = engine.execute(select_query) for row in result: print(row)

تحديد عدد السجلات يتم بسهولة باستخدام الكلمة الرئيسية limit. على سبيل المثال، إذا أردنا الحصول على أول اثنين من السجلات:

python
select_query = select([orders]).limit(2) result = engine.execute(select_query) for row in result: print(row)

أما بالنسبة لاسترجاع السجلات بشكل عشوائي، يمكننا استخدام دالة func.random() (يرجى مراجعة الوثائق الخاصة بالقاعدة بيانات التي تستخدمها لضمان دعم هذه الوظيفة):

python
from sqlalchemy.sql.expression import func select_query = select([orders]).order_by(func.random()).limit(2) result = engine.execute(select_query) for row in result: print(row)

تحقيق توازن بين ترتيب السجلات والحصول على عدد معين واسترجاع سجلات بشكل عشوائي يُظهر القوة والمرونة التي يقدمها SQLAlchemy في التعامل مع البيانات. من خلال هذه الإمكانيات، يمكن للمطورين تحقيق أداء فعّال وتلبية احتياجات التطبيقات المتعددة.

المزيد من المعلومات

بالطبع، سنوسع في المزيد من المعلومات حول SQLAlchemy وكيفية التحكم في البيانات بشكل أفضل، بدايةً من إضافة السجلات وصولاً إلى التعامل مع العلاقات بين الجداول.

إضافة سجلات بشكل دينامي

عند إدراج سجلات جديدة، يمكن استخدام العمليات insert لتنفيذ هذه العملية. يمكنك أيضًا استخدام values لإدراج سجلات محددة بشكل أسهل:

python
# إدراج سجل جديد باستخدام insert engine.execute(orders.insert(), {'customer_name': 'Alice', 'total_amount': 200}) # إدراج عدة سجلات باستخدام values engine.execute(orders.insert().values([ {'customer_name': 'Bob', 'total_amount': 120}, {'customer_name': 'Eve', 'total_amount': 180} ]))

تحديث السجلات

لتحديث بيانات السجلات، يمكن استخدام عمليات update. على سبيل المثال، إذا أردت تحديث مبلغ إجمالي الطلب لعميل معين:

python
# تحديث مبلغ الطلب لعميل محدد update_query = orders.update().where(orders.c.customer_name == 'Alice').values(total_amount=250) engine.execute(update_query)

حذف السجلات

لحذف سجلات، يمكن استخدام عمليات delete. في هذا المثال، سنقوم بحذف جميع السجلات التي تحمل اسم “Bob”:

python
# حذف السجلات حسب الشرط delete_query = orders.delete().where(orders.c.customer_name == 'Bob') engine.execute(delete_query)

التعامل مع العلاقات بين الجداول

في بنية قاعدة البيانات، قد تحتاج إلى التعامل مع علاقات بين الجداول. يمكن تحديد العلاقات باستخدام كائنات ForeignKey. على سبيل المثال، إذا كنت تريد إضافة جدول جديد لتخزين تفاصيل العناوين لكل عميل:

python
addresses = Table('addresses', metadata, Column('id', Integer, primary_key=True), Column('customer_id', Integer, ForeignKey('orders.id')), Column('address', String) ) # إنشاء الجدول في قاعدة البيانات metadata.create_all(engine)

في هذا المثال، قمنا بإضافة جدول addresses وربطه بجدول orders باستخدام ForeignKey. هذا يعني أن كل عنوان يرتبط بسجل في جدول orders عبر مفتاح أساسي خارجي.

هذه النقاط تمثل لمحة سريعة عن بعض الأساسيات في SQLAlchemy، والإطار يوفر ميزات إضافية وقوية لتسهيل التعامل مع قواعد البيانات بشكل متقدم. باستكشاف الوثائق الرسمية لـ SQLAlchemy، يمكنك اكتساب فهم أعمق حول مواضيع مثل التراجع عن التغييرات، واستخدام العمليات الجماعية، والتعامل مع مفاتيح خارجية والعديد من المفاهيم الأخرى المتقدمة.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر