DELETE | Supprimer des données en MySQL avec Python

La commande DELETE est utilisée pour supprimer les lignes qui ne sont plus nécessaires dans une table de base de données. Il supprime la ligne entière de la table. La commande DELETE est pratique pour supprimer les données temporaires ou obsolètes de votre base de données.

La requête DELETE dans MySQL peut supprimer plusieurs lignes d’une table dans une seule requête. Cela présente un avantage lors de la suppression d’un grand nombre de lignes d’une table de base de données.
 
 
Une fois qu’une ligne a été supprimée, elle ne peut pas être récupérée. Il est donc fortement recommandé d’effectuer des sauvegardes de base de données avant de supprimer toutes les données de la base de données. Cela peut vous permettre de restaurer la base de données et d’afficher les données ultérieurement si nécessaire.
 

Exemple:

L’exemple suivant supprime tout personne dont l’age est inférieur à 18 :

# -*- coding: utf-8 -*-
import mysql.connector

#connexion au base de données
db = mysql.connector.connect(
  host = "localhost",
  user = "root",
  password = "",
  database = "my_db"
)

#créer un curseur de base de données pour effectuer des opérations SQL
cur = db.cursor()

sql = "DELETE FROM person WHERE age < 18"

#exécuter le curseur avec la méthode execute() et transmis la requête SQL
cur.execute(sql)

#valider la transaction
db.commit()

#afficher le nombre de lignes supprimées
print(cur.rowcount, " lignes supprimées")

Sortie:

10 lignes supprimées

 

Empêcher l’injection SQL

Lorsque des valeurs de requête sont fournies par l’utilisateur, vous devez échapper les valeurs.

Il s’agit d’empêcher les injections SQL, qui est une technique de piratage Web courante pour détruire ou abuser votre base de données.

Le module mysql.connector a des méthodes pour échapper aux valeurs de requête.
 
 
Dans l’exemple suivant nous allons échapper les valeurs de requête à l’aide de l’opérateur %s:

# -*- coding: utf-8 -*-
import mysql.connector

#connexion au base de données
db = mysql.connector.connect(
  host = "localhost",
  user = "root",
  password = "",
  database = "my_db"
)

#créer un curseur de base de données pour effectuer des opérations SQL
cur = db.cursor()

sql = "DELETE FROM person WHERE age < %s"
age = ("18", )

#exécuter le curseur avec la méthode execute() et transmis la requête SQL
cur.execute(sql, age)

#valider la transaction
db.commit()

#afficher le nombre de lignes supprimées
print(cur.rowcount, "lignes supprimées")

Sortie:

10 lignes supprimées

 

Laisser un commentaire

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