ComenzarEmpieza gratis

Filtra datos seleccionados de una tabla - Avanzado

¡Le estás cogiendo el truco! SQLAlchemy también te permite usar conjunciones como and_(), or_() y not_() para crear filtros más complejos. Por ejemplo, podemos obtener un conjunto de registros de personas en New York que tengan 21 o 37 años con el siguiente código:

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

Una sentencia SQL equivalente sería, por ejemplo,

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

Este ejercicio forma parte del curso

Introducción a las bases de datos en Python

Ver curso

Instrucciones del ejercicio

  • Importa and_ del módulo sqlalchemy.
  • Selecciona todos los registros de la tabla census.
  • Añade una cláusula where para filtrar todos los registros cuyo state sea 'California' y cuyo sex no sea 'M'.
  • Ejecuta stmt en la conexión e itera sobre el ResultProxy para imprimir las columnas age y sex de cada registro.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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 y ejecutar código