CommencezCommencez gratuitement

Supprimer des enregistrements précis

En utilisant une clause where(), vous pouvez cibler l'instruction delete afin de retirer seulement certains enregistrements. Par exemple, Jason a supprimé toutes les lignes de la table employees qui avaient id 3 avec l'instruction suivante :

delete(employees).where(employees.columns.id == 3) 

Ici, vous allez supprimer TOUTES les lignes qui ont 'M' dans la colonne sex et 36 dans la colonne age. Nous avons inclus du code au début qui calcule le nombre total de ces lignes. Il est important de vous assurer que c'est bien le nombre de lignes que vous supprimez réellement.

Cette activité fait partie du cours

Introduction aux bases de données en Python

Voir le cours

Instructions de l’exercice

  • Créez une instruction delete pour retirer des données de la table census. Enregistrez-la dans delete_stmt.
  • Ajoutez une clause where à delete_stmt qui contient un and_ pour filtrer les lignes ayant 'M' dans la colonne sex ET 36 dans la colonne age.
  • Exécutez l'instruction de suppression.
  • Soumettez la réponse pour afficher le rowcount de results, ainsi que to_delete, qui retourne le nombre de lignes devant être supprimées. Les deux valeurs devraient correspondre ; c'est une vérification essentielle!

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Build a statement to count records using the sex column for Men ('M') age 36: count_stmt
count_stmt = select([func.count(census.columns.sex)]).where(
    and_(census.columns.sex == 'M',
         census.columns.age == 36)
)

# Execute the select statement and use the scalar() fetch method to save the record count
to_delete = connection.execute(count_stmt).scalar()

# Build a statement to delete records from the census table: delete_stmt
delete_stmt = ____

# Append a where clause to target Men ('M') age 36: delete_stmt
delete_stmt = delete_stmt.____(
    ____(census.columns.sex == ____,
         ____ == ____)
)

# Execute the statement: results
results = connection.execute(____)

# Print affected rowcount and to_delete record count, make sure they match
print(results.rowcount, to_delete)
Modifier et exécuter le code