ÎncepețiÎncepe gratuit

Ștergerea înregistrărilor specifice

Folosind o clauză where(), poți direcționa statement-ul delete pentru a elimina doar anumite înregistrări. De exemplu, Jason a șters toate rândurile din tabelul employees care aveau id 3, folosind următorul statement de ștergere:

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

Aici vei șterge TOATE rândurile care au 'M' în coloana sex și 36 în coloana age. Am inclus cod la început care calculează numărul total al acestor rânduri. Este important să te asiguri că acesta este exact numărul de rânduri pe care le ștergi.

Acest exercițiu face parte din cursul

Introducere în baze de date în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Construiește un statement delete pentru a elimina date din tabelul census. Salvează-l ca delete_stmt.
  • Adaugă o clauză where la delete_stmt care să conțină un and_ pentru a filtra rândurile ce au 'M' în coloana sex ȘI 36 în coloana age.
  • Execută statement-ul de ștergere.
  • Trimite răspunsul pentru a afișa rowcount al variabilei results, precum și to_delete, care returnează numărul de rânduri ce ar trebui șterse. Acestea ar trebui să coincidă – acesta este un pas important de verificare!

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul