Python MySQL - Hapus Data

Untuk menghapus record dari tabel MySQL, Anda perlu menggunakan DELETE FROMpernyataan. Untuk menghapus catatan tertentu, Anda perlu menggunakan klausa WHERE bersamanya.

Sintaksis

Berikut ini adalah sintaks dari query DELETE di MYSQL -

DELETE FROM table_name [WHERE Clause]

Contoh

Asumsikan kita telah membuat tabel di MySQL dengan nama EMPLOYEES sebagai -

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)

Dan jika kita telah memasukkan 4 record ke dalamnya menggunakan pernyataan INSERT sebagai -

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

Mengikuti pernyataan MySQL akan menghapus catatan karyawan dengan "Mac" FIRST_NAME .

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

Jika Anda mengambil isi tabel, Anda hanya dapat melihat 3 catatan karena kami telah menghapus satu.

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)

Jika Anda menjalankan pernyataan DELETE tanpa klausa WHERE, semua rekaman dari tabel yang ditentukan akan dihapus.

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

Jika Anda mengambil isi tabel, Anda akan mendapatkan satu set kosong seperti yang ditunjukkan di bawah ini -

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

Menghapus Record dari Tabel Menggunakan Python

Operasi HAPUS diperlukan saat Anda ingin menghapus beberapa rekaman dari database Anda.

Untuk menghapus catatan dalam tabel -

  • impor mysql.connector paket.

  • Buat objek koneksi menggunakan mysql.connector.connect() metode, dengan meneruskan nama pengguna, kata sandi, host (opsional default: localhost) dan, database (opsional) sebagai parameter untuk itu.

  • Buat objek kursor dengan menjalankan metode cursor () pada objek koneksi yang dibuat di atas.

  • Kemudian, jalankan DELETE pernyataan dengan meneruskannya sebagai parameter ke execute() metode.

Contoh

Program berikut menghapus semua catatan dari KARYAWAN yang AGE-nya lebih dari 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()

Keluaran

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