더보기

1. Subquery
1) 서브쿼리의 정의 및 특성

질의문 내에 독립적인 질의문 또는 연관 질의문이 존재하는 것


※ 일반적으로 Correlated 서브쿼리를 제외하고는 서브쿼리가 먼저 실행되고, 그 출력 결과를 사용하여 메인 쿼리(메인 쿼리, 기본 질의, outer query, 외부 질의, 상위질의)에 대한 질의 조건을 완성합니다.

2) 서브쿼리 위치에 따른 종류
- 문법상의 서브쿼리 종류


2. Subquery 의 종류
1) Nested 서브쿼리
※ 메인 쿼리와 독립적으로 실행되며 메인 쿼리에서 사용하게 된다는 사실이 다름.

"Multi Column Subquery"


2) Correlated Subquery
※ Correlated Subquery 를 쓰는 경우는 Subquery 와 Mainquery 에서 추출된 값이 연관을 가지며, Subquery 에서 추출된 값에 대해서 주로 " = " 이외의 연산을 필요로 할 때임.

3) Exists Subquery
※ 이때 사용되는 서브쿼리의 경우 단지 존재 여부만 검증하면 되므로, 주로 0 1 null * X 등의 의미 없는 기호를 사용

4) Correlated Subquery vs Join


3. View 와 Inline View
1) View 의 개념과 용도

2) 인라인 뷰


※ 인라인 뷰를 이용하여 장문의 SQL문을 작성하게 되면 해당 뷰가 메인 쿼리보다 먼저 수행되기 때문에 non-Procedural 언어인 SQL에 절차적인 기능을 부여한 아주 유용한 기능이 된다.

3) 인라인 뷰의 활용
- 조인 회수의 감소


※ 두 SQL 문의 우열을 가리기는 힘들며 데이터 양이나 조인의 형식에 따라 성능 차이가 날 수 있으나, 일반적으로 데이터가 많다면 인라인 뷰를 이용해서 1:M의 조인을 1:1로 만들어 주어 조인의 회수를 줄이는 것을 권장

- 절차성을 위한 인라인 뷰의 활용
※ 인라인 뷰에 group by 절 등을 사용했을때, 인라인 뷰는 내부적으로 정리된 결과를 메인 쿼리와 결합하기 때문에 복잡한 로직도 하나의 SQL에서 처리할 수 있으므로, PL/SQL 이나 다른 개발 언어를 사용할 필요 없이 하나의 SQL 문만으로 원하는 데이터를 얻을 수 있다. 다만 향후 유지보수를 위해서 너무 장황하게 작성하는 것은 지양해야함.

4) Top-N query 의 사용

4. 이것만은 꼭!

더보기



 

크리에이티브 커먼즈 라이선스
Creative Commons License

설정

트랙백

댓글