106- كورس لغة بايثون Python MySQL شرح – MySQL Join

شرح MySQL Join في بايثون

فهم MySQL Join في بايثون

تعتبر عملية الربط (Join) في قواعد البيانات من التقنيات الأساسية التي تُستخدم لدمج البيانات من جداول متعددة بناءً على علاقة مشتركة بين هذه الجداول. في MySQL، تتيح لك عملية الربط استخراج بيانات ذات صلة من جداول مختلفة بطريقة منسقة وفعالة. عندما يتم دمج MySQL مع بايثون، يمكن للمستخدمين استخدام مكتبة مثل mysql-connector-python لإجراء عمليات الربط بسهولة من داخل تطبيقاتهم البرمجية.

أنواع MySQL Join

تُقدم MySQL عدة أنواع من عمليات الربط التي يمكن استخدامها بناءً على احتياجات المشروع. الأنواع الأساسية تشمل:

  • INNER JOIN: يتم استخدامه لاسترجاع السجلات التي تحتوي على قيم مطابقة في كلا الجدولين.
  • LEFT JOIN: يسترجع جميع السجلات من الجدول الأول والقيود المتطابقة من الجدول الثاني. إذا لم توجد قيود متطابقة، تُعاد القيم الفارغة.
  • RIGHT JOIN: عكس LEFT JOIN، حيث يسترجع جميع السجلات من الجدول الثاني والقيود المتطابقة من الجدول الأول.
  • FULL JOIN: يسترجع جميع السجلات عندما يوجد تطابق في أي من الجدولين. مع الأسف، MySQL لا يدعم FULL JOIN مباشرة، ولكن يمكن محاكاته باستخدام LEFT JOIN و RIGHT JOIN مع UNION.

تنفيذ MySQL Join باستخدام بايثون

يمكنك استخدام مكتبة mysql-connector-python لتنفيذ عمليات الربط في MySQL من خلال بايثون. في المثال التالي، سنقوم بإنشاء اتصال بقاعدة البيانات وتنفيذ عملية INNER JOIN بين جدولين هما employees وdepartments.

import mysql.connector

# إنشاء اتصال بقاعدة البيانات
connection = mysql.connector.connect(
    host='localhost',
    user='your_username',
    password='your_password',
    database='your_database'
)

cursor = connection.cursor()

# تنفيذ استعلام INNER JOIN
query = """
SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id
"""

cursor.execute(query)

# جلب النتائج
results = cursor.fetchall()

for row in results:
    print(f"Employee Name: {row[0]}, Department: {row[1]}")

# إغلاق الاتصال
cursor.close()
connection.close()

في هذا المثال، نقوم بربط الجدولين employees وdepartments باستخدام العمود department_id في الجدول الأول وid في الجدول الثاني. يتم استخراج اسم الموظف واسم القسم لكل موظف.