Bài 4 – Chèn dữ liệu vào bảng cho cơ sở dữ liệu MySQL trong Python

Câu lệnh INSERT INTO được sử dụng để thêm một bản ghi vào bảng. Trong Python, chúng ta có thể sử dụng (%s) thay cho các giá trị.

Kết nối Python với cơ sở dữ liệu MySQL

Chèn dữ liệu cho một bản ghi vào bảng

import mysql.connector

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

mycursor = mydb.cursor()

sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
try:
  mycursor.execute(sql, val)
  mydb.commit()
except:
  mydb.rollback()

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

Lưu ý: Câu lệnh mydb.commit () Cần phải thực hiện các thay đổi, nếu không, không có thay đổi nào được thực hiện đối với bảng.

Chèn nhiều bản ghi cùng lúc vào bảng

Để chèn nhiều bản ghi cùng lúc vào bảng, ta sử dụng phương thức executemany().Tham số thứ 2 trong phương thức executemany() là danh sách của tuples chứa dữ liệu bạn muốn chèn.

import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",
  user="yourusername",
  password="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')
]

try:
   mycursor.executemany(sql, val)
   mydb.commit()
except:
   mydb.rollback()

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

Chúc bạn thành công!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *