Os operadores lógicos permitem combinar múltiplas condições em uma consulta SQL.
Eles são amplamente utilizados junto com a cláusula WHERE para criar filtros mais avançados.
| Operador | Descrição |
|---|---|
| AND | Todas as condições devem ser verdadeiras |
| OR | Pelo menos uma condição deve ser verdadeira |
| NOT | Inverte o resultado da condição |
CLIENTES
+----+--------+-----------+-------+
| ID | Nome | Cidade | Idade |
+----+--------+-----------+-------+
| 1 | Ana | Jacareí | 20 |
| 2 | Carlos | São Paulo | 35 |
| 3 | Pedro | Jacareí | 40 |
| 4 | Maria | Campinas | 18 |
+----+--------+-----------+-------+
Retorna registros apenas quando todas as condições forem verdadeiras.
SELECT *
FROM clientes
WHERE cidade = 'Jacareí'
AND idade > 30;
Resultado: Pedro
Retorna registros quando pelo menos uma condição for verdadeira.
SELECT *
FROM clientes
WHERE cidade = 'Jacareí'
OR cidade = 'Campinas';
Resultado: Ana, Pedro e Maria.
Inverte a condição especificada.
SELECT *
FROM clientes
WHERE NOT cidade = 'Jacareí';
Resultado: Carlos e Maria.
SELECT *
FROM clientes
WHERE cidade = 'Jacareí'
AND idade >= 18
OR cidade = 'Campinas';
Consultas complexas podem combinar vários operadores ao mesmo tempo.
Parênteses ajudam a controlar a ordem de execução das condições.
SELECT *
FROM clientes
WHERE (cidade = 'Jacareí'
OR cidade = 'Campinas')
AND idade >= 18;
| Sistema | Exemplo |
|---|---|
| E-commerce | Produtos de uma categoria e em estoque |
| Escola | Alunos aprovados e frequentes |
| Banco | Clientes ativos ou premium |
| RH | Funcionários de um setor específico |
| Erro | Problema |
|---|---|
| Esquecer parênteses | Resultado incorreto |
| Confundir AND e OR | Filtro inadequado |
| Negação incorreta com NOT | Retorno inesperado |
| Condições conflitantes | Nenhum resultado |