Operadores lógicos y de comparación
Concepto clave
Los operadores lógicos y de comparación son herramientas que te permiten filtrar datos con precisión en SQL. Piensa en ellos como los filtros de una búsqueda avanzada: mientras que un WHERE simple solo puede verificar una condición, los operadores lógicos (AND, OR, NOT) y de comparación (=, <>, <, >, <=, >=) te permiten combinar múltiples criterios para obtener exactamente los registros que necesitas.
Imagina que tienes una lista de pedidos. Con un solo filtro podrías obtener todos los pedidos de un cliente específico. Pero con operadores lógicos puedes obtener, por ejemplo, los pedidos de ese cliente que además tengan un monto mayor a $100. O los pedidos de dos clientes diferentes. O todos los pedidos excepto los cancelados.
En SQL, estos operadores se usan dentro de la cláusula WHERE para refinar las consultas. Dominarlos es fundamental para cualquier análisis de datos.
Cómo funciona en la práctica
Supongamos que trabajas con una tabla llamada pedidos que tiene las columnas: id, cliente, monto, fecha, estado.
Queremos obtener los pedidos del cliente 'Juan' que tengan un monto mayor a 500. La consulta sería:
SELECT * FROM pedidos WHERE cliente = 'Juan' AND monto > 500;Si queremos los pedidos de 'Juan' o de 'María':
SELECT * FROM pedidos WHERE cliente = 'Juan' OR cliente = 'María';Para excluir los pedidos cancelados:
SELECT * FROM pedidos WHERE NOT estado = 'cancelado';También podemos combinar operadores. Por ejemplo, pedidos de 'Juan' con monto > 500 o pedidos de 'María' con monto > 300:
SELECT * FROM pedidos WHERE (cliente = 'Juan' AND monto > 500) OR (cliente = 'María' AND monto > 300);Nota el uso de paréntesis para agrupar condiciones, igual que en matemáticas.
Código en acción
Vamos a crear una tabla de ejemplo y ejecutar consultas paso a paso.
-- Crear tabla temporal
CREATE TABLE productos (
id INT,
nombre VARCHAR(50),
precio DECIMAL(10,2),
stock INT,
categoria VARCHAR(20)
);
-- Insertar datos
INSERT INTO productos VALUES
(1, 'Laptop', 1200.00, 10, 'Electrónica'),
(2, 'Mouse', 25.50, 50, 'Electrónica'),
(3, 'Libro SQL', 45.00, 100, 'Libros'),
(4, 'Monitor', 300.00, 20, 'Electrónica'),
(5, 'Cuaderno', 5.00, 200, 'Papelería');
-- Consulta 1: Productos electrónicos con precio menor o igual a 500
SELECT * FROM productos WHERE categoria = 'Electrónica' AND precio <= 500;
-- Consulta 2: Productos con stock mayor a 50 o precio menor a 10
SELECT * FROM productos WHERE stock > 50 OR precio < 10;
-- Consulta 3: Productos que NO sean de Papelería
SELECT * FROM productos WHERE NOT categoria = 'Papelería';
-- Consulta 4: Combinación: Electrónica con precio entre 20 y 1000
SELECT * FROM productos WHERE categoria = 'Electrónica' AND precio >= 20 AND precio <= 1000;Resultado esperado: La consulta 1 devuelve Mouse y Monitor; la 2 devuelve Libro SQL, Cuaderno; la 3 devuelve Laptop, Mouse, Libro SQL, Monitor; la 4 devuelve Mouse y Monitor.
Errores comunes
- Usar = en lugar de <> (o !=): Para negar una igualdad, usa
<>o!=. Ejemplo:WHERE estado <> 'inactivo'. - Olvidar los paréntesis al combinar AND y OR:
ANDtiene prioridad sobreOR. Siempre usa paréntesis para evitar ambigüedades. Ejemplo:WHERE (cond1 OR cond2) AND cond3. - Usar AND para condiciones excluyentes: Si quieres que se cumpla al menos una, usa OR. AND requiere que todas sean verdaderas.
- Comparar con NULL: Cualquier comparación con NULL da NULL (falso). Usa
IS NULLoIS NOT NULL. - Confundir operadores de comparación con asignación: En SQL,
=es comparación en WHERE, no asignación.
Checklist de dominio
- Escribí una consulta con
ANDque filtra por dos columnas diferentes. - Escribí una consulta con
ORque filtra por dos valores en la misma columna. - Usé
NOTpara excluir un valor específico. - Combiné
ANDyORcon paréntesis correctamente. - Usé operadores de comparación (<, >, <=, >=, <>) en al menos una consulta.
- Evité comparar con
NULLusandoIS NULLoIS NOT NULL. - Probé mis consultas en un conjunto de datos de ejemplo y verifiqué los resultados.
Para verificar tu resultado, ejecuta la consulta y cuenta los registros obtenidos. Luego, haz una comprobación manual con los datos originales para asegurarte de que el filtro funciona como esperas.
Filtrar pedidos con operadores lógicos
Utilizando la tabla pedidos con las columnas id, cliente, monto, fecha, estado, escribe las siguientes consultas SQL. Crea un archivo llamado ejercicio_operadores.sql con todas las consultas.
- Obtén todos los pedidos del cliente 'Ana' con monto mayor a 100.
- Obtén los pedidos del cliente 'Luis' o aquellos con estado 'pendiente'.
- Obtén los pedidos que NO sean del cliente 'Carlos' y que tengan monto menor o igual a 50.
- Obtén los pedidos con monto entre 30 y 200 (inclusive) y que no estén en estado 'cancelado'.
Mini-rúbrica de evaluación:
- Uso correcto de operadores de comparación (1 punto)
- Uso correcto de AND/OR/NOT (1 punto)
- Uso de paréntesis cuando es necesario (1 punto)
- Resultados correctos según los datos de prueba (2 puntos)
Pistas
- Recuerda que los operadores de comparación son =, <>, <, >, <=, >=.
- Para rangos usa AND: monto >= 30 AND monto <= 200.
- Para negar un estado usa NOT estado = 'cancelado' o estado <> 'cancelado'.
Aplicación práctica en un caso real
Aplicar Operadores lógicos y de comparación dentro del contexto de SQL para Principiantes: Domina las Bases de Datos desde Cero con criterio práctico, evitando quedarse en una definición aislada. Para que esta lección sea útil, imagina un escenario concreto: tienes que usar este tema para mejorar un proceso, tomar una decisión, crear un entregable o explicar una recomendación a otra persona. La pregunta no es solo “qué significa”, sino “qué haría diferente después de entenderlo”.
Un buen uso empieza por delimitar el problema. Define qué resultado quieres lograr, qué información tienes disponible, qué restricciones existen y cómo sabrás si la decisión fue correcta. Esta forma de pensar evita respuestas genéricas y convierte el aprendizaje en una herramienta de trabajo.
Marco de decisión
Antes de avanzar, revisa tres niveles: primero, el objetivo operativo; segundo, los recursos disponibles; tercero, el riesgo de equivocarte. En SQL para Principiantes: Domina las Bases de Datos desde Cero, muchas decisiones fallan porque se copia una táctica sin entender el contexto. El marco correcto te obliga a adaptar, no solo repetir.
- Objetivo: qué resultado medible o visible quieres conseguir.
- Contexto: quién usará esto, con qué nivel de experiencia y bajo qué restricciones.
- Acción: cuál es el siguiente paso mínimo que puedes ejecutar hoy.
- Señal: qué evidencia vas a observar para decidir si funcionó.
Ejemplo guiado
Supón que debes implementar esta idea en una pequeña empresa o proyecto personal. En vez de intentar una versión perfecta, prepara una versión mínima: una plantilla, una prueba, una lista de control, una automatización simple, una página, un mensaje o una medición inicial. Luego pide feedback o compara el resultado contra una métrica.
Si el resultado mejora, documenta el proceso. Si no mejora, identifica si falló la hipótesis, la ejecución o la medición. Esta distinción es clave: muchas personas abandonan una buena idea por una mala primera ejecución, o escalan una mala idea porque miraron la métrica equivocada.
Errores frecuentes
- Confundir actividad con avance: hacer muchas tareas sin saber qué resultado persiguen.
- Copiar ejemplos sin adaptarlos al cliente, audiencia, equipo o nivel técnico real.
- No dejar evidencia: si no registras decisiones y resultados, no aprendes del proceso.
- Querer automatizar o escalar antes de validar que el enfoque básico funciona.
Ejercicio práctico
- Escribe el objetivo de esta lección en una frase aplicada a tu caso.
- Define un entregable pequeño que puedas crear en menos de una hora.
- Lista tres criterios para evaluar si ese entregable está bien hecho.
- Ejecuta una versión inicial y anota qué cambiarías en una segunda iteración.
Checklist de salida
- Puedo explicar el concepto con mis propias palabras.
- Tengo un ejemplo aplicado, no solo una definición.
- Sé qué error debo evitar primero.
- Tengo una acción concreta para practicar esta semana.