Začněte nyníZačněte zdarma

Mazání konkrétních záznamů

Pomocí klauzule where() můžeš příkaz delete zacílit tak, aby odstranil jen určité záznamy. Jason například smazal všechny řádky z tabulky employees s hodnotou id rovnou 3 tímto příkazem:

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

V tomto cvičení smažeš VŠECHNY řádky, které mají v sloupci sex hodnotu 'M' a ve sloupci age hodnotu 36. Na začátku je připravený kód, který vypočítá celkový počet takových řádků. Je důležité ověřit, že skutečně smažeš právě tolik řádků — nic víc, nic míň.

Toto cvičení je součástí kurzu

Introduction to Databases in Python

Zobrazit kurz

Pokyny k cvičení

  • Sestav příkaz delete pro odstranění dat z tabulky census a ulož ho do proměnné delete_stmt.
  • Přidej k delete_stmt klauzuli where, která obsahuje and_ filtrující řádky s hodnotou 'M' ve sloupci sex A ZÁROVEŇ hodnotou 36 ve sloupci age.
  • Proveď příkaz delete.
  • Odešli odpověď, aby se vypsal rowcount proměnné results i hodnota to_delete, která udává počet řádků, jež mají být smazány. Obě čísla by se měla shodovat — to je důležitá kontrola správnosti!

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód