Operações lógicas em consultas SQL em Python
Nas condições de seleção, você pode fazer
combinações mais complexas usando os comandos OR e
AND. Eles funcionam da mesma forma que seus
análogos na construção if do Python.
Vamos ver alguns exemplos.
Exemplo
Vamos selecionar usuários com salário 500 E
idade 23 anos:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Resultado do código executado:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Exemplo
Vamos selecionar usuários com salário 500 OU
idade 23 anos:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Resultado do código executado:
{'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}
Exemplo
Vamos selecionar usuários com salário de 450
a 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Resultado do código executado:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Exemplo
Vamos selecionar usuários com idade de 23
a 27 anos inclusive:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Resultado do código executado:
{'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}
Exemplo
Combinações complexas dos comandos OR e
AND podem ser agrupadas usando
parênteses para indicar a prioridade
das condições:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Resultado do código executado:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Tarefas práticas
Selecione os usuários com idade de 25
(exclusive) a 28 anos
(inclusive).
Selecione o usuário user1.
Selecione os usuários user1 e user2.
Selecione todos, exceto o usuário user3.
Selecione todos os usuários com 27
anos de idade ou com salário de 1000.
Selecione todos os usuários com 27
anos de idade ou com salário diferente de 400.
Selecione todos os usuários com idade de 23
anos (inclusive) a 27 anos (exclusive)
ou com salário de 1000.
Selecione todos os usuários com idade de 23
anos a 27 anos ou com salário de
400 a 1000.