연산자
연산자
SQL 연산자는 하나 이상의 표현식(expression)에 수행할 동작을 지정하는 기호예요. 연산자는 특수 문자나 키워드로 표현돼요.
연산자 우선순위
복잡한 표현식에 연산자가 여러 개 있으면, 연산자 우선순위가 표현식에서 연산이 수행되는 순서를 결정해요. 예를 들어 1 + 2 * 3이라는 표현식에서 *가 +보다 우선순위가 높으므로, 이 표현식은 1 + (2 * 3) = 7로 계산돼요. 실행 순서는 결과 값에 큰 영향을 줄 수 있어요.
연산자는 아래 표에 나온 우선순위 수준을 가져요. 우선순위가 더 높은 연산자가 더 낮은 수준의 연산자보다 먼저 계산돼요. 아래 표는 우선순위 내림차순으로 정렬된 것으로, 1이 가장 높은 수준이에요. 같은 표 칸에 나열된 연산자는 동일한 우선순위를 가지며, 결합 규칙(associativity)에 따라 왼쪽에서 오른쪽 또는 오른쪽에서 왼쪽으로 계산돼요.
| 우선순위 | 연산자 | 연산 | 결합 규칙 |
|---|---|---|---|
| 1 | . [] :: | 멤버 접근, 요소 접근, 형변환 | 왼쪽에서 오른쪽 |
| 2 | + - ~ | 단항 덧셈, 단항 뺄셈, 비트 NOT | 오른쪽에서 왼쪽 |
| 3 | * / % DIV | 곱셈, 나눗셈, 나머지, 정수 나눗셈 | 왼쪽에서 오른쪽 |
| 4 | + - || | 덧셈, 뺄셈, 문자열 결합 | 왼쪽에서 오른쪽 |
| 5 | << >> >>> | 비트 왼쪽 시프트, 비트 오른쪽 시프트, 부호 없는 비트 오른쪽 시프트 | 왼쪽에서 오른쪽 |
| 6 | & | 비트 AND | 왼쪽에서 오른쪽 |
| 7 | ^ | 비트 XOR(배타적 논리합) | 왼쪽에서 오른쪽 |
| 8 | | | 비트 OR(포괄적 논리합) | 왼쪽에서 오른쪽 |
| 9 | =, == <>, != <, <= >, >= | 비교 연산자 | 왼쪽에서 오른쪽 |
| 10 | NOT, ! EXISTS | 논리 NOT, 존재 확인 | 오른쪽에서 왼쪽 |
| 11 | BETWEEN IN RLIKE, REGEXP ILIKE LIKE IS [NULL, TRUE, FALSE] IS DISTINCT FROM | 기타 술어 | 왼쪽에서 오른쪽 |
| 12 | AND | 논리곱 | 왼쪽에서 오른쪽 |
| 13 | OR | 논리합 | 왼쪽에서 오른쪽 |
출처: 문서