Python MySQL Chèn vào bảng
Chèn vào bảng
Để điền vào một bảng trong MySQL, hãy sử dụng câu lệnh "CHÈN VÀO".
Thí dụ
Chèn bản ghi vào bảng "khách hà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")
mycursor.execute(sql,
val)
mydb.commit()
print(mycursor.rowcount, "record inserted.")
Quan trọng!:mydb.commit()
Chú ý câu lệnh:.
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 hàng
Để chèn nhiều hàng vào một bảng, hãy sử dụng
executemany()
phương pháp này.
Tham số thứ hai của executemany()
phương thức là danh sách các bộ giá trị, chứa dữ liệu bạn muốn chèn:
Thí dụ
Điền vào bảng "khách hàng" với dữ liệu:
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')
]
mycursor.executemany(sql, val)
mydb.commit()
print(mycursor.rowcount, "was inserted.")
Nhận ID đã chèn
Bạn có thể lấy id của hàng bạn vừa chèn bằng cách hỏi đối tượng con trỏ.
Lưu ý: Nếu bạn chèn nhiều hàng, id của hàng được chèn cuối cùng sẽ được trả về.
Thí dụ
Chèn một hàng và trả lại ID:
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 = ("Michelle", "Blue Village")
mycursor.execute(sql, val)
mydb.commit()
print("1 record
inserted, ID:", mycursor.lastrowid)