Python SQLite - Daten löschen
Um Datensätze aus einer SQLite-Tabelle zu löschen, müssen Sie die Anweisung DELETE FROM verwenden. Um bestimmte Datensätze zu entfernen, müssen Sie die WHERE-Klausel verwenden.
Syntax
Es folgt die Syntax der DELETE-Abfrage in SQLite -
DELETE FROM table_name [WHERE Clause]
Beispiel
Angenommen, wir haben mit der folgenden Abfrage eine Tabelle mit dem Namen CRICKETERS erstellt:
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
sqlite>
Und wenn wir 5 Datensätze mit INSERT-Anweisungen als - eingefügt haben
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>
Die folgende Anweisung löscht die Aufzeichnung des Cricketspielers, dessen Nachname "Sangakkara" ist.
sqlite> DELETE FROM CRICKETERS WHERE LAST_NAME = 'Sangakkara';
sqlite>
Wenn Sie den Inhalt der Tabelle mit der SELECT-Anweisung abrufen, werden nur 4 Datensätze angezeigt, da wir einen gelöscht haben.
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>
Wenn Sie die Anweisung DELETE FROM ohne die WHERE-Klausel ausführen, werden alle Datensätze aus der angegebenen Tabelle gelöscht.
sqlite> DELETE FROM CRICKETERS;
sqlite>
Da Sie alle Datensätze gelöscht haben, erhalten Sie beim Versuch, den Inhalt der CRICKETERS-Tabelle mit der SELECT-Anweisung abzurufen, eine leere Ergebnismenge, wie unten gezeigt.
sqlite> SELECT * FROM CRICKETERS;
sqlite>
Daten mit Python löschen
So fügen Sie einer vorhandenen Tabelle in der SQLite-Datenbank Datensätze hinzu:
Importieren Sie das sqlite3-Paket.
Erstellen Sie ein Verbindungsobjekt mit der Methode connect () , indem Sie den Namen der Datenbank als Parameter an diese übergeben.
Das cursor()Die Methode gibt ein Cursorobjekt zurück, mit dem Sie mit SQLite3 kommunizieren können. Erstellen Sie ein Cursorobjekt, indem Sie das Objekt cursor () für das (oben erstellte) Verbindungsobjekt aufrufen.
Rufen Sie dann die Methode execute () für das Cursorobjekt auf, indem Sie eine übergeben DELETE Anweisung als Parameter dazu.
Beispiel
Das folgende Python-Beispiel löscht die Datensätze aus der EMPLOYEE-Tabelle mit einem Alterswert größer als 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()
Ausgabe
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)
]