ComeçarComece de graça

Excluindo registros específicos

Usando uma cláusula where(), você pode direcionar a instrução delete para remover apenas certos registros. Por exemplo, Jason excluiu todas as linhas da tabela employees que tinham id 3 com a seguinte instrução de exclusão:

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

Aqui, você vai excluir TODAS as linhas que têm 'M' na coluna sex e 36 na coluna age. Incluímos um código no início que calcula o número total dessas linhas. É importante garantir que esse seja o número de linhas que você realmente exclui.

Este exercício faz parte do curso

Introdução a Bancos de Dados em Python

Ver curso

Instruções do exercício

  • Construa uma instrução delete para remover dados da tabela census. Salve-a como delete_stmt.
  • Acrescente uma cláusula where a delete_stmt que contenha um and_ para filtrar as linhas que tenham 'M' na coluna sex E 36 na coluna age.
  • Execute a instrução de exclusão.
  • Envie a resposta para imprimir o rowcount de results, bem como to_delete, que retorna o número de linhas que devem ser excluídas. Esses valores devem coincidir — isso é um controle importante de sanidade!

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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)
Editar e executar o código