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ị.
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!