서브쿼리(Subquery)에는 세 가지 주요 유형이 있습니다. 인라인 뷰(Inline View), 스칼라 서브쿼리(Scalar Subquery), 그리고 연관 서브쿼리(Correlated Subquery)가 있습니다.
인라인 뷰(Inline View)
인라인 뷰는 주 쿼리 내에서 서브쿼리가 사용되는 형태로, 서브쿼리 결과를 뷰(View)처럼 다루는 방식입니다. 주로 FROM 절에서 서브쿼리를 사용하여 데이터를 필터링하거나, 서브쿼리가 생성하는 가상 테이블을 사용하여 복잡한 연산을 수행합니다.
예를 들면, 다음과 같이 사용됩니다:
SELECT column1, column2
FROM (SELECT column1, column2 FROM table1 WHERE condition) AS inline_view;
스칼라 서브쿼리(Scalar Subquery)
스칼라 서브쿼리는 단일 값을 반환하는 서브쿼리를 말합니다. 스칼라 서브쿼리는 주로 SELECT 문이나 WHERE 절에서 사용되며, 단일 값 비교나 연산 등에 활용됩니다.
예를 들면, 다음과 같이 사용됩니다:
SELECT column1, (SELECT MAX(column2) FROM table2) AS max_value
FROM table1;
연관 서브쿼리(Correlated Subquery)
연관 서브쿼리는 외부 쿼리와 서브쿼리 간에 상호 연관된 관계를 가지는 서브쿼리입니다. 주로 외부 쿼리의 한 행마다 서브쿼리가 실행되며, 외부 쿼리의 값을 기준으로 서브쿼리를 필터링하거나 계산합니다.
예를 들면, 다음과 같이 사용됩니다:
SELECT column1, column2
FROM table1 t1
WHERE column3 > (SELECT AVG(column3) FROM table1 WHERE column4 = t1.column4);
이 세 가지 유형의 서브쿼리는 SQL 쿼리를 더 강력하고 유연하게 만들어주는데 활용됩니다. 각각의 유형은 다른 상황에 따라 적합하게 사용됩니다.
해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.
'Big Data > Database' 카테고리의 다른 글
NULL 처리 함수 (0) | 2023.07.26 |
---|---|
NULL과 연산 (0) | 2023.07.26 |
식별관계, 비식별관계 (0) | 2023.07.24 |
일관성과 무결성 (0) | 2023.07.24 |
정규화(Normalization) (0) | 2023.07.24 |