SQL 기본 | DML : 데이터 조작 언어 | IN, NOT IN


SQL에서 두 상황에 IN 명령을 사용하는데,이 페이지에는 그 중 하나인 WHERE와 관련된 상황에 대해 설명한다. 이 용법에는 필요한 값을 적어도 하나를 알아 두어야 한다. 그리고 알려진 모든 값을 IN 절에 입력된다.

IN, NOT IN 문법

IN 절은 다음과 같다.

SELECT "필드명"
FROM "테이블명"
WHERE "필드명" IN ('값1', '값2', ...);

괄호 안에 하나 이상의 값이 있고, 그 수치 상호간에 쉼표로 구분한다. 값은 숫자나 문자일 수 있다. 만약 괄호 안에 값이 하나만 있는 경우는 다음과 같다.

WHERE "필드명" = '값1'

IN 절의 반대로 조회할 경우는 NOT IN를 사용한다.

SELECT "필드명"
FROM "테이블명"
WHERE "필드명" NOT IN ('값1', '값2', ...);

IN 예제

예를 들어, 만일 store_information 테이블, Los Angeles 또는 San Diego가 포함된 데이터를 모두 가져오는 경우,

store_information 테이블

store_name sales txn_date
Los Angeles 1500 Jan-05-2018
San Diego 250 Jan-07-2018
Los Angeles 300 Jan-08-2018
Boston 700 Jan-08-2018

아래와 같이 명령을 입력하면,

SELECT *
FROM store_information
WHERE store_name IN ('Los Angeles', 'San Diego');

결과는 아래와 같다.

store_name sales txn_date
Los Angeles 1500 Jan-05-2018
San Diego 250 Jan-07-2018
Los Angeles 300 Jan-08-2018

NOT IN 예제

이와 반대로 Los Angeles 또는 San Diego가 제외한 데이터를 모두 가져오는 경우,

SELECT *
FROM store_information
WHERE store_name NOT IN ('Los Angeles', 'San Diego');;

결과는 아래와 같다.

store_name sales txn_date
Boston 700 Jan-08-2018