Python MySQL - Chèn dữ liệu

Bạn có thể thêm hàng mới vào bảng MySQL hiện có bằng cách sử dụng INSERT INTOtuyên bố. Trong trường này, bạn cần chỉ định tên bảng, tên cột và giá trị (theo thứ tự như tên cột).

Cú pháp

Sau đây là cú pháp của câu lệnh INSERT INTO của MySQL.

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
   VALUES (value1, value2, value3,...valueN);

Thí dụ

Truy vấn sau sẽ chèn một bản ghi vào bảng có tên là EMPLOYEE.

INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('Mac', 'Mohan', 20, 'M', 2000);

Bạn có thể xác minh các bản ghi của bảng sau khi thao tác chèn bằng cách sử dụng câu lệnh SELECT dưới dạng:

mysql> select * from Employee;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE  | SEX  | INCOME |
+------------+-----------+------+------+--------+
| Mac        | Mohan     |    20| M    | 2000   |
+------------+-----------+------+------+--------+
1 row in set (0.00 sec)

Không bắt buộc phải luôn luôn chỉ định tên của các cột, nếu bạn chuyển các giá trị của một bản ghi theo cùng thứ tự của các cột trong bảng, bạn có thể thực hiện câu lệnh SELECT mà không có tên cột như sau:

INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000);

Chèn dữ liệu vào bảng MySQL bằng Python

Các execute()phương thức (được gọi trên đối tượng con trỏ) chấp nhận một truy vấn làm tham số và thực hiện truy vấn đã cho. Để chèn dữ liệu, bạn cần chuyển câu lệnh MySQL INSERT làm tham số cho nó.

cursor.execute("""INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) 
   VALUES ('Mac', 'Mohan', 20, 'M', 2000)""")

Để chèn dữ liệu vào bảng trong MySQL bằng python -

  • nhập khẩu mysql.connector gói hàng.

  • Tạo một đối tượng kết nối bằng cách sử dụng mysql.connector.connect() bằng cách chuyển tên người dùng, mật khẩu, máy chủ lưu trữ (mặc định tùy chọn: localhost) và, cơ sở dữ liệu (tùy chọn) làm tham số cho nó.

  • Tạo một đối tượng con trỏ bằng cách gọi cursor() trên đối tượng kết nối đã tạo ở trên.

  • Sau đó, thực hiện INSERT bằng cách chuyển nó dưới dạng một tham số cho execute() phương pháp.

Thí dụ

Ví dụ sau thực hiện câu lệnh SQL INSERT để chèn bản ghi vào bảng EMPLOYEE -

import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
   user='root', password='password', host='127.0.0.1', database='mydb'
)
#Creating a cursor object using the cursor() method
cursor = conn.cursor()
# Preparing SQL query to INSERT a record into the database.
sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)
   VALUES ('Mac', 'Mohan', 20, 'M', 2000)"""
try:
   # Executing the SQL command
   cursor.execute(sql)
   # Commit your changes in the database
   conn.commit()
except:
   # Rolling back in case of error
   conn.rollback()
# Closing the connection
conn.close()

Tự động chèn giá trị

Bạn cũng có thể dùng “%s” thay vì các giá trị trong INSERT truy vấn MySQL và chuyển các giá trị cho chúng dưới dạng danh sách như hình dưới đây -

cursor.execute("""INSERT INTO EMPLOYEE VALUES ('Mac', 'Mohan', 20, 'M', 2000)""", 
   ('Ramya', 'Ramapriya', 25, 'F', 5000))

Thí dụ

Ví dụ sau sẽ chèn động một bản ghi vào bảng Nhân viên.

import mysql.connector
#establishing the connection
conn = mysql.connector.connect(
   user='root', password='password', host='127.0.0.1', database='mydb'
)

#Creating a cursor object using the cursor() method
cursor = conn.cursor()

# Preparing SQL query to INSERT a record into the database.
insert_stmt = (
   "INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME)"
   "VALUES (%s, %s, %s, %s, %s)"
)
data = ('Ramya', 'Ramapriya', 25, 'F', 5000)
try:
   # Executing the SQL command
   cursor.execute(insert_stmt, data)
   # Commit your changes in the database
   conn.commit()
except:
   # Rolling back in case of error
   conn.rollback()
print("Data inserted")
# Closing the connection
conn.close()

Đầu ra

Data inserted