32강 SQL이 뭐지? PostgreSQL EXISTS Operator
PostgreSQL
SQL이 뭐지? 32강 시작합니다.
이번 강의에서는
▶ PostgreSQL EXISTS Operator
에 대해서 알아보겠습니다.
PostgreSQL EXISTS 연산자는 하위 쿼리에서 반환된 행이 있는지 판단합니다.
Introduction to PostgreSQL EXISTS operator
EXISTS 연산자는 하위 쿼리에 행이 있는지 테스트하는 boolean 연산자입니다.
다음은 EXISTS 연산자의 구문을 보여줍니다.
EXISTS (subquery)
EXISTS는 하위 쿼리인 인수를 수락합니다.
하위 쿼리가 하나 이상의 행을 반환하는 경우 EXISTS의 결과는 참입니다. 하위 쿼리가 행을 반환하지 않는 경우 EXISTS의 결과는 거짓입니다.
EXISTS 연산자는 상관된 하위 쿼리와 함께 사용되는 경우가 많습니다.
EXISTS 연산자의 결과는 행 내용이 아닌 하위 쿼리에서 반환된 행의 여부에 따라 달라집니다. 따라서 하위 쿼리의 SELECT 절에 나타나는 열은 중요하지 않습니다.
이러한 이유로 일반적인 코딩 규칙은 다음과 같은 형식으로 작성합니다.
SELECT
column1
FROM
table_1
WHERE
EXISTS( SELECT
1
FROM
table_2
WHERE
column_2 = table_1.column_1);
하위 쿼리가 NULL을 반환하는 경우 EXISTS의 결과는 참입니다.
PostgreSQL EXISTS examples
시연을 위해 dvdrental 샘플 데이터베이스의 다음 고객 및 지불 테이블을 사용합니다.
A) 결제 금액이 11보다 큰 고객을 하나 이상 찾습니다.
다음 구문은 금액이 11보다 큰 하나 이상의 대여료를 지불한 고객을 반환합니다.
SELECT first_name,
last_name
FROM customer c
WHERE EXISTS
(SELECT 1
FROM payment p
WHERE p.customer_id = c.customer_id
AND amount > 11 )
ORDER BY first_name,
last_name;
이 예에서는 고객 테이블의 각 고객에 대해 하위 쿼리가 지불 테이블을 확인하여 해당 고객이 적어도 하나의 지불(p.customer_id = c.customer_id)을 했고 금액이 11보다 큰지 확인합니다(금액 > 11).
B) NOT EXISTS example
NOT 연산자는 EXISTS 연산자의 결과를 부정합니다. 존재하지 않는 것은 존재하는 것과 반대이다. 즉, 하위 쿼리가 행을 반환하지 않으면 NOT EXISTS가 true를 반환합니다. 하위 쿼리가 하나 이상의 행을 반환하면 NOT EXISTS는 false를 반환합니다.
다음은 고객이 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 amount > 11 )
ORDER BY first_name,
last_name;
C) EXISTS and NULL
하위 쿼리에서 NULL을 반환하면 EXISTS에서 true를 반환합니다. 다음 예를 참조하십시오.
SELECT
first_name,
last_name
FROM
customer
WHERE
EXISTS( SELECT NULL )
ORDER BY
first_name,
last_name;
이 예에서는 하위 쿼리가 NULL을 반환했으므로 쿼리가 고객 테이블의 모든 행을 반환했습니다.
이번 강의에서는 하위 쿼리에 행이 있는지 테스트하는 PostgreSQL EXISTS 연산자를 공부했습니다.
감사합니다.
본 강의는 PostgreSQL Tutorial을 참조합니다.
PostgreSQL Tutorial - Learn PostgreSQL from Scratch
Welcome to the PostgreSQLTutorial.com website! This PostgreSQL tutorial helps you understand PostgreSQL quickly. You’ll master PostgreSQL very fast through many practical examples and apply the knowledge in developing applications using PostgreSQL. If yo
www.postgresqltutorial.com
실습용 테이블에 대해서는 3강을 참조하세요.
3강 SQL이 뭐지? 도구들을 설치해보자. ( PostgreSQL, HeidiSQL )
지난 시간까지 SQL이 뭔지 대충 감을 잡는 시간을 가졌습니다. 이번 시간에는 본격적인 SQL을 공부하기 위해서 도구들을 설치해 보겠습니다. 1. PostgreSQL 설치 ( Windows10 64bit 기준
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다. |
'IT > SQL 기초강좌 (PostgreSQL)' 카테고리의 다른 글
34강 SQL이 뭐지? PostgreSQL INSERT Multiple Rows (1) | 2022.12.21 |
---|---|
33강 SQL이 뭐지? PostgreSQL INSERT statement (3) | 2022.12.20 |
31강 SQL이 뭐지? PostgreSQL ALL Operator (1) | 2022.12.20 |
30강 SQL이 뭐지? PostgreSQL ANY Operator (2) | 2022.12.20 |
29강 SQL이 뭐지? PostgreSQL Subquery (2) | 2022.12.20 |
댓글