1. Introducción
Uno de los elementos importantes para ejecutar consultas de manera eficiente en bases de datos MySQL es el operador BETWEEN
. Este operador resulta muy útil cuando se necesita comprobar si los datos están dentro de un rango específico. Se utiliza al definir rangos de números, fechas o cadenas de texto, permitiendo extraer datos de forma eficiente en búsquedas y filtrados dentro de la base de datos. En este artículo explicaremos en detalle cómo usar el operador BETWEEN
en MySQL, con ejemplos prácticos y puntos a tener en cuenta.
2. Sintaxis básica del operador BETWEEN
¿Qué es el operador BETWEEN
?
El operador BETWEEN
es una de las condiciones utilizadas en la cláusula WHERE
, que verifica si el valor de una columna está dentro de un rango específico. La sintaxis básica es la siguiente:
SELECT nombre_columna
FROM nombre_tabla
WHERE nombre_columna BETWEEN valor_inicial AND valor_final;
Por ejemplo, si en una tabla se almacena la edad de los empleados, este operador permite extraer solo aquellos que se encuentran en un rango de edades determinado.
Forma negativa NOT BETWEEN
Si deseas buscar valores que no estén dentro de un rango, puedes usar la forma negativa NOT BETWEEN
.
SELECT nombre_columna
FROM nombre_tabla
WHERE nombre_columna NOT BETWEEN valor_inicial AND valor_final;
3. Rango numérico
Uso de BETWEEN
en rangos numéricos
El operador BETWEEN
es especialmente útil para definir rangos numéricos. Por ejemplo, si deseas extraer empleados cuyo salario esté entre 50000 y 100000, puedes escribir la consulta de esta forma:
SELECT employee_id, name, salary
FROM employees
WHERE salary BETWEEN 50000 AND 100000;
Datos de ejemplo:
employee_id | name | salary |
---|---|---|
1 | Sato | 45000 |
2 | Suzuki | 55000 |
3 | Takahashi | 75000 |
4 | Tanaka | 120000 |
Resultado de la consulta:
employee_id | name | salary |
---|---|---|
2 | Suzuki | 55000 |
3 | Takahashi | 75000 |
En esta consulta se seleccionan únicamente los empleados cuyo salario se encuentra entre 50000 y 100000.
Diferencia con los operadores de comparación
La misma condición puede escribirse con operadores de comparación de esta forma:
SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;
Usar BETWEEN
simplifica la consulta y la hace más legible. Especialmente cuando se manejan múltiples rangos, BETWEEN
mejora la claridad del código.

4. Rango de fechas
Uso de BETWEEN
con datos de fecha
BETWEEN
también puede aplicarse a rangos de fechas. Por ejemplo, si deseas extraer pedidos entre el 1 de enero de 2024 y el 31 de diciembre de 2024, la consulta sería:
SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';
Datos de ejemplo:
order_id | customer_id | order_date |
---|---|---|
1 | 101 | 2024-01-15 |
2 | 102 | 2024-05-30 |
3 | 103 | 2025-03-01 |
Resultado de la consulta:
order_id | customer_id | order_date |
---|---|---|
1 | 101 | 2024-01-15 |
2 | 102 | 2024-05-30 |
De esta forma, el operador BETWEEN
extrae los datos que se encuentran dentro del rango de fechas especificado.
Consideraciones sobre datos con hora
Si la columna de fecha es de tipo DATETIME
e incluye hora, es necesario prestar atención. Al usar BETWEEN
, el rango abarca desde las 00:00:00 del día inicial hasta las 00:00:00 del día siguiente al valor final. Para mayor precisión, se puede escribir:
WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';
5. Rango de cadenas de texto
Uso de BETWEEN
con datos de texto
El operador BETWEEN
también se aplica a cadenas. Por ejemplo, si deseas buscar productos cuyo nombre esté entre ‘A’ y ‘M’, la consulta sería:
SELECT product_id, product_name
FROM products
WHERE product_name BETWEEN 'A' AND 'M';
Datos de ejemplo:
product_id | product_name |
---|---|
1 | Apple |
2 | Banana |
3 | Mango |
4 | Orange |
Resultado de la consulta:
product_id | product_name |
---|---|
1 | Apple |
2 | Banana |
3 | Mango |
Precauciones con el orden alfabético
Al trabajar con rangos de cadenas de texto, se debe tener en cuenta que la comparación se realiza según el orden alfabético. Además, algunas configuraciones diferencian entre mayúsculas y minúsculas, por lo que es importante revisar la configuración de la base de datos. Por ejemplo, 'a'
y 'A'
pueden considerarse diferentes.
6. Consideraciones al usar BETWEEN
Precauciones al definir rangos
Al utilizar el operador BETWEEN
, es importante respetar el orden de los valores. Si el valor inicial es mayor que el valor final, la consulta puede devolver resultados inesperados.
SELECT * FROM table_name WHERE column_name BETWEEN 100 AND 50; -- Resultado no esperado
También es importante recordar que BETWEEN
incluye ambos extremos del rango, por lo que se deben elegir cuidadosamente los valores de inicio y fin.
Uso de índices y eficiencia
El operador BETWEEN
ofrece un rendimiento equivalente al de los operadores de comparación tradicionales. Sin embargo, para optimizar la velocidad de las consultas es fundamental tener índices bien configurados. Por ejemplo, si una columna de fechas tiene índice, las consultas con BETWEEN
se ejecutan de manera más eficiente.
7. Consultas prácticas y ejemplos avanzados
Uso de BETWEEN en múltiples columnas
El operador BETWEEN
también puede usarse en combinación con varias columnas. Por ejemplo, si deseas buscar productos cuyo precio y cantidad en stock estén dentro de un rango específico, puedes escribir:
SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
AND stock BETWEEN 50 AND 200;
Esta consulta extrae productos cuyo precio esté entre 1000 y 5000, y además tengan entre 50 y 200 unidades en inventario.
Ejemplo de uso de NOT BETWEEN
Con NOT BETWEEN
es posible obtener datos fuera de un rango. Por ejemplo, para extraer empleados con salario menor a 50000 o mayor a 100000:
SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;
Resultado de la consulta:
employee_id | name | salary |
---|---|---|
1 | Sato | 45000 |
4 | Tanaka | 120000 |
En este caso, se seleccionan los empleados cuyos salarios no están en el rango entre 50000 y 100000. NOT BETWEEN
facilita la extracción de datos fuera de un rango establecido.
8. Ejemplos visuales de consultas
Para comprender mejor los resultados de una consulta, es útil apoyarse en representaciones visuales. Por ejemplo, un esquema puede ilustrar cómo funciona BETWEEN
:
Rango de precios: [----- 1000 ---- 5000 -----]
Precio del Producto A: 3000 (dentro del rango)
Precio del Producto B: 6000 (fuera del rango)
De esta manera, los diagramas ayudan a entender de forma intuitiva si un dato se encuentra dentro o fuera del rango definido.
9. Conclusión
El operador BETWEEN
es una herramienta muy práctica en MySQL para realizar búsquedas basadas en rangos. Se puede aplicar a números, fechas y cadenas de texto, permitiendo escribir consultas claras y eficientes. Sin embargo, es fundamental tener presentes ciertos detalles, como que incluye los valores extremos y la correcta configuración de índices. Con un buen uso de BETWEEN
, podrás optimizar tus consultas y extraer la información necesaria de manera más ágil.
10. Referencias
Para profundizar más en el uso de consultas y en otros operadores de MySQL, es recomendable revisar la documentación oficial de MySQL y libros especializados en bases de datos. Además, realizar pruebas prácticas con tus propias consultas reforzará tu comprensión del operador BETWEEN
.