0Pricing
SQL Interview Prep · Lección

Precedencia y uso de paréntesis en AND/OR

Conozca el error de filtrado más común que los entrevistadores introducen en sus preguntas

Precedencia y uso de paréntesis en AND/OR es una lección gratuita de SQL Interview Prep en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de SQL Interview Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de SQL Interview Prep incluye 4 lecciones en total.

La trampa que plantean los entrevistadores

El error de filtrado más común en las entrevistas parece correcto a primera vista. Se le pide: busque los pedidos del cliente 5 que estén pendientes o enviados. Un candidato escribe un WHERE con AND y OR mezclados y obtiene filas adicionales.

¿Por qué? Porque AND tiene mayor precedencia que OR. La base de datos evalúa primero todos los pares de AND y después los OR. Esta lección hará que esa regla le resulte automática, para que nunca pierda puntos por este motivo.

La precedencia de operadores en una sola frase

En todos los dialectos de SQL, los operadores lógicos se evalúan en este orden: primero NOT, después AND y por último OR.

  • NOT tiene la mayor precedencia
  • AND tiene una precedencia intermedia
  • OR tiene la menor precedencia

Por tanto, A OR B AND C se interpreta como A OR (B AND C), nunca como (A OR B) AND C. El entrevistador cuenta con que lo olvide.

La consulta con errores

Esta es la consulta que escribe un candidato para cliente 5, estado pendiente o enviado. Parece correcta, pero es errónea.

Como AND tiene mayor precedencia, SQL la interpreta como (customer_id = 5 AND status = 'pending') OR status = 'shipped'. La segunda rama no tiene ningún filtro de cliente, por lo que devuelve pedidos enviados de todos los clientes.

SELECT *
FROM orders
WHERE customer_id = 5
  AND status = 'pending'
  OR status = 'shipped';

La solución: los paréntesis

Encierre la rama OR entre paréntesis para que el filtro de cliente se aplique a ambos estados. Los paréntesis anulan la precedencia y hacen explícita la intención.

Ahora SQL evalúa primero el OR agrupado y después aplica customer_id = 5 al grupo completo. Los revisores sénior añaden paréntesis incluso cuando la precedencia ya produce el resultado correcto, simplemente para mejorar la legibilidad.

SELECT *
FROM orders
WHERE customer_id = 5
  AND (status = 'pending' OR status = 'shipped');

Recorrido de la tabla de verdad

Tome un pedido enviado del cliente 9. Siga la versión con errores:

  • customer_id = 5 es false
  • status = 'pending' es false
  • false AND false es false
  • false OR (status = 'shipped' is true) es true

La fila se devuelve aunque no pertenezca al cliente 5. Explicar en voz alta el recorrido de una fila concreta es exactamente lo que los entrevistadores quieren ver.

NOT tiene la mayor precedencia

NOT solo se aplica a la condición que aparece inmediatamente después. Por tanto, NOT status = 'open' AND priority = 'high' significa (NOT status = 'open') AND priority = 'high'.

Si quería negar toda la expresión, debe usar paréntesis: NOT (status = 'open' AND priority = 'high'). Según la ley de De Morgan, eso equivale a status <> 'open' OR priority <> 'high'.

SELECT *
FROM tickets
WHERE NOT (status = 'open' AND priority = 'high');

Un ejemplo con tres condiciones

Busque productos que sean (electrónica o electrodomésticos) y que estén disponibles. Sin paréntesis, el filtro de disponibilidad solo se aplicaría a los electrodomésticos.

La consulta agrupada se lee con claridad: seleccione una de dos categorías y, después, exija que haya existencias. Regla mental: siempre que una consulta combine AND con OR, casi siempre necesitará paréntesis alrededor del grupo OR.

SELECT *
FROM products
WHERE (category = 'electronics' OR category = 'appliances')
  AND in_stock = true;

IN como alternativa más clara

Una cadena larga de OR sobre la misma columna es propensa a errores y demasiado verbosa. Sustitúyala por IN, que no deja lugar a ambigüedades y no necesita paréntesis.

La consulta siguiente es exactamente equivalente a la anterior, pero es más difícil de romper. A los entrevistadores les gusta ver esta refactorización porque demuestra que comprende tanto la corrección como la legibilidad.

SELECT *
FROM products
WHERE category IN ('electronics', 'appliances')
  AND in_stock = true;

Precedencia en filtros calculados

La precedencia también se aplica cuando se combinan aritmética y lógica. En price * 1.2 > 100 OR discount = 0 AND active = true, la comparación y la aritmética se resuelven primero, después AND y, por último, OR.

Por tanto, se interpreta como (price * 1.2 > 100) OR ((discount = 0) AND (active = true)). Cuando tenga dudas, no memorice la tabla bajo presión; simplemente ponga paréntesis a cada grupo.

Cómo responder en directo

Cuando un entrevistador le muestre un filtro combinado de AND/OR y le pregunte qué devuelve esto, haga tres cosas:

  • Indique la regla de precedencia: AND antes que OR
  • Vuelva a poner paréntesis en la consulta en voz alta para revelar su agrupación real
  • Siga el recorrido de una fila que ponga al descubierto el error

Después, ofrezca la versión corregida y con paréntesis. Esta secuencia transmite un rigor propio de un perfil senior.

Hábito preventivo

El hábito profesional es: ponga siempre paréntesis alrededor de cada grupo OR. Cuesta dos caracteres y elimina toda una clase de errores y comentarios de revisión.

Los revisores de código nunca deberían tener que evaluar mentalmente la precedencia para confirmar que un filtro es correcto. Haga visible la agrupación. Este es uno de los pocos casos en los que todo el mundo considera que la sintaxis redundante es un buen estilo.

SELECT order_id, status
FROM orders
WHERE customer_id = 5
  AND (status = 'pending' OR status = 'shipped');

Comprobación rápida

Razone sobre la regla de precedencia antes de responder.

Resumen

Ideas clave:

  • La precedencia lógica es NOT, después AND y después OR
  • Los filtros combinados de AND/OR casi siempre necesitan paréntesis alrededor del grupo OR
  • Un paréntesis que falta amplía los resultados silenciosamente y, a menudo, elimina por completo un filtro
  • Sustituya las cadenas largas de OR sobre una columna por IN
  • Para responder en directo: indique la regla, vuelva a poner los paréntesis, siga el recorrido de una fila y, después, corrija el filtro

Ponga siempre paréntesis en los grupos OR, incluso cuando la precedencia ya produzca el resultado correcto.

Preguntas frecuentes

¿La lección «Precedencia y uso de paréntesis en AND/OR» es gratis?

Sí — el texto completo de «Precedencia y uso de paréntesis en AND/OR» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de SQL Interview Prep, actualiza a CoddyKit PRO. El curso de SQL Interview Prep incluye 4 lecciones en total.

¿Qué aprenderé en «Precedencia y uso de paréntesis en AND/OR»?

Conozca el error de filtrado más común que los entrevistadores introducen en sus preguntas Practicas SQL Interview Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar SQL Interview Prep?

No se requiere experiencia previa. SQL Interview Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Precedencia y uso de paréntesis en AND/OR»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de SQL Interview Prep?

Sí. Cada lección de SQL Interview Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Precedencia y uso de paréntesis en AND/OR
  2. BETWEEN, IN y límites inclusivos
  3. LIKE, comodines y escape
  4. Filtrar por valores calculados
← Volver a SQL Interview Prep