개발 지식/[DBMS] Oracle

[Oracle] WHERE(3) - IN/BETWEEN 연산자

devGSP 2022. 4. 19. 08:00
반응형
이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다.

Java(TM) 플랫폼 : 1.8.0_321
Oracle IDE : 4.1.5.21.78

 

(4) IN 연산자

 

설명 

컬럼의 결과값이 포함되거나 포함되지 않는 데이터를 추출하고 싶을 떄 사용

 

문법

SELECT ... FROM ... WHERE [컬럼명] (NOT) IN ([값1], [값2], ... , [값n]);

-- IN 앞에 NOT을 붙일 경우 IN 뒤의 값이 포함되지 않는 데이터를 추출함

SELECT *
  FROM EMP
 WHERE JOB IN ('MANAGER', 'SALESMAN', 'CLERK');

SELECT *
  FROM EMP
 WHERE JOB NOT IN ('MANAGER', 'SALESMAN', 'CLERK');

-- 위 쿼리는 아래 쿼리와 같은 결과값을 출력함

SELECT *
  FROM EMP
 WHERE JOB <> 'MANAGER'
   AND JOB <> 'SALESMAN'
   AND JOB <> 'CLERK';

SELECT *
  FROM EMP
 WHERE DEPTNO IN (10, 20);

 

결과

SELECT *
  FROM EMP
 WHERE JOB IN ('MANAGER', 'SALESMAN', 'CLERK');

w3_q1


SELECT *
  FROM EMP
 WHERE JOB NOT IN ('MANAGER', 'SALESMAN', 'CLERK');

w3_q2

 

SELECT *
  FROM EMP
 WHERE DEPTNO IN (10, 20);

w3_q4

 

 

(5) BETWEEN 연산자

 

설명 

컬럼의 결과값의 최소 범위와 최대 범위를 정해 줄 떄 사용

 

문법

SELECT ... FROM ... WHERE [컬럼명] (NOT) BETWEEN [값1] AND [값2]

-- BETWEEN 앞에 NOT을 붙일 경우 BETWEEN 뒤에 설정된 범위에 포함되지 않는 데이터를 추출함

SELECT *
  FROM EMP
 WHERE SAL BETWEEN 2000 AND 3000;
 
 -- 위 쿼리는 아래 쿼리와 결과값이 같다.
 
 SELECT *
  FROM EMP
 WHERE SAL >= 2000
   AND SAL <= 3000;

SELECT *
  FROM EMP
 WHERE SAL NOT BETWEEN 2000 AND 3000;

 

결과

SELECT *
  FROM EMP
 WHERE SAL BETWEEN 2000 AND 3000;

w3_q5


SELECT *
  FROM EMP
 WHERE SAL NOT BETWEEN 2000 AND 3000;

w3_q6

반응형