بايثونالتعامل مع قواعد البيانات
- بايثون و قواعد البيانات
- تنصيب الحزمة mysql-connector
- الإتصال بقواعد بيانات MySQL
- أمثلة شاملة حول التعامل مع قواعد البيانات
بايثون و قواعد البيانات
في أغلب التطبيقات التجارية التي ستقوم ببنائها مستقبلاً ستقوم حتماً بالتعامل مع قواعد البيانات لتخزين المعلومات بشكل مرتب و منظم.
هناك أنواع عديدة من قواعد البيانات، و كل نوع منهم له موديول خاص و جاهز للتعامل معه.
في هذا الدرس ستتعلم كيف تتعامل مع قواعد بيانات MySQL من تطبيقاتك التي تطورها بلغة بايثون.
قواعد بيانات MySQL تعتبر أحد أشهر أنواع قواعد البيانات و لهذا تم اعتمادها في الشرح.
سنفترض أنك قمت مسبقاً بتنصيب قواعد بيانات MySQL على جهازك لأننا في هذا الدرس سنشرح طريقة التعامل معها فقط. في حال كنت لا تملك أي فكرة أو خبرة في التعامل مع قواعد اليبانات فسبق و أعددنا مرجع شامل لتعلمها من الصفر.
تنصيب الحزمة mysql-connector
للتعامل مع قواعد بيانات MySQL يجب تنصيب الحزمة mysql-connector المخصصة للتعامل معها.
لذلك إفتح موجه الأوامر في PyCharm و أكتب الأمر التالي.
بعد تنصيب الحزمة mysql-connector بنجاح أصبحت قادراً على تضمينها و استخدام الدوال الموجودة فيها.
الإتصال بقواعد بيانات MySQL
لاستخدام الدوال التي تسمح بالإتصال بقواعد بيانات MySQL يجب تضمين الموديول mysql.connector من الحزمة mysql-connector التي قمنا بتحميلها قبل قليل من خلال كتابة السطر التالي.
بعد تضمين الموديول mysql-connector يمكننا الآن البدء باستخدام الدوال connect()، cursor()، execute() و غيرهم من الدوال الجاهزة في هذا الموديول و المخصصة للتعامل مع قواعد البيانات.
الدالة connect()
هذه الدالة تستخدم لإنشاء كائن نوعه MySQLConnection يسمح لنا بالإتصال بقاعدة البيانات، و هي مبنية كالتالي.
- الباراميتر host نمرر له المسار الذي يشتغل عليه خادم قاعدة البيانات.
- الباراميتر user نمرر له إسم المستخدم الذي سنتعامل من خلاله مع قاعدة البيانات.
- الباراميتر passwd نمرر له كلمة مرور المستخدم الذي سنتعامل من خلاله مع قاعدة البيانات.
- الباراميتر database نمرر له إسم قاعدة البيانات التي ننوي التعامل معها.
المعلومات الإفتراضية للإتصال بقواعد بيانات MySQL في حال لم تقم أنت بتغييرها تكون على النحو التالي:
- إسم المستخدم الإفتراضي هو 'root'
- المستخدم الإفتراضي ليس له كلمة مرور، أي كلمة مروره عبارة عن نص فارغ ''
- في حال كانت قاعدة البيانات موجودة على خادم محلي (أي الحاسوب نفسه)، فإن قيمة الباراميتر host ستكون 'localhost'
في كل الأمثلة التي سنقوم فيها بالإتصال بقواعد البيانات سنستخدم هذه المعلومات لإنشاء الإتصال.
في المثال التالي قمنا بتضمين الحزمة mysql-connector، ثم قمنا باستدعاء الدالة connect() لإنشاء كائن يسمح لنا بالإتصال بخادم قواعد البيانات.
بعدها قمنا بعرض هذا الكائن للتأكد فقط منه قد تم إنشاء هذا الكائن في الذاكرة.
مثال
النتيجة ستكون مشابهة لما يلي.
الدالة cursor()
هذه الدالة تستدعى من الكائن الذي ترجعه الدالة connect()، و هي ترجع كائن نوعه MySQLCursor.
كائن الـ MySQLCursor يحتوي على دوال جاهزة يمكن استخدامها من أجل:
- إرسال إستعلامات ( Queries ) إلى خادم قاعدة البيانات.
- الحصول على النتائج ( Results ) التي يرجعها خادم قاعدة البيانات بعد أن يتم تنفيذ الإستعلام.
الدالة execute(operation)
هذه الدالة تستدعى من الكائن الذي ترجعه الدالة cursor()، من أجل إرسال إستعلامات إلى خادم قاعدة البيانات.
مكان الباراميتر operation نمرر الإستعلام الذي نريد إرساله إلى خادم قاعدة البيانات على شكل نص.
أمثلة شاملة حول التعامل مع قواعد البيانات
ستتعلم من الأمثلة التالية طريقة إنشاء قاعدة بيانات بسيطة إسمها company، و فيها سننشئ جدول لتخزين بيانات الموظفين إسمه employee.
و سنفترض أن كل موظف له إسم ( name )، رقم هاتف ( phone )، و رقم تعرفة ( id ) خاص فيه.
الأمثلة التالية موضوعة بشكل مترابط و دقيق بحيث تعلمك طريقة إنشاء قاعدة البيانات، إنشاء جداول فيها، تعديل حقول الجدول، تعبئة الجداول بالبيانات، تعديل بيانات الجدول إلخ..
المثال الأول
المثال التالي يعلمك طريقة إنشاء قاعدة بيانات.
فعلياً، سنقوم بإنشاء قاعدة بيانات جديدة إسمها company.
المثال الثاني
المثال التالي يعلمك طريقة إنشاء جدول في قاعدة البيانات.
فعلياً، سنقوم بإنشاء جدول إسمه employee بداخل قاعدة البيانات company التي قمنا بإنشائها في المثال السابق.
المثال الثالث
المثال التالي يعلمك طريقة إضافة عامود جديد في الجدول.
فعلياً، سنقوم بإضافة عامود جديد إسمه phone في الجدول employee الذي قمنا بإنشائه في المثال السابق.
المثال الرابع
المثال التالي يعلمك طريقة إضافة سطر ( أي سجل ) في الجدول.
فعلياً، سنقوم بتخزين معلومات موظف في الجدول employee الذي قمنا بإنشائه في الأمثلة السابقة.
المثال الخامس
المثال التالي يعلمك طريقة إضافة عدة أسطر ( سجلات ) في الجدول دفعة واحدة.
فعلياً، سنقوم بتخزين معلومات 5 موظفين في الجدول employee الذي قمنا بإنشائه في الأمثلة السابقة.
المثال السادس
المثال التالي يعلمك طريقة جلب كل البيانات المخزنة في جدول و عرضها بشكل مرتب.
فعلياً، سنقوم بجلب معلومات كل الموظفين الذين قمنا بتخزينهم في الأمثلة السابقة في الجدول employee.
ملاحظة: في الواقع قمنا بوضع ثلاث أمثلة، و كل مثال إعتمدنا فيه طريقة مختلفة للتعامل مع البيانات التي سيتم جلبها.
المثال السابع
المثال التالي يعلمك طريقة جلب البيانات المخزنة في جدول ضمن شروط محددة.
ملاحظة: في الواقع قمنا بوضع أربع أمثلة، و كل مثال إعتمدنا فيه طريقة مختلفة للتعامل مع البيانات التي سيتم جلبها.
المثال الثامن
المثال التالي يعلمك طريقة تعديل البيانات المخزنة في جدول.
فعلياً، سنقوم بتغيير إسم الموظف الذي يملك رقم id يساوي 3 في الجدول employee.
المثال التاسع
المثال التالي يعلمك طريقة حذف البيانات المخزنة في جدول.
ملاحظة: في الواقع قمنا بوضع مثالين. الأول يعلمك طريقة حذف سطر واحد من الجدول، و الثاني يعلمك طريقة حذف كل الأسطر الموجودة فيه.
المثال العاشر
المثال التالي يعلمك طريقة التعامل مع قواعد البيانات بأفضل أسلوب ممكن لضمان أن لا يحدث أي خطأ يؤدي إلى إيقاف البرنامج بشكل مفاجئ.
لمزيد من التفاصيل حول التعامل مع قواعد بيانات MySQL ننصحك بتصفح المرجع الرسمي لهذه الحزمة.