본문 바로가기
DB/이론 및 개념

[day_06] DB / 10. IN, NOT IN 연산자

by 파프리카_ 2020. 8. 13.
728x90
반응형

IN 연산자

: 특정값이 포함되는 데이터를 조회하고자 할 때 사용하는 연산자

 

SELECT [columns]
FORM [table 명]
WHERE 컬럼 IN ([특정값]);

 

NOT IN 연산자

: 특정 값이 포함되지 않는 데이터를 조회하고자 할 때 사용하는 연산자

 

SELECT [columns]
FORM [table 명]
 WHERE 컬럼 NOT IN ([특정값]);


사용 예제

 

Product TABLE

 


1. IN 연습

-MAKER가 '롯데', '진로', '빙그레'인 상품의 정보를 조회

 

방법 1)

SELECT	*
FROM		product
WHERE	maker = '롯데' or maker = '진로' or maker = '빙그레';

 

방법 2) IN 적용

SELECT	*
FROM		product
WHERE	maker IN ('롯데', '진로', '빙그레')

 

[ 결과 ]

 


2. NOT IN 연습

-MAKER가 '롯데', '진로', '빙그레'가 아닌 상품의 정보를 조회

 

방법 1)

SELECT	*
FROM		product
WHERE	maker <> '롯데' and maker <> '진로' and maker <> '빙그레';

 

방법 2) NOT IN 적용

SELECT	*
FROM		product
WHERE	maker NOT IN ('롯데', '진로', '빙그레')

 

[ 결과 ]

 


연습 문제 더 풀어보기

 

문제 1. MAKER 별 상품 수가 하나인 MAKER의 상품을 조회 (Subquery 이용)

SELECT	*
FROM	product
WHERE	maker IN (  SELECT		maker
				FROM		product
				GROUP BY		maker
				HAVING		COUNT(*) = 1)	

 

[결과]

 


문제 2. 전체 사원의 평균 월급보다 JOB별 평균 월급이 많은 JOB의 사원의 JOB과 NAME을 조회해보자

 

[ EMPLOYEE TABLE ]

 

SELECT	job, name
FROM	employee
WHERE	job in ( SELECT	    job
			   FROM	    employee
			   GROUP BY  job
			   HAVING	  AVG(salary)> ( SELECT	    AVG(salary)
								FROM   employee)
					 				 			);

 

[결과]

728x90
반응형