# SQL OR: consultas de datos con varias condiciones

El operador SQL `OR` optimiza la búsqueda en conjuntos de datos al coincidir **al menos con una de varias condiciones definidas**. SQL `OR` se puede combinar también con otros operadores lógicos como `AND` o `NOT` para mejorar y acelerar las consultas complejas.

## ¿Qué es el operador SQL `OR`?

Cuando se trata de buscar información relevante, [SQL AND](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-and/), [SQL NOT](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-not/) y SQL `OR` son los [operadores de SQL](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-operators/) más importantes. Mientras que `AND` encuentra datos que cumplen varias condiciones y `NOT` define criterios de exclusión, SQL `OR` amplía el conjunto de resultados. Por ello, tienes que definir varias condiciones de búsqueda cuyos resultados deben cumplir **al menos un criterio**. La ventaja es que estarás filtrando resultados relevantes que no tienen por qué cumplir todos los criterios.

Al formular con `OR` una condición de búsqueda, el operador suele utilizarse con [SQL SELECT](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-select/) y [SQL WHERE](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-where/) para **concretar conjuntos de datos, columnas y condiciones de búsqueda relevantes**. Para realizar una consulta aún más precisa, `OR` se puede combinar con otros operadores lógicos como `AND` y `NOT` o con otros operadores de comparación como `=`.

### SQL `OR`, `AND` y `NOT` de un vistazo

Los operadores SQL `OR`, `AND` y `NOT` cuentan con las siguientes diferencias:

<table>
  <thead>
    <tr>
      <th>SQL `OR`</th>
      <th>SQL `AND`</th>
      <th>SQL `NOT`</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Filtra conjuntos de datos que cumplen al menos una de las condiciones</td>
      <td>Tiene en cuenta solamente los datos que cumplen todas las condiciones</td>
      <td>Ignora información que no cumple una condición determinada</td>
    </tr>
    <tr>
      <td>Amplía el alcance de la búsqueda a varias informaciones diferentes</td>
      <td>Limita la búsqueda a una combinación de condiciones coincidentes</td>
      <td>Ignora información irrelevante mediante criterios de exclusión</td>
    </tr>
  </tbody>
</table>

Consejo Puedes iniciarte rápidamente en el lenguaje de programación y bases de datos [SQL](https://www.ionos.com/es-us/digitalguide/servidores/know-how/que-es-sql/), incluso si no tienes conocimientos previos. En nuestra [introducción a SQL con ejemplos](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-introduccion-con-ejemplos/) puedes aprender los conceptos básicos.

## La sintaxis del operador `OR`

El número de condiciones que definas para las consultas de datos puede comprender **dos o más condiciones**. Este es el aspecto de la sintaxis básica de `OR`:

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

Se han utilizado los siguientes parámetros:

- `SELECT`: mediante claves primarias o foráneas selecciona las columnas en las que quieres consultar datos. Mediante un asterisco `*`, en lugar del nombre de la columna, se busca en todo el conjunto de datos.
- `FROM`: define la tabla que se utiliza en tu consulta.
- `WHERE`: mediante operadores y otros parámetros, define condiciones de búsqueda con las que se limita la consulta.
- `OR`: se utiliza como operador lógico combinado con SQL `WHERE` para determinar criterios de búsqueda que los resultados deben o no cumplir.

Para limitar la consulta, **se puede combinar** con `AND` o `NOT`.

### SQL `OR` combinado con `AND`

Si se combina con `AND`, debe aplicarse al menos uno de los criterios de búsqueda `OR`, mientras que ambas condiciones de búsqueda `OR` deben cumplir la condición `AND`.

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

### SQL `OR` combinado con SQL `NOT`

Si se combina con `NOT`, se pueden **excluir los datos** que no cumplan al menos uno de los criterios de búsqueda definidos\*\*.

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

## Posibles aplicaciones del operador `OR`

Puedes utilizar el operador `OR` para buscar conjuntos de datos complejos según varios criterios. Se puede usar, por ejemplo:

- para filtrar datos de clientes, pedidos o productos según criterios de búsqueda combinados, como categorías de productos, características de productos o fechas de pedidos y reclamaciones;
- para buscar empresas de sectores o regiones determinados;
- para filtrar transacciones sospechosas o inválidas mediante varias condiciones;
- para buscar información sobre empleados pertenecientes a un departamento o equipo determinado;
- para recuperar candidatos que no disponen de ciertas cualificaciones o no tienen experiencia profesional.

## Ejemplos del operador SQL `OR`

Las aplicaciones del operador `OR` son prácticamente ilimitadas gracias a la posibilidad de combinación con SQL `WHERE`, otros operadores SQL y otras funciones de SQL. Te mostramos a continuación tres de sus ejemplos de aplicación.

### Buscar pedidos de categorías específicas

Imagina que buscas en la tabla “Clientes” únicamente personas que han pedido productos de la categoría “Electrónica”, de la categoría “Belleza” o de ambas categorías. Los resultados solo incluyen la información a la que se aplica **al menos una de las condiciones**. Para definir las categorías se emplea el operador de comparación `=`.

Su sintaxis tiene este aspecto:

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

### Filtrar candidatos

Imagina que en la tabla “Candidatos” necesitas encontrar personas que tengan una titulación en “Electrotecnia” o en “Informática” y que en ambos casos cuenten con más de tres años de experiencia. Para ello, has de combinar `OR` y `AND`. La búsqueda tendrá este aspecto:

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

### Buscar datos por región

En la tabla “Clientes” tienes que buscar clientes de Alemania o de Suiza. La sintaxis sería la siguiente:

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

## Alternativas a SQL `OR`

Con el operador `OR` es posible buscar con **varios criterios de búsqueda** de manera sencilla y rápida. Otros operadores de SQL ofrecen funciones idénticas o similares:

- `CASE`: la instrucción [SQL CASE](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-case/) permite comprobar, mediante las cláusulas `WHERE`, `THEN` y `ELSE`,condiciones de búsqueda y realizar análisis complejos sobre conjuntos de resultados relevantes. La evaluación se realiza siguiendo el método IF THEN ELSE de condición en condición, de abajo hacia arriba. Sin embargo, el análisis se detiene en cuanto se cumple una de las condiciones.
- `IN`: con el operador `IN` combinado con la cláusula `WHERE` se pueden examinar conjuntos de datos definiendo valores o cadenas de caracteres mediante `IN` y buscar coincidencias en una tabla o columna.
- `EXISTS`: el operador [SQL EXISTS](https://www.ionos.com/es-us/digitalguide/servidores/configuracion/sql-exists/) sirve para comprobar si al menos un conjunto de datos seleccionado perteneciente a otra tabla coincide con la primera tabla. Si hay al menos una coincidencia, se incluye el resultado en la tabla de destino. No obstante, este operador solo es útil si hay una relación entre ambas tablas.


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