منبع اصلی نوشتار زیر در این لینک قرار دارد

آموزش کار با MySQL در پایتون؛ بخش چهارم، نوشتن اطلاعات در جداول

با بخش چهارم از آموزش استفاده از سیستم مدیریت پایگاه داده MySQL در پایتون، با ما در اوپن مایند همراه باشید!

بخش قبلی این سری آموزشی، در این صفحه منتشر شده است: آموزش کار با MySQL در پایتون؛ بخش سوم، ساخت جدول

در این بخش و پس از یادگیری نحوه ساخت پایگاه داده و جدول و اتصال به آن ها در بخش های قبلی، درباره اضافه کردن اطلاعات به جداول موجود در MySQL توسط کدنویسی در پایتون صحبت می کنیم.

اضافه کردن یک رکورد اطلاعات درون جدول

برای اضافه کردن اطلاعات درون یک جدول در MySQL از دستور

INSERT INTO
استفاده می کنیم.

جدول “customers” را که در آموزش قبلی ساختیم به یاد دارید؟ حالا می خواهیم درون آن اطلاعات یک مشتری (نام و آدرس) را اضافه کنیم. به کد زیر دقت کنید:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
mycursor.execute(sql, val)

mydb.commit()

print(mycursor.rowcount, "record inserted.")

به خط شانزدهم کد که هایلایت شده دقت کنید. باید بدانید که:

توجه! برای این که عملیات نوشتن روی پایگاه داده اعمال شود و به طور واقعی و کامل اطلاعات درج شود، اجرای کد

()mydb.commit
ضروری است و اصطلاحاً نوشتن را commit می کند.

اضافه کردن چندین رکورد درون جدول

برای اضافه کردن چندین رکورد اطلاعات (ردیف) به صورت یکباره، از تابع

()executemany
استفاده می کنیم.

این تابع دو پارامتر ورودی نیاز دارد، اولی دستور زبان SQL لازم برای اضافه کردن، و دومی هم لیستی از tuple های حاوی اطلاعات (نام و آدرس) است.

مثال زیر برای پر کردن جدول “customers” با اطلاعات سیزده مشتری است.

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
  ('Peter', 'Lowstreet 4'),
  ('Amy', 'Apple st 652'),
  ('Hannah', 'Mountain 21'),
  ('Michael', 'Valley 345'),
  ('Sandy', 'Ocean blvd 2'),
  ('Betty', 'Green Grass 1'),
  ('Richard', 'Sky st 331'),
  ('Susan', 'One way 98'),
  ('Vicky', 'Yellow Garden 2'),
  ('Ben', 'Park Lane 38'),
  ('William', 'Central st 954'),
  ('Chuck', 'Main Road 989'),
  ('Viola', 'Sideway 1633')
]

mycursor.executemany(sql, val)

mydb.commit()

print(mycursor.rowcount, "was inserted.")

اگر در حین اجرای کد بالا خطایی دریافت نکردید، می توانید مطمئن باشید که اطلاعات مشتری ها به جدول مربوطه اضافه شده است.

دریافت شماره ردیف (ID) رکورد اضافه شده

اگر جدول “customers” بخش قبلی آموزش را کاملاً خوب به یاد داشته باشد، می دانید که ما برای هر ردیف یک شماره (شناسه) ردیف داریم؛ که به طور خودکار آخرین مقدار آن برای ردیف اضافه شده جدید یکی زیاد می شود.
حالا در مثال زیر می خواهیم از فیلد

lastrowid
شئ
mycursor
استفاده کنیم و مقدار شماره ردیف آخرین رکورد اضافه شده را چاپ کنیم.

به مثال ساده زیر دقت کنید:

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  passwd="yourpassword",
  database="mydatabase"
)

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("Michelle", "Blue Village")
mycursor.execute(sql, val)

mydb.commit()

print("1 record inserted, ID:", mycursor.lastrowid)

در بخش بعدی این سری آموزشی، بازیابی و خواندن اطلاعات از جداول پایگاه داده را با انجام چندین پرس و جوی مختلف بررسی کنیم.

با اوپن مایند، وبسایت آموزش الگوریتم ها و برنامه نویسی، همراه باشید!



برچسب ها :