DELETE | Supprimer des données en SQLite avec Python

image_pdfimage_print

Dans ce tutoriel nous allons découvrir comment supprimer des données dans une table SQLite avec Python.

Avant d’exécuter les programmes Python suivants, assurez-vous de connaître le nom de la table SQLite et les détails de colonne dans lesquels vous souhaitez supprimer des données.

Pour ce tutoriel, nous allons utiliser la table « person » présente dans notre base de données SQLite.
 
 
Si aucune table n’est présente dans votre base de données SQLite, veuillez créer une table SQLite et insérer des données dans la table SQLite avec Python.
 

Les étapes pour supprimer des données avec Python

Pour l’instant, la table ‘person’ contient cinq lignes. Supprimons donc la personne dont l’ID est 4. Pour effectuer une requête DELETE à partir de Python, vous devez suivre les étapes suivantes:

  • Établissez une connexion SQLite avec Python.
  • Ensuite, créez un objet curseur à l’aide de l’objet de connexion.
  • Ensuite, définissez la requête DELETE. Ici, vous devez connaître la table et le nom de la colonne que vous souhaitez supprimer.
  • Exécutez la requête DELETE à l’aide de curseur.execute()
  • Après l’exécution réussie de la requête DELETE, n’oubliez pas de valider la suppression dans la base de données.
  • Fermez la connexion à la base de données.
  • Capturer toutes les exceptions SQLite qui peuvent survenir au cours du processus.
  • Enfin, vérifiez le résultat en sélectionnant les données d’une table SQLite dans Python.

 
 

Exemple 1: Supprimer un seul enregistrement dans la table ‘person’
# -*- coding: utf-8 -*-
import sqlite3

try:
    conn = sqlite3.connect('my.db')
    cur = conn.cursor()
    print("Connexion réussie à SQLite")

    sql = "DELETE FROM person WHERE id = 4"
    cur.execute(sql)
    conn.commit()
    print("Enregistrement supprimé avec succès")
	
    cur.close()
    conn.close()
    print("Connexion SQLite est fermée")

except sqlite3.Error as error:
    print("Erreur lors du suppression dans la table person", error)

Sortie:

Connexion réussie à SQLite
Enregistrement supprimé avec succès
Erreur lors du suppression dans la table person

 
 

Exemple 2: Utiliser des variables Python comme paramètres dans une requête DELETE

Parfois, nous devons supprimer une ligne d’une table SQLite dans laquelle la clé primaire de la ligne est passée au moment de l’exécution. Par exemple, lorsqu’un utilisateur supprimer son profile via une interface utilisateur dans de tels cas, nous devons supprimer son entrée dans la table.

Il est toujours recommandé d’utiliser une requête paramétrée. La requête paramétrée utilise l’opérateur (?) À l’intérieur de l’instruction SQL qui contiennent les entrées de l’utilisateur. Il nous aide à supprimer ses valeurs au moment de l’exécution et à éviter les problèmes d’injection SQL.

Regardons maintenant l’exemple:

# -*- coding: utf-8 -*-
import sqlite3

try:
    conn = sqlite3.connect('my.db')
    cur = conn.cursor()
    print("Connexion réussie à SQLite")

    sql = "DELETE FROM person WHERE id = ?"
	
    id = 4
    cur.execute(sql, (id, ))
    conn.commit()
    print("Enregistrement supprimé avec succès")
	
    cur.close()
    conn.close()
    print("Connexion SQLite est fermée")

except sqlite3.Error as error:
    print("Erreur lors du suppression dans la table person", error)

Sortie:

Connexion réussie à SQLite
Enregistrement supprimé avec succès
Erreur lors du suppression dans la table person

 
 

Exemple 3: Supprimer plusieurs enregistrements dans la table ‘person’

Dans l’exemple ci-dessus, nous avons utilisé la méthode execute() de l’objet curseur pour supprimer un seul enregistrement, mais parfois dans une application Python, nous devons supprimer plusieurs lignes dans la table dans une seule requête DELETE.

Nous pouvons supprimer plusieurs enregistrements dans la table SQLite en utilisant la fonction executemany() de l’objet curseur.

La méthode cursor.executemany() accepte deux arguments: la requête SQL et la liste d’enregistrements.

Regardons maintenant le programme.

# -*- coding: utf-8 -*-
import sqlite3

try:
    conn = sqlite3.connect('my.db')
    cur = conn.cursor()
    print("Connexion réussie à SQLite")

    sql = "DELETE FROM person WHERE id = ?"
	
    ids = [(2,),(3,),(4,)]
    cur.executemany(sql, ids)
    conn.commit()
    print("Enregistrements supprimés avec succès")
	
    cur.close()
    conn.close()
    print("Connexion SQLite est fermée")

except sqlite3.Error as error:
    print("Erreur lors du suppression dans la table person", error)

Sortie:

Connexion réussie à SQLite
Enregistrements supprimés avec succès
Erreur lors du suppression dans la table person

 

Partagez cet article

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *