Python MySQL - Xóa dữ liệu

Để xóa bản ghi khỏi bảng MySQL, bạn cần sử dụng DELETE FROMtuyên bố. Để xóa các bản ghi cụ thể, bạn cần sử dụng mệnh đề WHERE cùng với nó.

Cú pháp

Sau đây là cú pháp của truy vấn DELETE trong MYSQL:

DELETE FROM table_name [WHERE Clause]

Thí dụ

Giả sử chúng ta đã tạo một bảng trong MySQL với tên EMPLOYEES là -

mysql> CREATE TABLE EMPLOYEE(
   FIRST_NAME CHAR(20) NOT NULL,
   LAST_NAME CHAR(20),
   AGE INT,
   SEX CHAR(1),
   INCOME FLOAT
);
Query OK, 0 rows affected (0.36 sec)

Và nếu chúng ta đã chèn 4 bản ghi vào nó bằng cách sử dụng câu lệnh INSERT là -

mysql> INSERT INTO EMPLOYEE VALUES
   ('Krishna', 'Sharma', 19, 'M', 2000),
   ('Raj', 'Kandukuri', 20, 'M', 7000),
   ('Ramya', 'Ramapriya', 25, 'F', 5000),
   ('Mac', 'Mohan', 26, 'M', 2000);

Sau câu lệnh MySQL xóa bản ghi của nhân viên với FIRST_NAME ”Mac”.

mysql> DELETE FROM EMPLOYEE WHERE FIRST_NAME = 'Mac';
Query OK, 1 row affected (0.12 sec)

Nếu bạn truy xuất nội dung của bảng, bạn chỉ có thể thấy 3 bản ghi vì chúng tôi đã xóa một bản ghi.

mysql> select * from EMPLOYEE;
+------------+-----------+------+------+--------+
| FIRST_NAME | LAST_NAME | AGE  | SEX  | INCOME |
+------------+-----------+------+------+--------+
| Krishna    | Sharma    | 20   | M    | 2000   |
| Raj        | Kandukuri | 21   | M    | 7000   |
| Ramya      | Ramapriya | 25   | F    | 5000   |
+------------+-----------+------+------+--------+
3 rows in set (0.00 sec)

Nếu bạn thực hiện câu lệnh DELETE mà không có mệnh đề WHERE, tất cả các bản ghi từ bảng được chỉ định sẽ bị xóa.

mysql> DELETE FROM EMPLOYEE;
Query OK, 3 rows affected (0.09 sec)

Nếu bạn truy xuất nội dung của bảng, bạn sẽ nhận được một tập hợp trống như hình dưới đây -

mysql> select * from EMPLOYEE;
Empty set (0.00 sec)

Xóa bản ghi của bảng bằng python

Thao tác DELETE là bắt buộc khi bạn muốn xóa một số bản ghi khỏi cơ sở dữ liệu của mình.

Để xóa các bản ghi trong bảng -

  • 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 DELETE bằng cách chuyển nó dưới dạng một tham số cho execute() phương pháp.

Thí dụ

Chương trình sau sẽ xóa tất cả các bản ghi khỏi NHÂN VIÊN có TUỔI trên 20 -

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

#Retrieving single row
print("Contents of the table: ")
cursor.execute("SELECT * from EMPLOYEE")
print(cursor.fetchall())

#Preparing the query to delete records
sql = "DELETE FROM EMPLOYEE WHERE AGE > '%d'" % (25)

try:
   # Execute the SQL command
   cursor.execute(sql)
   
   # Commit your changes in the database
   conn.commit()
except:
   # Roll back in case there is any error
   conn.rollback()

#Retrieving data
print("Contents of the table after delete operation ")
cursor.execute("SELECT * from EMPLOYEE")
print(cursor.fetchall())

#Closing the connection
conn.close()

Đầu ra

Contents of the table:
[('Krishna', 'Sharma', 22, 'M', 2000.0), 
   ('Raj', 'Kandukuri', 23, 'M', 7000.0), 
   ('Ramya', 'Ramapriya', 26, 'F', 5000.0), 
   ('Mac', 'Mohan', 20, 'M', 2000.0), 
   ('Ramya', 'Rama priya', 27, 'F', 9000.0)]

Contents of the table after delete operation:
[('Krishna', 'Sharma', 22, 'M', 2000.0), 
   ('Raj', 'Kandukuri', 23, 'M', 7000.0), 
   ('Mac', 'Mohan', 20, 'M', 2000.0)]