[SQL] AND와 OR의 우선순위
연산자간에는 우선순위라는것이 존재한다.
초등학교때 배웠던 +, -, *, / 에 우선순위가 *와 /가 먼저 연산되고 그 이후에 +와 -를 계산하듯
SQL문에 있는 AND와 OR에도 우선순위가 존재한다.
결론부터 말하자면 AND와 OR사이의 우선순위는 AND가 더 높다.
큰 차이가 없을것같지만 다음 예시와 함께 보면 그 차이를 느낄 수 있을것이다.
초등학교때 배웠던 +, -, *, / 에 우선순위가 *와 /가 먼저 연산되고 그 이후에 +와 -를 계산하듯
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 연산자를 사용할 때 이를 주의해서 사용해야한다.
원하지 않은 결과를 출력할수도있다.
댓글
댓글 쓰기