본문 바로가기
Database/엑셀로 배우는 SQL 실무 - 입문

[SQL] 엑셀로 배우는 SQL - WHERE (IN, NOT IN)

by 따라쟁이개발자 2023. 1. 3.

엑셀 필터에서 주로 사용되는 기능 중 하나로 '다중 선택'이 있지요?

'다중 선택'을 사용하면 동등 조건 여러 개를 같이 쓰는 효과를 낼 수 있죠!

 

SQL에도 이 '다중 선택'과 동일한 기능을 수행할 수 있는 IN, NOT IN 조건이 있습니다.

같이 살펴볼까요?

 

 

엑셀로 먼저 살펴보기

이번에도 이전 장과 동일하게 엑셀로 먼저 기능을 사용해 보고 

동일한 결과값이 나올 수 있게 SQL을 작성해 보고자 합니다.

 

아래와 같은 엑셀이 있다고 가정하고, 숫자와 텍스트가 있는 항목들에 필터를 걸어 볼게요

 

1. 가격이 1000원, 1200원인 경우 / 1000, 1200원이 아닌 경우

 

2. 음료종류가 '탄산음료', '이온음료'인 경우 / '탄산음료', '이온음료'가 아닌 경우

 

 

SQL로 살펴보기

엑셀 예시와 동일하게 아래와 같은 Table 이 있다고 가정하고 WHERE절에 명시해 SELECT문으로 조회해 볼게요

WHERE 절에서는 보통 '비교할 column 명'을 연산자 앞에 '비교할 값'을 연산자 뒤에 표현합니다.

 

앞서 게시물에서도 언급했지만 숫자의 경우 숫자값을 그대로 쓰고,

텍스트의 경우 값 양 옆에 작은따옴표('')를 붙여 줍니다.

 

 

다중 선택 (IN)

데이터에서 하나의 값만 동등 조건으로 비교하는 경우도 있겠지만 (ex. 음료 종류가 탄산음료인 경우)

여러 개의 값을 동등 조건으로 동시 비교해야 하는 경우도 있겠죠 (ex. 음료 종류가 탄산음료, 이온음료인 경우)

 

동등 조건으로 동시 비교해야 하는 경우

보통 엑셀에선 필터 항목 중 여러 개를 체크하여 값을 추출해 냅니다.

 

SQL에서 이 같은 기능을 하는 것이 IN 인데요

IN은 괄호()와 함께 쓰이며, 괄호 안에 비교할 여러 개의 값들을 쉼표(,)로 구분해 나열시켜 표현합니다.

 

IN (2, 3, 4) 는 비교할 항목 값이 2, 3, 4인 경우를 말하고

IN ('A', 'B')는 비교할 항목 값이 A, B 경우를 말하죠

 

반대로 나열한 여러 개 값에 포함되지 않는 것만 추릴 경우는 부정의 의미인 NOT을 앞에 붙여 표현합니다.

NOT IN ('A', 'B')는 비교할 항목 값이 콜라, 사이다가 아닌 경우를 말하죠

 

 

숫자 column 다중 선택

위에서 설명한 것처럼 IN ( , , ) 형태로 비교할 값을 나열합니다.

숫자는 따로 따옴표를 쓰지 않으니 아래처럼 표현되겠죠?

SELECT *                
FROM beverage_stock
WHERE price IN (1000, 1200);

만약 나열한 값을 제외한 것들을 보고 싶다면 IN 앞에 NOT을 붙여 줍니다.

SELECT *                
FROM beverage_stock
WHERE price NOT IN (1000, 1200);

 

텍스트 column 다중 선택

텍스트 column도 위와 동일하게 표현합니다. 

다만, 텍스트의 경우는 값 양 옆에 작은따옴표를 붙여야 한다고 했었죠

SELECT *                
FROM beverage_stock
WHERE type IN ('탄산음료', '이온음료');

 

이 경우도 역시 제외한 것들을 보고 싶다면 NOT을 붙여 줍니다

SELECT *                
FROM beverage_stock
WHERE type NOT IN ('탄산음료', '이온음료');

 

정리

이제까지 하나의 조건문으로 데이터를 필터링하는 방법에 대해 살펴봤는데요.

그렇다면, 한 개가 아닌 여러 개의 조건문을 동시 적용시켜야 할 경우는 어떻게 해야 할까요?

 

엑셀에서 여러 항목에 동시에 필터를 걸어 놓을 수 있는 것처럼 

SQL도 논리 연산자를 사용해 동일한 기능을 구현할 수 있습니다.

 

다음 장에선 논리연산자를 사용하여 여러 개 조건을 동시 적용하는 방법에 대해 다뤄볼게요 🙂

 

 

[ 참고 ]

 MySQL로 배우는 데이터베이스 개론과 실습

 SQL 개발자 이론서 + 기출문제

댓글