Python SQLite - Supprimer les données

Pour supprimer des enregistrements d'une table SQLite, vous devez utiliser l'instruction DELETE FROM. Pour supprimer des enregistrements spécifiques, vous devez utiliser la clause WHERE avec elle.

Syntaxe

Voici la syntaxe de la requête DELETE dans SQLite -

DELETE FROM table_name [WHERE Clause]

Exemple

Supposons que nous ayons créé une table avec le nom CRICKETERS en utilisant la requête suivante -

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

Et si nous y avons inséré 5 enregistrements en utilisant des instructions INSERT comme -

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 déclaration suivante supprime l'enregistrement du joueur de cricket dont le nom de famille est «Sangakkara».

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

Si vous récupérez le contenu de la table à l'aide de l'instruction SELECT, vous ne pouvez voir que 4 enregistrements puisque nous en avons supprimé un.

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>

Si vous exécutez l'instruction DELETE FROM sans la clause WHERE, tous les enregistrements de la table spécifiée seront supprimés.

sqlite> DELETE FROM CRICKETERS;
sqlite>

Puisque vous avez supprimé tous les enregistrements, si vous essayez de récupérer le contenu de la table CRICKETERS, en utilisant l'instruction SELECT, vous obtiendrez un jeu de résultats vide comme indiqué ci-dessous -

sqlite> SELECT * FROM CRICKETERS;
sqlite>

Suppression de données à l'aide de Python

Pour ajouter des enregistrements à une table existante dans la base de données SQLite -

  • Importez le package sqlite3.

  • Créez un objet de connexion à l'aide de la méthode connect () en lui passant le nom de la base de données comme paramètre.

  • le cursor()renvoie un objet curseur à l'aide duquel vous pouvez communiquer avec SQLite3. Créez un objet curseur en invoquant l'objet curseur () sur l'objet Connection (créé ci-dessus).

  • Ensuite, invoquez la méthode execute () sur l'objet curseur, en passant un DELETE instruction en tant que paramètre.

Exemple

L'exemple python suivant supprime les enregistrements de la table EMPLOYEE avec une valeur d'âge supérieure à 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()

Production

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