El uso de `WHERE` en SQL es para filtrar los datos que se extraen de una tabla, permitiéndote obtener solo los registros que cumplan con una o más condiciones específicas. Es muy útil cuando no necesitas todas las filas de una tabla, sino un subconjunto que cumpla con criterios específicos.
Concepto del WHERE:
`WHERE` permite establecer una o varias condiciones para seleccionar los registros que deseas ver o manipular en la base de datos. Se suele combinar con operadores como `=`, `>`, `<`, `LIKE`, `BETWEEN`, `IN`, y otros, para definir con precisión los criterios.
Estructura básica del WHERE:
sql
SELECT columna1, columna2, ...
FROM tabla
WHERE condición;
Ejemplos claros de WHERE:
1. Filtrar por igualdad:
Supongamos que tienes una tabla llamada `clientes` con los siguientes datos:
| ID | Nombre | País | Total_Compras |
| --- | -------- | --------- | ------------- |
| 1 | Juan | Argentina | 800 |
| 2 | María | Chile | 1200 |
| 3 | Pedro | Argentina | 1500 |
Si deseas obtener solo los clientes que son de Argentina, usarías:
sql
SELECT Nombre, País
FROM clientes
WHERE País = 'Argentina';
Resultado:
| Nombre | País |
| ------ | --------- |
| Juan | Argentina |
| Pedro | Argentina |
2. Filtrar por una condición numérica:
Si quieres obtener todos los clientes que hayan hecho compras mayores a $1000, harías:
sql
SELECT Nombre, Total_Compras
FROM clientes
WHERE Total_Compras > 1000
Resultado:
| Nombre | Total_Compras |
| ------ | -------------- |
| María | 1200 |
| Pedro | 1500 |
3. **Filtrar por texto con `LIKE`:**
El operador `LIKE` se usa para buscar patrones en texto. Por ejemplo, si quieres encontrar a todos los clientes cuyo nombre comience con "M", usarías:
sql
SELECT Nombre
FROM clientes
WHERE Nombre LIKE 'M%';
Resultado:
| Nombre |
| ------ |
| María |
El `%` es un comodín que representa cualquier número de caracteres.
4. **Filtrar por un rango con `BETWEEN`:**
Si quieres obtener los clientes cuyas compras están entre $1000 y $1500, podrías usar `BETWEEN`:
sql
SELECT Nombre, Total_Compras
FROM clientes
WHERE Total_Compras BETWEEN 1000 AND 1500;
Resultado:
| Nombre | Total_Compras |
| ------ | -------------- |
| María | 1200 |
| Pedro | 1500 |
5. **Filtrar por varios valores con `IN`:**
Si quieres obtener los clientes de Argentina y Chile, podrías usar el operador `IN`:
sql
SELECT Nombre, País
FROM clientes
WHERE País IN ('Argentina', 'Chile');
Resultado:
| Nombre | País |
| ------ | --------- |
| Juan | Argentina |
| María | Chile |
| Pedro | Argentina |
Resumen:
El `WHERE` en SQL te permite especificar criterios para filtrar las filas que deseas seleccionar, actualizar o eliminar en una tabla. Se combina con operadores y funciones para obtener resultados más precisos y personalizados.