논리 연산자 우선순위

AND와 OR를 섞으면, 괄호가 없는 조건은 DB의 우선순위대로 다시 묶입니다.

사람이 왼쪽부터 읽는 느낌과 DBMS가 조건을 묶는 방식은 다를 수 있습니다. 혼합 조건에서는 괄호가 조회 범위를 고정하는 안전장치입니다.

1순위

NOT

조건을 먼저 반대로 뒤집습니다.

2순위

AND

두 조건을 하나의 더 좁은 조건으로 묶습니다.

3순위

OR

마지막에 여러 후보 조건을 합칩니다.

괄호 없이 쓴 조건

WHERE category = '전자기기'
   OR category = '도서'
  AND price < 50000
DB 해석 전자기기 OR (도서 AND 가격조건)으로 묶입니다.
결과 전자기기는 가격과 무관하게 통과하고, 도서에만 가격 조건이 붙습니다.
위험 의도보다 넓은 결과가 조회될 수 있습니다.

괄호로 의도를 고정한 조건

WHERE (category = '전자기기'
    OR category = '도서')
  AND price < 50000
DB 해석 (전자기기 OR 도서) AND 가격조건으로 고정됩니다.
결과 전자기기와 도서 모두 5만 원 미만인 행만 통과합니다.
기준 AND와 OR를 함께 쓰면 짧은 조건이라도 괄호를 붙입니다.