Python SQLite - Hapus Data

Untuk menghapus rekaman dari tabel SQLite, Anda perlu menggunakan pernyataan DELETE FROM. Untuk menghapus catatan tertentu, Anda perlu menggunakan klausa WHERE bersamanya.

Sintaksis

Berikut ini adalah sintaks dari kueri DELETE di SQLite -

DELETE FROM table_name [WHERE Clause]

Contoh

Asumsikan kita telah membuat tabel dengan nama CRICKETERS menggunakan query berikut -

sqlite> CREATE TABLE CRICKETERS (
   First_Name VARCHAR(255),
   Last_Name VARCHAR(255),
   Age int,
   Place_Of_Birth VARCHAR(255),
   Country VARCHAR(255)
);
sqlite>

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

sqlite> insert into CRICKETERS values('Shikhar', 'Dhawan', 33, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Jonathan', 'Trott', 38, 'CapeTown', 'SouthAfrica');
sqlite> insert into CRICKETERS values('Kumara', 'Sangakkara', 41, 'Matale', 'Srilanka');
sqlite> insert into CRICKETERS values('Virat', 'Kohli', 30, 'Delhi', 'India');
sqlite> insert into CRICKETERS values('Rohit', 'Sharma', 32, 'Nagpur', 'India');
sqlite>

Pernyataan berikut menghapus rekor pemain kriket yang memiliki nama belakang 'Sangakkara'.

sqlite> DELETE FROM CRICKETERS WHERE LAST_NAME = 'Sangakkara';
sqlite>

Jika Anda mengambil isi tabel menggunakan pernyataan SELECT, Anda hanya dapat melihat 4 record karena kami telah menghapus satu record.

sqlite> SELECT * FROM CRICKETERS;
First_Name   Last_Name    Age    Place_Of_B   Country
----------   ----------   ----   ----------   --------
Shikhar      Dhawan       46     Delhi        India
Jonathan     Trott        39     CapeTown     SouthAfrica
Virat        Kohli        31     Delhi        India
Rohit        Sharma       33     Nagpur       India
sqlite>

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

sqlite> DELETE FROM CRICKETERS;
sqlite>

Karena Anda telah menghapus semua record, jika Anda mencoba untuk mengambil isi dari tabel CRICKETERS, dengan menggunakan pernyataan SELECT Anda akan mendapatkan hasil yang kosong seperti yang ditunjukkan di bawah ini -

sqlite> SELECT * FROM CRICKETERS;
sqlite>

Menghapus Data Menggunakan Python

Untuk menambahkan catatan ke tabel yang ada di database SQLite -

  • Impor paket sqlite3.

  • Buat objek koneksi menggunakan metode connect () dengan meneruskan nama database sebagai parameter untuknya.

  • Itu cursor()metode mengembalikan objek kursor yang dapat digunakan untuk berkomunikasi dengan SQLite3. Buat objek kursor dengan memanggil objek cursor () pada objek Connection (di atas dibuat).

  • Kemudian, panggil metode execute () pada objek kursor, dengan meneruskan DELETE pernyataan sebagai parameter untuk itu.

Contoh

Contoh python berikut menghapus record dari tabel EMPLOYEE dengan nilai usia lebih dari 25.

import sqlite3
#Connecting to sqlite
conn = sqlite3.connect('example.db')

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

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

#Deleting records
cursor.execute('''DELETE FROM EMPLOYEE WHERE AGE > 25''')

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

#Commit your changes in the database
conn.commit()

#Closing the connection
conn.close()

Keluaran

Contents of the table:
[
   ('Ramya', 'Rama priya', 27, 'F', 9000.0), 
   ('Vinay', 'Battacharya', 21, 'M', 6000.0), 
   ('Sharukh', 'Sheik', 26, 'M', 8300.0), 
   ('Sarmista', 'Sharma', 26, 'F', 10000.0), 
   ('Tripthi', 'Mishra', 24, 'F', 6000.0)
]
Contents of the table after delete operation
[
   ('Vinay', 'Battacharya', 21, 'M', 6000.0), 
   ('Tripthi', 'Mishra', 24, 'F', 6000.0)
]