O operador SQL OR otimiza a pesquisa em conjuntos de dados ao cor­res­pon­der a pelo menos uma das várias condições definidas. O SQL OR também pode ser combinado com outros ope­ra­do­res lógicos, como AND ou NOT, para melhorar e acelerar consultas complexas.

O que é o operador SQL OR?

Quando se trata de procurar in­for­ma­ções re­le­van­tes, os ope­ra­do­res SQL AND, SQL NOT e SQL OR são os mais im­por­tan­tes. 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 re­sul­ta­dos. Por isso, tem de definir várias condições de pesquisa cujos re­sul­ta­dos devem cumprir , pelo menos, um critério. A vantagem é que estará a filtrar re­sul­ta­dos re­le­van­tes que não têm ne­ces­sa­ri­a­mente de cumprir todos os critérios.

Ao definir uma condição de pesquisa com OR, este é fre­quen­te­mente utilizado com as ins­tru­ções SQL SELECT e SQL WHERE para es­pe­ci­fi­car conjuntos de dados, colunas e condições de pesquisa re­le­van­tes. Para realizar uma consulta ainda mais precisa, OR pode ser combinado com outros ope­ra­do­res lógicos, como AND e NOT, ou com outros ope­ra­do­res de com­pa­ra­ção, como =.

SQL OR, AND e NOT num relance

Os ope­ra­do­res SQL OR, AND e NOT apre­sen­tam as seguintes di­fe­ren­ças:

SQL OR SQL AND SQL NOT
Filtra conjuntos de dados que sa­tis­fa­zem pelo menos uma das condições Tem em conta apenas os dados que sa­tis­fa­zem todas as condições Ignora in­for­ma­ções que não cumprem uma de­ter­mi­nada condição
Alarga o âmbito da pesquisa a várias in­for­ma­ções di­fe­ren­tes Limita a pesquisa a uma com­bi­na­ção de condições cor­res­pon­den­tes Ignora in­for­ma­ções ir­re­le­van­tes através de critérios de exclusão
Dica

Podes iniciar-te ra­pi­da­mente na linguagem de pro­gra­ma­ção e nas bases de dados SQL, mesmo que não tenhas co­nhe­ci­men­tos prévios. Na nossa in­tro­du­çã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 …
sql

Foram uti­li­za­dos os seguintes pa­râ­me­tros:

  • SELECT: através de chaves primárias ou externas, selecione as colunas nas quais pretende consultar os dados. Uti­li­zando 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 ope­ra­do­res e outros pa­râ­me­tros, define as condições de pesquisa que limitam a consulta.
  • OR: é utilizado como operador lógico combinado com o SQL WHERE para de­ter­mi­nar critérios de pesquisa que os re­sul­ta­dos devem ou não cumprir.

Para res­trin­gir 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 sa­tis­fa­zer a condição AND.

SELECT  *
FROM  tabla
WHERE  (condición1  OR  condición2)  AND  condición 3
sql

SQL 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)
sql

Possíveis apli­ca­çõ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, en­co­men­das ou produtos de acordo com critérios de pesquisa com­bi­na­dos, tais como ca­te­go­rias de produtos, ca­rac­te­rís­ti­cas dos produtos ou datas de en­co­men­das e re­cla­ma­ções;
  • para pesquisar empresas de de­ter­mi­na­dos setores ou regiões;
  • para filtrar tran­sa­ções suspeitas ou inválidas através de várias condições;
  • para procurar in­for­ma­ções sobre fun­ci­o­ná­rios per­ten­cen­tes a um de­ter­mi­nado de­par­ta­mento ou equipa;
  • para recuperar can­di­da­tos que não possuem de­ter­mi­na­das qua­li­fi­ca­ções ou ex­pe­ri­ên­cia pro­fis­si­o­nal.

Exemplos do operador SQL OR

As apli­ca­ções do operador OR são pra­ti­ca­mente ili­mi­ta­das, graças à pos­si­bi­li­dade de com­bi­na­ção com o SQL WHERE, outros ope­ra­do­res SQL e outras funções do SQL. Apre­sen­ta­mos a seguir três exemplos de aplicação.

Pesquisar en­co­men­das de ca­te­go­rias es­pe­cí­fi­cas

Imagine que pretende pesquisar na tabela «Clientes» apenas as pessoas que en­co­men­da­ram produtos da categoria «Ele­tró­nica», da categoria «Beleza» ou de ambas as ca­te­go­rias. Os re­sul­ta­dos incluem apenas as in­for­ma­ções às quais se aplica pelo menos uma das condições. Para definir as ca­te­go­rias, utiliza-se o operador de com­pa­ra­ção =.

A sua sintaxe tem o seguinte aspeto:

SELECT  *
FROM  clientes
WHERE  (categoría  =  'electrónica'  OR  categoría =  'belleza')
sql

Filtrar can­di­da­tos

Imagina que, na tabela «Can­di­da­tos», precisas de encontrar pessoas com uma li­cen­ci­a­tura em «Ele­trô­nica» ou em «In­for­má­tica» e que, em ambos os casos, tenham mais de três anos de ex­pe­ri­ên­cia. 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)
sql

Pesquisar 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'
sql

Al­ter­na­ti­vas ao SQL OR

Com o operador OR, é possível realizar pesquisas com vários critérios de forma simples e rápida. Outros ope­ra­do­res SQL oferecem funções idênticas ou se­me­lhan­tes:

  • CASE: a instrução SQL CASE permite verificar, através das cláusulas WHERE, THEN e ELSE, condições de pesquisa e realizar análises complexas sobre conjuntos de re­sul­ta­dos re­le­van­tes. 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 é in­ter­rom­pida assim que uma das condições for sa­tis­feita.
  • IN: com o operador IN combinado com a cláusula WHERE, é possível examinar conjuntos de dados definindo valores ou cadeias de ca­rac­te­res através de IN e procurar cor­res­pon­dên­cias numa tabela ou coluna.
  • EXISTS: o operador SQL EXISTS serve para verificar se pelo menos um conjunto de dados se­le­ci­o­nado per­ten­cente a outra tabela coincide com a primeira tabela. Se houver pelo menos uma cor­res­pon­dên­cia, o resultado é incluído na tabela de destino. No entanto, este operador só é útil se houver uma relação entre ambas as tabelas.
Ir para o menu principal