Application/Database

[MSSQL] 술어와 연산자, 연산자 우선순위

Kangjieun11 2021. 4. 14. 14:37
728x90

술어와 연산자

 

술어 : TRUE, FALSE, UNKNOWN 으로 평가되는 논리적 표현식

WHERE, HAVING, CHECK 제약조건 등이 술어에 해당

IN, BETWEEN, LIKE도 T-SQL에서 지원하는 술어.

 

비교연산자

표준 비교 연산자 : =, >, <, >=, <=, ><

비표준 비교 연산자 : !=, !>, !<

 

논리 연산자

AND, OR

 

산술 연산자

+, -, *, /, %

 

연산자 우선순위

 

암기 방법

() > 산술 연산자 > 비교 연산자 > 논리 연산자 > 술어 연산자 > =

 

1. () 

2. *, /, %

3. +(Positive), -(Negative), +(Addition), +(Concatenation), -(Substraction)

4.  =, >, <, >=, <=, <>, !=, !>, !< (Comparison operation)

5. NOT

6. AND

7. BETWEEN, IN, LIKE, OR

8. = (Assignment), 할당

 

4번 = 와 8번 =는 무슨 차이가 있을까?

비교연산자 = 와 대입연산자 = 를 구분하려면

쿼리문을 보고 문맥상으로 이해해야한다.

 

술어표현식에서 비교연산자가 잘 사용된다는 것은 알고가기

 

 

- 술어 표현식은 참, 거짓, NULL 셋중에 하나만 반환된다

 

- 연산 우선순위가 헷갈려서 명확히 표현하고 싶으면 괄호 () 를 사용한다. 

 

SELECT orderid, custid, empid, orderdate
FROM Sales.Orders
WHERE custid = 1 AND empid IN(1,3,5)
OR custid = 85 AND empid IN(2,4,6)

이 쿼리는 아래 그림에서 그린 괄호와 결과가 같다.