Hướng dẫn insert into sql 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ị.

INSERT 1 bản ghi

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().

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ả:

Hướng dẫn insert into sql python



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ả:

Hướng dẫn insert into sql python




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 »