ComeçarComece de graça

Filtrar dados selecionados de uma Tabela - Avançado

Você está pegando o jeito! O SQLAlchemy também permite usar conjunções como and_(), or_() e not_() para construir filtros mais complexos. Por exemplo, podemos obter um conjunto de registros para pessoas em New York que têm 21 ou 37 anos com o seguinte código:

select([census]).where(
  and_(census.columns.state == 'New York',
       or_(census.columns.age == 21,
          census.columns.age == 37
         )
      )
  )

Uma instrução SQL equivalente seria, por exemplo,

SELECT * FROM census WHERE state = 'New York' AND (age = 21 OR age = 37)

Este exercício faz parte do curso

Introdução a Bancos de Dados em Python

Ver curso

Instruções do exercício

  • Importe and_ do módulo sqlalchemy.
  • Selecione todos os registros da tabela census.
  • Acrescente uma cláusula where para filtrar todos os registros cujo state seja 'California' e cujo sex não seja 'M'.
  • Execute stmt na conexão e itere sobre o ResultProxy para imprimir as colunas age e sex de cada registro.

Exercício interativo prático

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

# Import and_
from ____ import ____

# Build a query for the census table: stmt
stmt = select(____)

# Append a where clause to select only non-male records from California using and_
stmt = stmt.where(
    # The state of California with a non-male sex
    ____(census.columns.state == ____,
         census.columns.sex != ____
         )
)

# Loop over the ResultProxy printing the age and sex
for result in ____:
    print(____, ____)
Editar e executar o código