BETWEEN en SQL: Filtrado de datos dentro de un rango específico

BETWEEN en SQL: Filtrado de datos dentro de un rango específico

La cláusula BETWEEN en SQL es una herramienta poderosa para filtrar datos dentro de un rango específico, permitiendo seleccionar registros que se encuentran entre dos valores determinados. Es una forma eficiente de delimitar la búsqueda de información, simplificando consultas complejas y ofreciendo mayor precisión en la selección de datos.

Este artículo profundiza en el uso de BETWEEN y su contraparte NOT BETWEEN, explorando su sintaxis, ejemplos prácticos y casos de uso comunes. Aprenderás cómo aplicar estas cláusulas para filtrar datos numéricos, de texto y de fecha, mejorando tu habilidad para trabajar con bases de datos SQL.

Entendiendo BETWEEN

La cláusula BETWEEN se utiliza en las sentencias SQL para seleccionar registros que se encuentran dentro de un rango específico de valores. Su sintaxis es sencilla y se puede aplicar a diferentes tipos de datos.

La estructura básica de una sentencia SELECT con BETWEEN es la siguiente:

sql
SELECT columna1, columna2, ...
FROM tabla
WHERE columna BETWEEN valor_inicial AND valor_final;

En esta estructura, columna es la columna que se utiliza para filtrar los datos, valor_inicial y valor_final representan los límites del rango. La sentencia seleccionará los registros donde el valor de la columna se encuentra entre valor_inicial y valor_final, incluyendo ambos valores.

Ejemplos prácticos con BETWEEN

Para ilustrar el uso de BETWEEN, crearemos una base de datos de ejemplo llamada «productos» con una tabla «inventario» que contiene información sobre productos y sus precios.

«`sql
CREATE DATABASE productos;
USE productos;
CREATE TABLE inventario (
id INT PRIMARY KEY,
nombre VARCHAR(255),
precio DECIMAL(10,2)
);

LEER:  Solucionar problemas de sources.list en Debian 12: actualización fallida y DNS

INSERT INTO inventario (id, nombre, precio) VALUES
(1, ‘Teclado’, 50.00),
(2, ‘Mouse’, 25.00),
(3, ‘Monitor’, 200.00),
(4, ‘Auriculares’, 75.00),
(5, ‘Webcam’, 40.00),
(6, ‘Impresora’, 150.00);
«`

Filtrando productos con precios entre $50 y $100:

sql
SELECT *
FROM inventario
WHERE precio BETWEEN 50.00 AND 100.00;

Esta sentencia seleccionará los productos con precios entre $50 y $100, incluyendo los productos con precios exactos de $50 y $100.

Filtrando productos con nombres que comienzan con «M»:

sql
SELECT *
FROM inventario
WHERE nombre BETWEEN 'M' AND 'MZ';

En este caso, estamos utilizando BETWEEN para filtrar productos con nombres que empiezan con la letra «M», teniendo en cuenta el orden alfabético. Esto funciona porque ‘M’ es el primer valor del rango y ‘MZ’ es el último, incluyendo todos los nombres que comienzan con «M».

Filtrando productos que se vendieron entre el 2023-01-01 y 2023-03-31:

sql
SELECT *
FROM inventario
WHERE fecha_venta BETWEEN '2023-01-01' AND '2023-03-31';

Este ejemplo filtra productos vendidos en el rango de fechas especificado, incluyendo las fechas 2023-01-01 y 2023-03-31.

Utilizando BETWEEN en sentencias UPDATE

La cláusula BETWEEN también se puede utilizar en sentencias UPDATE para modificar los datos de una tabla de manera específica.

Actualizando el precio de los productos entre $50 y $100:

sql
UPDATE inventario
SET precio = precio + 10.00
WHERE precio BETWEEN 50.00 AND 100.00;

Esta sentencia aumentará el precio de los productos entre $50 y $100 en $10.00.

Entendiendo NOT BETWEEN

La cláusula NOT BETWEEN se utiliza para seleccionar registros que no se encuentran dentro del rango definido por los valores inicial y final. Es decir, se seleccionan los registros cuyos valores en la columna especificada no están comprendidos entre los dos valores del rango.

LEER:  Unidad NVMe Desaparecida: Soluciona problemas con el controlador r640 en Alma Linux

Su sintaxis es similar a la de BETWEEN, pero se agrega la palabra clave NOT antes de BETWEEN.

sql
SELECT columna1, columna2, ...
FROM tabla
WHERE columna NOT BETWEEN valor_inicial AND valor_final;

Ejemplos prácticos con NOT BETWEEN

Para ilustrar el uso de NOT BETWEEN, crearemos una nueva tabla de ejemplo llamada «clientes» con información sobre clientes y su edad.

«`sql
CREATE TABLE clientes (
id INT PRIMARY KEY,
nombre VARCHAR(255),
edad INT
);

INSERT INTO clientes (id, nombre, edad) VALUES
(1, ‘Juan Perez’, 25),
(2, ‘Maria Rodriguez’, 30),
(3, ‘Pedro Garcia’, 45),
(4, ‘Ana Lopez’, 22),
(5, ‘Luis Martinez’, 35);
«`

Seleccionando clientes que no tienen entre 25 y 35 años:

sql
SELECT *
FROM clientes
WHERE edad NOT BETWEEN 25 AND 35;

Esta sentencia seleccionará los clientes que no tienen una edad entre 25 y 35 años, incluyendo los que son menores de 25 o mayores de 35 años.

Seleccionando clientes cuyos nombres no empiezan con las letras entre «M» y «P»:

sql
SELECT *
FROM clientes
WHERE nombre NOT BETWEEN 'M' AND 'P';

Esta sentencia seleccionará los clientes cuyos nombres no empiezan con las letras del rango entre «M» y «P», incluyendo nombres que empiezan con letras antes de «M» o después de «P».

Conclusión

La cláusula BETWEEN es una herramienta fundamental para filtrar datos dentro de un rango específico en SQL. Su facilidad de uso, flexibilidad y capacidad de aplicación en diferentes tipos de datos la convierten en una opción ideal para consultas complejas y precisas.

Al comprender el funcionamiento de BETWEEN y NOT BETWEEN, podrás mejorar la eficiencia de tus consultas, obtener resultados más específicos y optimizar el manejo de información en tus bases de datos SQL. La práctica constante y la exploración de casos de uso reales te permitirán dominar el uso de estas cláusulas y sacarles el máximo provecho en tus proyectos.

LEER:  Nomenclatura de Dispositivos en Linux: Una Guía Exhaustiva