إضافة سطر جديد في الجدول في بايثون

 طريقة إضافة سطر جديد في الجدول في بايثون

المثال التالي يعلمك طريقة إضافة سطر ( أي سجل ) في الجدول employee الذي قمنا بإنشاءه في الأمثلة السابقة.
المعلومات التي سنضيفها على سطر في الجدول, سنقوم بتجهيزها بشكل مرتب في tuple.


معلومة تقنية

لحفظ أي معلومات قمت بإضافتها, تعديلها أو مسحها من أي جدول في قاعدة البيانات, يجب أن تستدعي الدالة commit() لحفظ التغيرات.


مثال

Test.py
                    # mysql.connector هنا قمنا بتضمين كل محتوى الموديول
      import mysql.connector

      # MySQL حتى ترجع كائن يسمح لنا بالإتصال بقواعد بيانات connect() هنا قمنا باستدعاء الدالة
      db = mysql.connector.connect(
      user='root',
      passwd='',
      host='localhost',
      database='company'
      )

      # يسمح لنا بالتعامل مع قاعدة البيانات cursor لإنشاء كائن cursor() هنا قمنا باستدعاء الدالة
      cursor = db.cursor()

      # 'employee' وضعنا فيه نص الإستعلام الذي يسمح بإضافة سطر جديد في الجدول sql المتغير
      sql = 'INSERT INTO employee(name, phone) values (%s, %s)'

      # يمثل القيم التي ستوضع بالترتيب في الجدول tuple عبارة عن val الكائن
      val = ('Ahmad', '96101200155')

      # sql و تمرير نص الإستعلام المخزن في المتغير execute() هنا قمنا باستدعاء الدالة
      # val و من ثم القيم التي سيتم دمجها مع نص الإستعلام و التي قمنا بتخزينها في الكائن
      cursor.execute(sql, val)

      # لحفظ التغيرات التي تم إجراءها في قاعدة البيانات commit() هنا قمنا باستدعاء الدالة
      db.commit()

      # هنا قمنا بطباعة عدد الأسطر التي تم إضافتها في الجدول بسبب الإستعلام الذي تم إرساله سابقاً
      print(cursor.rowcount, 'record(s) inserted')

      # هنا قمنا بإغلاق الإتصال مع قاعدة البيانات
      cursor.close()
      db.close()
    

إذا لم يظهر لك أي خطأ بعد تشغيل الملف Test فهذا يعني أنه تم إضافة سطر جديد في الجدول employee.

أيضاً سيتم طباعة الجملة التالية في الكونسول.

1 record(s) inserted


معلومة تقنية

قبل إرسال الإستعلام إلى قاعدة البيانات, قامت الدالة execute() بدمج نص الإستعلام و القيم التي مررناها لها كالتالي.

                  INSERT INTO employee(name, phone) values ('Ahmad', '9610200155')