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ị. Phương thức cursor.execute[] được sử dụng để insert 1 bản ghi vào table. Chúng ta cung cấp các giá trị thực tế trong một tuple trong phương thức cursor.execute[]. INSERT 1 bản ghi
import mysql.connector
#tạo đối tượng connection
myconn = mysql.connector.connect[host = "localhost", user = "root",
passwd = "1234567890", database = "PythonDB"]
#tạo đối tượng cursor
cur = myconn.cursor[]
sql = ["insert into Employee[name, id, salary, dept_id, branch_name] "
+ "values [%s, %s, %s, %s, %s]"]
#giá trị của một row được cung cấp dưới dạng tuple
val = ["The Mac", 10001, 25000.00, 101, "Hanoi"]
try:
#inserting the values into the table
cur.execute[sql,val]
#commit the transaction
myconn.commit[]
except:
myconn.rollback[]
print[cur.rowcount,"record inserted!"]
myconn.close[]
Kết quả:
INSERT nhiều bản ghi
Phương thức cursor.executemany[] được sử dụng để insert 1 bản ghi vào table.
import mysql.connector #tạo đối tượng connection myconn = mysql.connector.connect[host = "localhost", user = "root", passwd = "1234567890", database = "PythonDB"] #tạo đối tượng cursor cur = myconn.cursor[] sql = ["insert into Employee[name, id, salary, dept_id, branch_name] " "values [%s, %s, %s, %s, %s]"] #giá trị của một row được cung cấp dưới dạng tuple val = [["Vinh", 10002, 26000.00, 101, "Hanoi"], ["Trung", 10003, 26000.00, 102, "Danang"]] try: #inserting the values into the table cur.executemany[sql, val] #commit the transaction myconn.commit[] except: myconn.rollback[] print[cur.rowcount,"record inserted!"] myconn.close[]
Kết quả:
Insert Into Table
To fill a table in MySQL, use the "INSERT INTO" statement.
Example
Insert a record in the "customers" table:
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."]
Run example »
Important!: Notice the statement: mydb.commit[]
. It is required to make the changes, otherwise no changes are made to the table.
Insert Multiple Rows
To insert multiple
rows into a table, use the
executemany[]
method.
The second parameter of the executemany[]
method is a list of tuples, containing the data you want to insert:
Example
Fill the "customers" table with data:
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."]
Run example »
Get Inserted ID
You can get the id of the row you just inserted by asking the cursor object.
Note: If you insert more than one row, the id of the last inserted row is returned.
Example
Insert one row, and return the 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]
Run example »