PyMySQL: مشغل MySQL لـ Python

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

مقدمة

MySQL — واحدة من أشهر قواعد البيانات العلائقية، وتُستخدم على نطاق واسع في تطوير الويب والحلول المؤسسية. للتعامل مع MySQL في Python، يُستخدم غالبًا مشغل PyMySQL — وهو تطبيق نقي بلغة Python لبروتوكول MySQL. يتميز بسهولة الاستخدام، والدعم النشط، والتوافق مع المكتبات الشهيرة مثل SQLAlchemy وPandas.

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

ما هو PyMySQL

PyMySQL هي مكتبة عميل بلغة Python تُطبّق بروتوكول MySQL Client/Server. توفر واجهة للاتصال بخادم MySQL وتنفيذ استعلامات SQL. تتبع المكتبة مواصفات Python Database API 2.0 (PEP 249)، مما يضمن التوافق مع تطبيقات Python الأخرى.

الميزات الرئيسية لـ PyMySQL

  • Python نقي: لا يتطلب تبعيات خارجية بلغة C/C++
  • التوافق: يدعم MySQL الإصدار 5.5 وما فوق
  • الأمان: حماية مدمجة ضد هجمات SQL Injection
  • الأداء: مُحسَّن لتنفيذ الاستعلامات بسرعة
  • سهولة الاستخدام: واجهة برمجية بديهية

التثبيت والاتصال بـ MySQL

التثبيت

pip install pymysql

للوظائف الإضافية، يُوصى أيضًا بتثبيت:

pip install pymysql[rsa]  # لدعم مصادقة RSA

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

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='test_db',
    port=3306,
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

DictCursor يتيح لك الحصول على النتائج على شكل قواميس بدلاً من tuples، مما يجعل التعامل مع البيانات أكثر سهولة.

معاملات الاتصال

المعامل الوصف النوع القيمة الافتراضية
host مضيف خادم MySQL str 'localhost'
port منفذ الخادم int 3306
user اسم المستخدم str None
password كلمة المرور str None
database اسم قاعدة البيانات str None
charset ترميز الأحرف str 'utf8mb4'
autocommit الالتزام التلقائي bool False
cursorclass فئة المؤشر class Cursor

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

# إنشاء قاعدة بيانات
with connection.cursor() as cursor:
    cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")

# إنشاء جدول
with connection.cursor() as cursor:
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS users (
            id INT AUTO_INCREMENT PRIMARY KEY,
            name VARCHAR(100) NOT NULL,
            email VARCHAR(100) UNIQUE,
            age INT,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
        )
    """)
connection.commit()

عمليات CRUD باستخدام PyMySQL

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

# إدراج سجل واحد
with connection                    

توصيات