Python SQLite - Elimina dati
Per eliminare i record da una tabella SQLite, è necessario utilizzare l'istruzione DELETE FROM. Per rimuovere record specifici, è necessario utilizzare la clausola WHERE insieme ad essa.
Per aggiornare righe specifiche, è necessario utilizzare la clausola WHERE insieme ad essa.
Sintassi
Di seguito è riportata la sintassi della query DELETE in SQLite:
DELETE FROM table_name [WHERE Clause]
Esempio
Supponiamo di aver creato una tabella con il nome CRICKETERS utilizzando la seguente query:
sqlite> CREATE TABLE CRICKETERS (
First_Name VARCHAR(255),
Last_Name VARCHAR(255),
Age int,
Place_Of_Birth VARCHAR(255),
Country VARCHAR(255)
);
sqlite>
E se abbiamo inserito 5 record in esso utilizzando le istruzioni INSERT come -
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>
La seguente dichiarazione cancella il record del giocatore di cricket il cui cognome è "Sangakkara".
sqlite> DELETE FROM CRICKETERS WHERE LAST_NAME = 'Sangakkara';
sqlite>
Se recuperi il contenuto della tabella utilizzando l'istruzione SELECT, puoi visualizzare solo 4 record poiché ne abbiamo eliminato uno.
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>
Se si esegue l'istruzione DELETE FROM senza la clausola WHERE, verranno eliminati tutti i record dalla tabella specificata.
sqlite> DELETE FROM CRICKETERS;
sqlite>
Poiché hai cancellato tutti i record, se provi a recuperare il contenuto della tabella CRICKETERS, usando l'istruzione SELECT otterrai un set di risultati vuoto come mostrato di seguito -
sqlite> SELECT * FROM CRICKETERS;
sqlite>
Eliminazione dei dati utilizzando python
Per aggiungere record a una tabella esistente nel database SQLite:
Importa pacchetto sqlite3.
Creare un oggetto connessione utilizzando il metodo connect () passando il nome del database come parametro ad esso.
Il cursor()restituisce un oggetto cursore utilizzando il quale è possibile comunicare con SQLite3. Crea un oggetto cursore invocando l'oggetto cursore () sull'oggetto Connection (creato sopra).
Quindi, invoca il metodo execute () sull'oggetto cursore, passando un'istruzione DELETE come parametro ad esso.
Esempio
Il seguente esempio di Python elimina i record dalla tabella EMPLOYEE con un valore di età maggiore di 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()
Produzione
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)]