Cách DELETE dữ liệu từ database MySQL bằng Python
Hướng dẫn cách sử dụng Prepared Statements trong Python để xóa dữ liệu từ một bảng trong database MySQL một cách an toàn và hiệu quả.
Trong bài viết này, bạn sẽ học cách kết nối đến một database MySQL và sử dụng Python với Prepared Statements để thực hiện câu lệnh DELETE, từ đó xóa các bản ghi từ bảng trong cơ sở dữ liệu theo nhiều tham số.
import mysql.connector
# Kết nối đến database MySQL
conn = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test_db"
)
# Tạo một cursor object
cursor = conn.cursor()
# Câu lệnh DELETE với Prepared Statement
delete_query = "DELETE FROM students WHERE id = %s AND name = %s"
params = (1, 'John Doe')
# Thực hiện câu lệnh DELETE
cursor.execute(delete_query, params)
# Lưu thay đổi vào database
conn.commit()
# In số lượng bản ghi đã xóa
print(f"{cursor.rowcount} bản ghi đã bị xóa.")
# Đóng kết nối
cursor.close()
conn.close()
Giải thích chi tiết từng dòng code:
import mysql.connector
: Import thư việnmysql.connector
để có thể kết nối với MySQL.conn = mysql.connector.connect(...)
: Kết nối đến database MySQL bằng cách sử dụng các thông tin kết nối nhưhost
,user
,password
, vàdatabase
.cursor = conn.cursor()
: Tạo mộtcursor
để thực hiện các câu truy vấn SQL.delete_query = "DELETE FROM students WHERE id = %s AND name = %s"
: Định nghĩa câu lệnh DELETE với các tham số chi tiết.params = (1, 'John Doe')
: Khai báo các giá trị tham số cần truyền vào câu lệnh DELETE.cursor.execute(delete_query, params)
: Thực hiện câu lệnh DELETE với các tham số đã được khai báo.conn.commit()
: Lưu các thay đổi vào database.print(f"{cursor.rowcount} bản ghi đã bị xóa.")
: In ra số lượng bản ghi đã bị xóa.cursor.close()
vàconn.close()
: Đóngcursor
và kết nối đến database.
Yêu cầu hệ thống:
- Python 3.x
- Thư viện:
mysql-connector-python
Cách cài đặt các thư viện để chạy được đoạn mã Python trên:
Sử dụng pip để cài đặt thư viện:
pip install mysql-connector-python
Lời khuyên:
- Hãy đảm bảo rằng MySQL server của bạn đang chạy trước khi thực hiện kết nối.
- Kiểm tra kỹ các thông tin kết nối như
host
,user
,password
, vàdatabase
để tránh lỗi kết nối. - Sử dụng Prepared Statements để bảo vệ khỏi các cuộc tấn công SQL injection.