# 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](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/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:

<table>
  <thead>
    <tr>
      <th>SQL `OR`</th>
      <th>SQL `AND`</th>
      <th>SQL `NOT`</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Filtra conjuntos de dados que satisfazem pelo menos uma das condições</td>
      <td>Tem em conta apenas os dados que satisfazem todas as condições</td>
      <td>Ignora informações que não cumprem uma determinada condição</td>
    </tr>
    <tr>
      <td>Alarga o âmbito da pesquisa a várias informações diferentes</td>
      <td>Limita a pesquisa a uma combinação de condições correspondentes</td>
      <td>Ignora informações irrelevantes através de critérios de exclusão</td>
    </tr>
  </tbody>
</table>

Dica Podes iniciar-te rapidamente na linguagem de programação e nas bases de dados [SQL](https://www.ionos.com/pt-pt/digitalguide/servidores/know-how/o-que-e-sql/), mesmo que não tenhas conhecimentos prévios. Na nossa [introdução ao SQL com exemplos](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/introducao-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`:

```sql
SELECT  *
FROM  tabla
WHERE  condición1  OR  condición2  OR …
```

Foram 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 SQL `WHERE` para 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`.

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

### 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\*\*.

```sql
SELECT  *
FROM  tabla
WHERE  NOT  (condición1  OR  condición2)
```

## Possí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:

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

### Filtrar 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:

```sql
SELECT  *
FROM  candidatos
WHERE  (titulación  =  'electrotecnia'  OR  titulación  =  'informática')
AND (experiencia  >=  3)
```

### Pesquisar dados por região

Na tabela «Clientes», tem de procurar clientes da Alemanha ou da Suíça. A sintaxe seria a seguinte:

```sql
SELECT  *
FROM  clientes
WHERE  país  =  'Alemania'  OR   país  =  'Suiza'
```

## Alternativas 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áusulas `WHERE`, `THEN` e `ELSE`, 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 operador `IN` combinado com a cláusula `WHERE`, é possível examinar conjuntos de dados definindo valores ou cadeias de caracteres através de `IN` e 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.


This is a markdown version of: [https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/sql-or/](https://www.ionos.com/pt-pt/digitalguide/servidores/configuracao/sql-or/) for AI/LLM consumption.