Operaciones lógicas en consultas SQL en Python
En la condición de selección se pueden hacer combinaciones más complejas
usando los comandos OR y
AND. Funcionan igual que sus
análogos en la construcción if de Python.
Veamos algunos ejemplos.
Ejemplo
Seleccionemos usuarios con salario 500 Y
edad 23 años:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Resultado del código ejecutado:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Ejemplo
Seleccionemos usuarios con salario 500 O
edad 23 años:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Resultado del código ejecutado:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Ejemplo
Seleccionemos usuarios con salario desde 450
hasta 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Resultado del código ejecutado:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Ejemplo
Seleccionemos usuarios con edad desde 23
hasta 27 años inclusive:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Resultado del código ejecutado:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Ejemplo
Las combinaciones complejas de los comandos OR y
AND se pueden agrupar usando
paréntesis para mostrar la prioridad
de las condiciones:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Resultado del código ejecutado:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Tareas prácticas
Seleccione usuarios de edad desde 25
(no inclusive) hasta 28 años
(inclusive).
Seleccione al usuario user1.
Seleccione los usuarios user1 y user2.
Seleccione a todos, excepto al usuario user3.
Seleccione todos los usuarios de edad 27
años o con salario 1000.
Seleccione todos los usuarios de edad 27
años o con salario distinto a 400.
Seleccione todos los usuarios de edad desde 23
años (inclusive) hasta 27 años (no
inclusive) o con salario 1000.
Seleccione todos los usuarios de edad desde 23
años hasta 27 años o con salario desde
400 hasta 1000.