Ș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
Instrucțiuni pentru exercițiu
- Construiește un statement
deletepentru a elimina date din tabelulcensus. Salvează-l cadelete_stmt. - Adaugă o clauză
whereladelete_stmtcare să conțină unand_pentru a filtra rândurile ce au'M'în coloanasexȘI36în coloanaage. - Execută statement-ul de ștergere.
- Trimite răspunsul pentru a afișa
rowcountal variabileiresults, precum șito_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)