SQL OR: consultas de dados com várias condições
O operador SQL OR otimiza a pesquisa em conjuntos de dados ao corresponder a pelo menos uma das várias condições definidas. O SQL OR também pode ser combinado com outros operadores lógicos, como AND ou NOT, para melhorar e acelerar consultas complexas.
O que é o operador SQL OR?
Quando se trata de procurar informações relevantes, os operadores SQL AND, SQL NOT e SQL OR são os mais importantes. Enquanto AND encontra dados que cumprem várias condições e NOT define critérios de exclusão, o SQL OR alarga o conjunto de resultados. Por isso, tem de definir várias condições de pesquisa cujos resultados devem cumprir , pelo menos, um critério. A vantagem é que estará a filtrar resultados relevantes que não têm necessariamente de cumprir todos os critérios.
Ao definir uma condição de pesquisa com OR, este é frequentemente utilizado com as instruções SQL SELECT e SQL WHERE para especificar conjuntos de dados, colunas e condições de pesquisa relevantes. Para realizar uma consulta ainda mais precisa, OR pode ser combinado com outros operadores lógicos, como AND e NOT, ou com outros operadores de comparação, como =.
SQL OR, AND e NOT num relance
Os operadores SQL OR, AND e NOT apresentam as seguintes diferenças:
SQL OR |
SQL AND |
SQL NOT |
|---|---|---|
| Filtra conjuntos de dados que satisfazem pelo menos uma das condições | Tem em conta apenas os dados que satisfazem todas as condições | Ignora informações que não cumprem uma determinada condição |
| Alarga o âmbito da pesquisa a várias informações diferentes | Limita a pesquisa a uma combinação de condições correspondentes | Ignora informações irrelevantes através de critérios de exclusão |
Podes iniciar-te rapidamente na linguagem de programação e nas bases de dados SQL, mesmo que não tenhas conhecimentos prévios. Na nossa introdução ao SQL com exemplos, podes aprender os conceitos básicos.
A sintaxe do operador OR
O número de condições que definir para as consultas de dados pode incluir duas ou mais condições. Eis como se apresenta a sintaxe básica do OR:
SELECT *
FROM tabla
WHERE condición1 OR condición2 OR …sqlForam utilizados os seguintes parâmetros:
SELECT: através de chaves primárias ou externas, selecione as colunas nas quais pretende consultar os dados. Utilizando um asterisco*, em vez do nome da coluna, a pesquisa é efetuada em todo o conjunto de dados.FROM: define a tabela a utilizar na sua consulta.WHERE: através de operadores e outros parâmetros, define as condições de pesquisa que limitam a consulta.OR: é utilizado como operador lógico combinado com o SQLWHEREpara determinar critérios de pesquisa que os resultados devem ou não cumprir.
Para restringir a pesquisa, pode-se combinar com AND ou NOT.
SQL OR combinado com AND
Se for combinado com AND, deve ser aplicado pelo menos um dos critérios de pesquisa OR, enquanto ambas as condições de pesquisa OR devem satisfazer a condição AND.
SELECT *
FROM tabla
WHERE (condición1 OR condición2) AND condición 3sqlSQL OR combinado com SQL NOT
Se combinado com NOT, é possível excluir os dados que não cumpram pelo menos um dos critérios de pesquisa definidos**.
SELECT *
FROM tabla
WHERE NOT (condición1 OR condición2)sqlPossíveis aplicações do operador OR
Pode utilizar o operador OR para pesquisar conjuntos de dados complexos com base em vários critérios. Pode ser utilizado, por exemplo:
- para filtrar dados de clientes, encomendas ou produtos de acordo com critérios de pesquisa combinados, tais como categorias de produtos, características dos produtos ou datas de encomendas e reclamações;
- para pesquisar empresas de determinados setores ou regiões;
- para filtrar transações suspeitas ou inválidas através de várias condições;
- para procurar informações sobre funcionários pertencentes a um determinado departamento ou equipa;
- para recuperar candidatos que não possuem determinadas qualificações ou experiência profissional.
Exemplos do operador SQL OR
As aplicações do operador OR são praticamente ilimitadas, graças à possibilidade de combinação com o SQL WHERE, outros operadores SQL e outras funções do SQL. Apresentamos a seguir três exemplos de aplicação.
Pesquisar encomendas de categorias específicas
Imagine que pretende pesquisar na tabela «Clientes» apenas as pessoas que encomendaram produtos da categoria «Eletrónica», da categoria «Beleza» ou de ambas as categorias. Os resultados incluem apenas as informações às quais se aplica pelo menos uma das condições. Para definir as categorias, utiliza-se o operador de comparação =.
A sua sintaxe tem o seguinte aspeto:
SELECT *
FROM clientes
WHERE (categoría = 'electrónica' OR categoría = 'belleza')sqlFiltrar candidatos
Imagina que, na tabela «Candidatos», precisas de encontrar pessoas com uma licenciatura em «Eletrônica» ou em «Informática» e que, em ambos os casos, tenham mais de três anos de experiência. Para isso, tens de combinar OR e AND. A pesquisa ficará assim:
SELECT *
FROM candidatos
WHERE (titulación = 'electrotecnia' OR titulación = 'informática')
AND (experiencia >= 3)sqlPesquisar dados por região
Na tabela «Clientes», tem de procurar clientes da Alemanha ou da Suíça. A sintaxe seria a seguinte:
SELECT *
FROM clientes
WHERE país = 'Alemania' OR país = 'Suiza'sqlAlternativas ao SQL OR
Com o operador OR, é possível realizar pesquisas com vários critérios de forma simples e rápida. Outros operadores SQL oferecem funções idênticas ou semelhantes:
CASE: a instrução SQL CASE permite verificar, através das cláusulasWHERE,THENeELSE, condições de pesquisa e realizar análises complexas sobre conjuntos de resultados relevantes. A avaliação é realizada seguindo o método IF THEN ELSE, de condição em condição, de baixo para cima. No entanto, a análise é interrompida assim que uma das condições for satisfeita.IN: com o operadorINcombinado com a cláusulaWHERE, é possível examinar conjuntos de dados definindo valores ou cadeias de caracteres através deINe procurar correspondências numa tabela ou coluna.EXISTS: o operador SQL EXISTS serve para verificar se pelo menos um conjunto de dados selecionado pertencente a outra tabela coincide com a primeira tabela. Se houver pelo menos uma correspondência, o resultado é incluído na tabela de destino. No entanto, este operador só é útil se houver uma relação entre ambas as tabelas.