[SQL / 기본문법] BETWEEN AND / LIKE (%, _) / IN / 연산자 우선순위

리트리버J

·

2020. 12. 28. 12:00

728x90

1. 컬럼 BETWEEN a AND b

컬럼 >= a AND 컬럼 <= b 와 같다.

1
2
3
4
5
6
7
SELECT
    EMP_NAME,
    SALARY
FROM
    EMPLOYEE
WHERE
    SALARY BETWEEN 2500000 AND 6000000;
cs

 

해당 범위의 값 포함

1-1. (NOT) 컬럼 NOT BETWEEN a AND b

컬럼 < a AND 컬럼 > b 와 같다.

※ 미만과 초과가 되므로 해당 값을 제외하게 된다.

1
2
3
4
5
6
7
8
SELECT
    EMP_NAME,
    SALARY
FROM
    EMPLOYEE
WHERE
    SALARY NOT BETWEEN 2500000 AND 6000000;
--  NOT SALARY BETWEEN 2500000 AND 6000000;
cs

 

해당 범위의 값 포함 X

2. LIKE '%A%'

'글자%' --> %를 뒤에 붙이면 글자로 시작하는 값
'%글자' --> %를 앞에 붙이면 글자로 끝나는 값
'%글자%' --> %를 앞 뒤로 붙이면 글자가 포함된 값

※ NOT은 BETWEEN AND와 마찬가지로

컬럼명 앞 뒤에 올 수 있다.

1
2
3
4
5
6
SELECT
    EMP_NAME
FROM
    EMPLOYEE
WHERE
    EMP_NAME LIKE '이%';
cs

 

'이' 로 시작하는 사원의 이름을 가져온다.

2-1. 와일드카드

_ (글자 한자리), %(0개 이상의 글자)

1
2
3
4
5
6
7
SELECT 
    EMP_NAME,
    PHONE
FROM
    EMPLOYEE
WHERE
    PHONE LIKE '___9%';
cs

 

_ _ _ 9 로 시작하는 핸드폰번호를 구해온다.

 

3. IN

비교하려는 값이 목록에 일치하는 값이 있는지 확인

( '값', '' ) 을 이용하면

컬럼 = 값 OR 컬럼 = 값 과 같은 결과를 가져온다.

1
2
3
4
5
6
7
8
SELECT
    EMP_NAME,
    DEPT_CODE,
    SALARY
FROM
    EMPLOYEE
WHERE
      DEPT_CODE IN ('D6''D8');
cs

D6, or D8이 포함되어 있는 것을 구해왔다.

4. 연산자 우선순위

/*
1. 산술 연산자
2. 연결 연산자
3. 비교 연산자
4. IS NULL/ IS NOT NULL/ LIKE / NOT LIKE / IN / NOT IN
5. BETWEEN AND / NOT BETWEEN AND
6. NOT(논리연산자)
7. AND
8. OR
*/

 

728x90