[SQL] AND와 OR의 우선순위

연산자간에는 우선순위라는것이 존재한다.
초등학교때 배웠던 +, -, *, / 에 우선순위가 *와 /가 먼저 연산되고 그 이후에 +와 -를 계산하듯
SQL문에 있는 AND와 OR에도 우선순위가 존재한다.

결론부터 말하자면 AND와 OR사이의 우선순위는 AND가 더 높다.
큰 차이가 없을것같지만 다음 예시와 함께 보면 그 차이를 느낄 수 있을것이다.


위의 그림과 같이 A, B, C 집합이 있을때

(A and B) or C의 결과와 A and (B or C)의 결과를 살펴보도록 하자 

(A and B) or C == A and (B or C)


우선 A and B의 결과는 A과 B의 교집합인 A ∩ B = {4, 7} 이다
{4, 7}  C = {7} 인것을 확인할 수 있다.

다음으로 B or C는 B와 C의 합집합인 B  C = {1, 3, 4, 5, 6, 7}이다.
그리고 A and {1, 3, 4, 5, 6, 7} = A  {1, 3, 4, 5, 6, 7} = {4, 7, 6} 인것을 확인할 수 있다.

따라서 (A and B) or C 와 A and (B or C)는 다르다.
And와 Or 연산자를 사용할 때 이를 주의해서 사용해야한다.
원하지 않은 결과를 출력할수도있다.


댓글

이 블로그의 인기 게시물

IntelliJ로 Swing 개발하기 #1

Android Emulator 키보드 사용 설정

Android layout_marginStart와 layout_marginLeft의 차이