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
.