Volver a la lista de artículos Artículos
Lectura de 7 minutos

El operador SQL BETWEEN

Los operadores de comparación SQL son herramientas esenciales para filtrar datos en las consultas de bases de datos. Entre estos operadores, el ENTRE destaca como una herramienta importante para especificar rangos dentro de conjuntos de datos.

Los operadores de comparación SQL, como BETWEEN, son útiles para filtrar datos en consultas a bases de datos. El operador BETWEEN permite seleccionar filas dentro de un rango determinado, por lo que resulta ideal para tareas como segmentar un público por rangos de edad, identificar umbrales para elementos entre determinadas cantidades o categorizar el rendimiento en función de las puntuaciones de los exámenes.

En este artículo, repasaremos los fundamentos del operador SQL BETWEEN. Nos centraremos en ejemplos prácticos y consejos realistas para sacarle el máximo partido. Tanto si eres principiante en SQL como si quieres mejorar tus habilidades, entender el operador SQL BETWEEN mejorará tus consultas SQL.

Si eres nuevo en SQL, ¿por qué no echas un vistazo a nuestro SQL para principiantes curso Si desea repasar y consolidar sus conocimientos de SQL, nuestro curso Ejercicio de SQL curso le llevará más lejos en su viaje de aprendizaje.

Dicho esto, ¡empecemos a descubrir el poder de SQL BETWEEN!

Entendiendo el Operador BETWEEN de SQL

Sintaxis Básica BETWEEN

El operador SQL BETWEEN sigue una sintaxis simple. ¿Te resulta difícil recordar la sintaxis SQL y los nombres de los operadores? No te preocupes, te ayudamos con nuestra hoja de trucos SQL.

La estructura típica de BETWEEN es la siguiente:

SELECT column_name(s)
FROM table_name
WHERE column_name BETWEEN value1 AND value2;

Desglosemos la sintaxis:

  • SELECT: Especifica de qué columnas recuperar datos.
  • FROM: La tabla que almacena los datos.
  • WHERE: Filtra las filas basándose en criterios específicos.
  • BETWEEN: El propio operador BETWEEN.
  • value1: El límite inferior del rango.
  • value2: El límite superior del rango.

Ejemplo práctico de BETWEEN

Es importante tener en cuenta que el operador BETWEEN incluye tanto el límite inferior como el superior. En otras palabras, incluye valores iguales a value1, value2, y cualquier valor que se encuentre entre ellos en el conjunto de resultados. Veámoslo con un ejemplo.

Imaginemos que trabajamos en unos grandes almacenes y queremos recuperar toda la información sobre los productos cuyo precio esté comprendido entre 12,99 y 19,99 dólares, ambos inclusive:

SELECT *
FROM products
WHERE price BETWEEN 12.99 AND 19.99;

Esta consulta devolverá todas las filas de la tabla products cuyo precio sea igual a 12,99, 19,99 o igual a cualquier precio entre 12,99 y 19,99. Como se ve aquí, el uso del operador BETWEEN simplifica y aclara el código, facilitando su lectura y mantenimiento. Para ver más ejemplos prácticos para principiantes, consulte nuestros 10 ejercicios para principiantes de Ejercicio de SQL con soluciones.

Simplificación de consultas con BETWEEN

Es posible que ya se haya dado cuenta de que el operador BETWEEN es esencialmente un atajo para combinar los operadores >= y <=. Utilizar la sintaxis column_name BETWEEN value1 AND value2 equivale a enunciar column_name >= value1 AND column_name <= value2. Aplicando esta sintaxis a nuestra consulta anterior, los resultados finales serán los mismos:

SELECT *
FROM products
WHERE price >= 50 AND price <= 100;

Sin embargo, el operador BETWEEN proporciona una sintaxis más compacta y obvia que el uso de los operadores >= y <=. Simplifica la creación de consultas, reduce los errores y mejora la legibilidad, por lo que es el método recomendado para especificar condiciones de rango en las consultas SQL.

El operador NOT BETWEEN

En SQL, a menudo utilizamos el operador lógico NOT para eliminar de nuestros datos las filas que no cumplen la condición dada. Del mismo modo, podemos utilizar NOT BETWEEN para conseguir los resultados opuestos del operador BETWEEN.

En otras palabras, el operador BETWEEN filtra los resultados dentro del rango especificado. El operador NOT BETWEEN filtra los resultados fuera del intervalo.

Consideremos una situación en la que queremos extraer todos los datos de la tabla customers en la que la edad de los clientes no esté comprendida entre 25 y 30 años. Podemos conseguirlo con el operador NOT BETWEEN:

SELECT *
FROM customers
WHERE age NOT BETWEEN 25 AND 30;

En esta consulta:

  • SELECT *: especifica que deseamos recuperar todas las columnas.
  • FROM clientes: La tabla de la que recuperar los datos.
  • WHERE AGE IS NOT BETWEEN 25 AND 30: Selecciona las filas en las que el valor de la columna edad es inferior a 25 y superior a 30.

Otros ejemplos de este método podrían ser la localización de productos con cantidades fuera de un rango especificado, la búsqueda de empleados contratados fuera de un periodo de tiempo determinado o la identificación de consumidores con compras totales por debajo o por encima de un importe determinado.

Uso del operador BETWEEN con valores de texto

Aunque suele asociarse a rangos numéricos, el operador SQL BETWEEN también puede aplicarse a valores de texto.

Imaginemos que volvemos al escenario de los grandes almacenes con la tabla products. Usando la columna category (que contiene categorías de productos como valores de texto), queremos recuperar todas las categorías que caen alfabéticamente entre categorías específicas.

SELECT *
FROM products
WHERE category BETWEEN 'Electronics' AND 'Toys and Games';

En esta consulta

  • SELECT *: indica que deseamos recuperar todas las columnas.
  • FROM Productos: La tabla de la que se obtendrán los datos.
  • WHERE category IS BETWEEN 'Electronics' AND 'Toys and Games': Filtra las filas para incluir sólo aquellas cuyo valor de columna de categoría esté comprendido entre 'Electronics' y 'Toys and Games' en orden alfabético , inclusive.

Como puede ver, el uso del operador BETWEEN de SQL con valores de texto le permite filtrar fácilmente los datos basándose en el orden alfabético. Otro ejemplo podría incluir la recuperación de información sobre clientes cuyos apellidos se encuentren dentro de un rango alfabético específico:

SELECT *
FROM customers
WHERE last_name BETWEEN 'B' AND 'G';

Del mismo modo, en el escenario de los grandes almacenes, podría filtrar columnas que siguen una secuencia (por ejemplo, códigos de producto):

SELECT *
FROM products
WHERE product_code BETWEEN 'C100' AND 'C150';

Estos ejemplos no sólo demuestran la utilidad del operador BETWEEN, sino también su versatilidad para filtrar algo más que datos numéricos.

Uso del operador BETWEEN de SQL con fechas

El operador BETWEEN de SQL también puede ser útil para seleccionar datos dentro de periodos de fechas específicos.

Volvamos a nuestro escenario de los grandes almacenes e imaginemos que tenemos una tabla llamada orders con una columna llamada fecha_pedido que contiene las fechas en las que se realizaron los pedidos. Examinemos cómo podemos utilizar esta forma para recuperar todos los pedidos realizados entre la primera semana de abril de 2024:

SELECT * FROM sales
WHERE sale_date BETWEEN '2024-04-01' AND '2024-04-07';

En esta consulta

  • SELECT *: Indica que queremos recuperar todas las columnas.
  • FROM sales: Indica la tabla de la que se obtendrán los datos.
  • WHERE sales_date BETWEEN '2024-04-01' AND '2024-04-07': Filtra las filas a aquellas cuya order_date esté comprendida entre el 1 de abril de 2024 y el 7 de abril de 2024, ambos inclusive.

Importante: Cuando se utiliza el operador BETWEEN con datos de fecha o de fecha y hora, se incluyen tanto la fecha de inicio como la de fin, pero se excluye el componente temporal. Escribir '2024-04-07' equivale a '2024-04-07 00:00:00'. Los resultados de esta consulta incluirán filas desde '2024-04-01 00:00:00' (es decir, 12 AM del 1 de abril) hasta '2024-04-07 00:00:00', lo que significa que se excluirán las ventas posteriores a la medianoche del día 7. Para superar esta limitación, puede ampliar la consulta de la siguiente manera:

SELECT * FROM sales 
WHERE sale_date >= '2024-04-01' AND sale_date <= '2024-04-07';

Para evitar errores, es mejor utilizar los operadores <= (menor o igual que) y >= (mayor o igual que), especialmente si no está seguro del tipo de datos. Con este método se incluye todo el intervalo de fechas, incluidas las marcas de tiempo dentro de las fechas especificadas.

Hora de Practicar SQL BETWEEN

Para concluir, el operador SQL BETWEEN es una herramienta imprescindible en tu caja de herramientas SQL. Se puede utilizar con distintos tipos de datos, como números, texto y fechas. Su sintaxis sencilla y su naturaleza inclusiva lo convierten en la opción ideal para filtrar filas basándose en criterios específicos.

Sin embargo, es importante conocer el comportamiento de BETWEEN, especialmente cuando se trata de valores de fecha y hora, para garantizar la fiabilidad de los resultados. Aunque el operador BETWEEN expresa condiciones de rango de forma concisa, es mejor utilizar la sintaxis <= AND >= para incluir un rango de fechas completo.

Si conoce la sintaxis, los usos y los comportamientos de SQL BETWEEN, podrá mejorar el rendimiento de las consultas y la precisión de la recuperación de datos. El operador BETWEEN es una herramienta imprescindible para los expertos en SQL, ya que permite optimizar los procesos de las bases de datos y extraer datos de forma eficaz. ¿Listo para profundizar? Pruebe nuestro Ejercicio de SQL y empiece a crear sus propias consultas en BETWEEN.