DB
[DB/SQL] 서브쿼리의 종류 - 스칼라 서브쿼리, 인라인 뷰, 중첩 서브쿼리
hrming
2024. 10. 4. 17:34
■ 서브 쿼리
- 서브쿼리란 메인쿼리에 속해있으며 부모와 자식같은 계층적인 관계임
- 서브쿼리가 메인쿼리에 종속되기 때문에 단독적으로 실행할 수 없고, 메인쿼리를 필터링하는 방식으로 사용됨
- 서브쿼리는 메인쿼리의 칼럼을 모두 사용할 수 있지만, 메인쿼리는 서브쿼리의 칼럼을 사용할 수 없음
- 메인쿼리에서 서브쿼리의 칼럼을 사용할 수 있는 경우는 `스칼라 서브쿼리`, `인라인 뷰`
종류 | 설명 |
스칼라 서브쿼리 (Scalar Subquery) |
SELECT 절에 위치하며, 한 레코드당 정확히 하나의 값을 반환하는 서브쿼리 (단일행, 단일 칼럼을 반환) ** 다중 행 값이 조회되면, "ORA-01427: single-row subquery returns more than one row" 라는 오류 발생 |
인라인 뷰 (Inline View) |
FROM 절에 위치하는 서브쿼리로, 결과는 반드시 하나의 테이블로 리턴되어야 함 - 테이블의 일부 데이터만을 불러와 복잡한 쿼리를 단순화 할 수 있음 - 쿼리의 가독성이 높음 - 인라인 뷰는 SQL문이 실행될 때 임시적으로 생성되는 동적인 뷰 `Dynamic View`. (Dynamic View ↔ Static View) ** SQL을 좀 더 빠른 속도로 사용하기 위해 사용하지만, SQL을 구성할 때 잘못 사용하게 되면 액세스 속도를 저하시키는 경우가 많으므로 사용에 주의 |
중첩 서브쿼리 (Nested Subquery) |
WHERE 절에 위치하며 결과집합을 한정하기 위한 서브쿼리로, 서브쿼리가 메인쿼리 칼럼을 참조할 때 상관관계가 있는 서브쿼리 (단일행, 다중행을 반환) |
참고 및 출처 :
https://dev-kwon.tistory.com/14
[Oracle] 스칼라 서브쿼리, 인라인뷰, 서브쿼리
서브쿼리란 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 말한다. SELECT (SELECT ... ) --> 스칼라 서브쿼리 FROM (SELECT ... ) --> 인라인 뷰 WHERE ... 스칼라 서브쿼리 : Select절에 있는 Subquery -- 특징 하
dev-kwon.tistory.com
https://yunamom.tistory.com/353
[Oracle] 서브쿼리의 종류 - ( 스칼라, 인라인뷰, 중첩 )
서브쿼리란 무엇인가? 서브쿼리란 메인쿼리에 속해 있으며 부모와 자식같은 계층적인 관계이다. 자식이 부모에 속해있는것과 마찬가지로 서브쿼리가 메인쿼리에 종속되기 때문에 단독적으로
yunamom.tistory.com