Módulo 02 · lección 8

Paréntesis y precedencia de condiciones

La tarea: «electrónica o ropa, pero solo lo que cueste menos de 100 $». Sin paréntesis, la consulta devuelve inesperadamente los caros «Galaxy» y «ProBook». ¿Por qué?

Precedencia: AND es más fuerte que OR

Cuando una condición tiene AND y OR a la vez, el SGBD evalúa primero el AND y solo después el OR (AND tiene mayor precedencia). Muchas veces eso no es lo que queríamos decir:

-- NO es lo que esperas:
WHERE category = 'Home' OR category = 'Books' AND price < 50

se lee como Home OR (Books AND price < 50); es decir, todo Home pasa sin importar el precio (incluso el Espresso de 129 $).

Los paréntesis fijan el orden

Los paréntesis hacen explícita la intención:

WHERE (category = 'Home' OR category = 'Books') AND price < 50

Ahora la condición del precio se aplica a ambas categorías.

Regla: si mezclas AND y OR, pon paréntesis, aunque parezca evidente sin ellos.

Без дужок → СКБД читає так:Without parentheses → the DBMS reads it as: Sin paréntesis → el SGBD lo lee así: category='Home' OR (category='Books' AND price<50) AND сильніший — групується сам; увесь Home проходить (навіть за $129).AND binds tighter — it groups alone; all Home rows pass (even at $129). AND liga más fuerte: agrupa solo; pasan todas las de Home (incluso a $129). З дужками → як ти хотів:With parentheses → what you intended: Con paréntesis → lo que querías: (category='Home' OR category='Books') AND price<50 умова ціни діє на обидві категорії — саме те, що треба.the price condition applies to both categories — exactly right. la condición de precio se aplica a las dos categorías: justo lo correcto.

Te toca

Necesitas los productos de «Electronics» o «Clothing» que además cuesten menos de 100 $. Muestra name, category y price. ¡No olvides los paréntesis!

Resumen

  • AND se evalúa antes que OR.
  • Los paréntesis hacen explícita tu intención y evitan errores.