En SQL, las cláusulas son componentes muy importantes que nos permiten realizar consultas avanzadas y personalizadas en bases de datos. Estas cláusulas añaden funcionalidad a nuestras consultas, como combinar resultados, buscar patrones de texto o filtrar valores dentro de rangos específicos.
Hoy vamos a explorar cuatro cláusulas importantes: UNION, LIKE, IN y BETWEEN.
Comenzaremos con dos tablas de referencia, usuarios y productos:
Tabla Usuarios:
| id | nombre | edad |
|---|---|---|
| 1 | Juan | 25 |
| 2 | María | 30 |
| 3 | Alejandro | 28 |
| 4 | Laura | 22 |
| 5 | Ana | 35 |
Tabla Productos:
| id | nombre | precio |
|---|---|---|
| 1 | Camiseta | 20 |
| 2 | Pantalón | 30 |
| 3 | Zapatos | 50 |
| 4 | Accesorios | 10 |
| 5 | Chaqueta | 40 |
🤝 UNION
La cláusula UNION se utiliza para combinar el resultado de dos o más consultas en un solo conjunto de resultados. Cada consulta debe tener el mismo número de columnas y tipos de datos compatibles.
sqlSELECT <columnas> FROM <tabla1> UNION SELECT <columnas> FROM <tabla2>;
Hagamos un ejemplo utilizando las tablas usuarios y productos:
sqlSELECT nombre, edad FROM usuarios UNION SELECT nombre, NULL FROM productos;
Hemos combinado los nombres y edades de la tabla "usuarios" con los nombres de la tabla "productos". Como la tabla "productos" no tiene una columna de edad, se usa NULL como valor en su lugar.
| nombre | edad |
|---|---|
| Juan | 25 |
| María | 30 |
| Alejandro | 28 |
| Laura | 22 |
| Ana | 35 |
| Camiseta | NULL |
| Pantalón | NULL |
| Zapatos | NULL |
| Accesorios | NULL |
| Chaqueta | NULL |
De esta manera se han combinado el resultado de dos consultas con UNION
🔍 LIKE
La cláusula LIKE se utiliza para buscar patrones de texto en una columna. Podemos usar caracteres comodín para representar varios caracteres o caracteres individuales.
sqlSELECT <columnas> FROM <tabla> WHERE <columna> LIKE <patron>;
Aquí hay un ejemplo de código con nuestras tablas usando LIKE:
sqlSELECT nombre FROM usuarios WHERE nombre LIKE 'A%';
Estamos seleccionando los nombres de la tabla "usuarios" donde el nombre comienza con la letra 'A':
| nombre |
|---|
| Alejandro |
| Ana |
🎛️ IN
La cláusula IN se usa para verificar si un valor se encuentra en una lista de valores especificada.
sqlSELECT <columnas> FROM <tabla> WHERE <columna> IN (<valor1>, <valor2>, ...);
Probemos usando IN en nuestras tablas.
sqlSELECT nombre FROM usuarios WHERE edad IN (25, 30);
Solo estamos seleccionando en esta consulta los nombres de la tabla "usuarios" donde la edad es igual a 25 o 30.
| nombre |
|---|
| Juan |
| Maria |
| Alejandro |
↔️ BETWEEN
La cláusula BETWEEN se utiliza para verificar si un valor se encuentra dentro de un rango especificado.
sqlSELECT <columnas> FROM <tabla> WHERE <columna> BETWEEN <valor1> AND <valor2>;
Podemos probarlo con la tabla de ejemplo.
sqlSELECT nombre FROM usuarios WHERE edad BETWEEN 25 AND 30;
Nos quedamos solo con los nombres de la tabla "usuarios" donde la edad está comprendida entre 25 y 30, incluyendo ambos valores.
Y el resultado de la consulta es el siguiente:
| nombre |
|---|
| Juan |
| Maria |
| Alejandro |
En este resultado, se muestran los nombres de los usuarios cuyas edades están dentro del rango especificado en la cláusula BETWEEN.