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
Instrucciones del ejercicio
- Importa
and_del módulosqlalchemy. - Selecciona todos los registros de la tabla
census. - Añade una cláusula where para filtrar todos los registros cuyo
statesea'California'y cuyosexno sea'M'. - Ejecuta
stmten la conexión e itera sobre el ResultProxy para imprimir las columnasageysexde 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(____, ____)