章節
插入表
要把記錄插入到MySQL中的表中,使用“INSERT INTO”語句。
示例
在“customers”表中插入一條記錄:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="你的用戶名",
passwd="你的密碼",
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, "條記錄已插入")
注意: 調用
mydb.commit()
語句提交修改,否則修改不會生效。
插入多行
要將多行插入到表中,使用executemany()
方法。
executemany()
方法的第二個參數是一個元組列表,包含了要插入的數據:
示例
填寫“客戶”表格:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="你的用戶名",
passwd="你的密碼",
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, " 條已經插入")
獲取插入行的ID
可以通過查詢cursor對象,獲得剛才插入行的id。
注意: 如果插入多行,則返回最后插入行的id。
示例
插入一行,並返回ID:
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="你的用戶名",
passwd="你的密碼",
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 條記錄插入, ID:", mycursor.lastrowid)