개키우는개발자 : )

PostgreSQL EXISTS 연산자 본문

PostgreSQL/집합 연산자와 서브쿼리

PostgreSQL EXISTS 연산자

DOGvelopers 2019. 11. 10. 16:32
반응형

EXISTS 연산자란?

서브쿼리 내에 집합이 존재하는지 존재 여부만을 판단한다. 존재 여부만을 판단하므로 연산 시 부하가 줄어든다.

 

실습

 

- CUSTOMER 테이블 에서 지불내역이 있고 11달러를 초과한 고객을 조회합니다.

SELECT
	FIRST_NAME,
	LAST_NAME
FROM
	CUSTOMER C
WHERE
	EXISTS (
	SELECT
		1
	FROM
		PAYMENT P
	WHERE
		P.CUSTOMER_ID = C.CUSTOMER_ID
		AND P.AMOUNT > 11 )
ORDER BY
	FIRST_NAME,
	LAST_NAME

해당 집합이 존재하기만 하면 더이상 연산을 멈추므로 성능상 유리합니다.

실습1

- CUSTOMER 테이블 에서 지불내역이 있고 11달러를 초과한 적이 없는 고객을 조회합니다.

SELECT
	FIRST_NAME,
	LAST_NAME
FROM
	CUSTOMER C
WHERE
	NOT EXISTS (
	SELECT
		1
	FROM
		PAYMENT P
	WHERE
		P.CUSTOMER_ID = C.CUSTOMER_ID
		AND P.AMOUNT > 11 )
ORDER BY
	FIRST_NAME,
	LAST_NAME

해당 집합이 존재하지 않기만 하면 더이상 연산을 멈추므로 성능상 유리합니다.

실습2

EXISTS 연산자는 상당히 중요하므로 좀더 심층적인 실습을 해보시는걸 추처어어언 합니다.

반응형

'PostgreSQL > 집합 연산자와 서브쿼리' 카테고리의 다른 글

PostgreSQL 실습문제2  (0) 2019.11.10
PostgreSQL 실습 문제1  (0) 2019.11.10
PostgreSQL ALL 연산자  (0) 2019.11.10
PostgreSQL ANY 연산자  (0) 2019.11.10
PostgreSQL 서브쿼리  (0) 2019.11.10
Comments