1. UPDATE bản ghi trong MySQL với Python

Câu lệnh UPDATE là câu lệnh dùng để sửa đổi các bản ghi hiện có trong một bảng. Các bản ghi có thể chỉ được sửa đổi theo một vài cột hoặc cũng có thể sửa đổi theo tất cả các cột có trong bảng.

Trong Python, để thực hiện cập nhật (hay sửa đổi) một bản ghi trong bảng MySQL chúng ta cần thực hiện hai bước sau:

  1. Kết nối Python tới MySQL bằng hàm mysql.connector.connect().
  2. Thực hiện thay đổi dữ liệu từ một bảng thông qua câu truy vấn “UPDATE table_name SET column1 = value1, column2 = value2, … WHERE condition;” trong đó:
    • UPDATE  table_name là việc chọn ra tên bảng có bản ghi cần được sửa đổi
    • SET column1 = value1, column2 = value2 là sửa đổi các dữ liệu có trong các cột được chỉ định.
    • WHERE condition là các điều kiện chọn ra bản ghi cần sửa đổi.

Ví dụ dưới đây, thực hiện sửa HoTen, Tuoi, GioiTinh của bản ghi có id = 7 có trong bảng “tbl_user” trong cơ sở dữ liệu có tên “laptrinhtudau” như sau:

import mysql.connector

try:
    # Ket noi toi MySQL
    mydb = mysql.connector.connect(
        host="localhost",
        user="root",
        password="",
        database="laptrinhtudau"
    )
    # Tao doi tuong con tro trong MySQL
    mycursor = mydb.cursor()

    # Truy van cap nhat ban ghi co id = 6 trong bang "tbl_user"
    sql = "UPDATE tbl_user SET HoTen = 'Nguyen Hoang Duc', Tuoi = 22, GioiTinh ='nam' WHERE id = 6"

    # Thuc thi cau truy van 
    mycursor.execute(sql)
    # Xac thuc viec sua ban ghi khoi bang "tbl_user"
    mydb.commit()
    print(mycursor.rowcount, "ban ghi da duoc cap nhat!")
except:# Truong hop co loi cap nhat ban ghi trong bang
    print("Khong the cap nhat ban ghi trong bang!")

Kết quả:

1 ban ghi da duoc cap nhat!

Lưu ý: Câu lệnh mydb.commit() là bắt buộc phải có khi chúng ta muốn cập nhật bản ghi trong một bảng. Nếu như không có câu lệnh mydb.commit() thì bảng có bản ghi cần cập nhật sẽ không được thay đổi!

2. UPDATE tất cả bản ghi trong MySQL với Python

Ở phần trên, chúng ta mới chỉ thực hiện cập nhật một bản ghi theo một điều kiện được chỉ định.Ví dụ điều kiện chỉ định để cập nhật bản ghi đó là bản ghi có id = 6. Trong một số trường hợp, chúng ta cần cập nhật toàn bộ các bản ghi có trong bảng (có thể là do dữ liệu chưa đúng đắn nên cần cập nhật lại).

Khi đó nghĩa là, ta cần cập nhật toàn bộ bản ghi có trong bảng. Để thực hiện được việc cập nhật toàn bộ bản ghi có trong bảng khi đó ta chỉ cần thực hiện câu lệnh truy vấn “UPDATE table_name SET column1 = value1, column2 = value2, …” – câu lệnh truy vấn này sẽ bỏ qua mệnh đề WHERE.

Ví dụ dưới đây, chúng tôi sẽ cập nhật toàn bộ các bản ghi có trong bảng “tbl_user” trong cơ sở dữ liệu “laptrinhtudau” như sau:

import mysql.connector

try:
    # Ket noi toi MySQL
    mydb = mysql.connector.connect(
        host="localhost",
        user="root",
        password="",
        database="laptrinhtudau"
    )

    # Tao doi tuong con tro trong MySQL
    mycursor = mydb.cursor()

    # Truy van cap nhat tat ca ban ghi trong bang "tbl_user"
    sql = "UPDATE tbl_user SET HoTen='Nguyen Van A', Tuoi = 20, GioiTinh = 'nam'"

    # Thuc thi cau truy van 
    mycursor.execute(sql)
    # Xac thuc viec cap nhat ban ghi khoi bang "tbl_user"
    mydb.commit()
    print(mycursor.rowcount, "ban ghi da duoc cap nhat!")
except:# Truong hop co loi cap nhat ban ghi trong bang
    print("Khong the cap nhat ban ghi trong bang!")

Kết quả:

7 ban ghi da duoc cap nhat!