SubQuery
함수가 들어 갈 수 있는 위치에는 그 위치에 맞는 결과를 반환하는 또 다른 독립적인 SQL문을 넣는 것
- 서브쿼리를 품고있는 쿼리를 메인쿼리 (Main Query)라 부른다
위치에 따른 서브 쿼리 구분
- 스칼라 서브 쿼리
- SELECT문의 칼럼 입력 위치
- 스칼라 서브쿼리의 결과는 하나의 칼럼만 가져야 한다
- 인라인 뷰
- FROM절의 테이블 입력 위치
- View : 기존의 테이블 로부터 파생되어 동적으로 생성되는 테이블
- 마찬가지로 인라인 뷰 역시 쿼리 실행 시 생성되는 동적 테이블 이다.
- 테이블 전체가 안인 일부분만 불러와 사용하여 비교횟수를 줄이는 것과 같은 이점이 있음
- 중첩 서브쿼리
- WHERE절, HAVING절의 칼럼 또는 테이블 입력 위치
- 쿼리 안에 다른 쿼리가 중첩되어 들어간 경우를 지칭
- 반환하는 값이 하나가 아니며 다양한 반환값을 가질 수 있다 (단일행, 다중행, 다중칼럼)
- 메인쿼리의 칼럼 사용 여부에 따른 구분가능하다
- 연관(Correlated) 서브 쿼리
- 메인쿼리의 칼럼을 서브쿼리에서 사용
- 비연관(Un-Corelated) 서브 쿼리
- 메인쿼리의 칼럼을 서브쿼리에서 사용하지 않음
VIEW (뷰)
- 실제의 테이블을 참조하여 생성하는 논리적인 가상의 테이블
- 해방 뷰를 참조할 때 동적으로 메모리에 생성
- 테이블은 실제로 디스크에 저장
- 복잡하고 긴 쿼리를 뷰로 만들어 두고 사용하면 쿼리가 단순해짐
- 외부에 노출하면 안되는 칼럼을 제외하고 뷰를 생성하여 제공하여 보안성 확보
- 자신만의 인덱스 생성이 불가능 하며 삽입/수정/삭제에 제약이 있다
- DDL 코드를 통해 생성 및 제거 (CREATE VIEW, DROP VIEW)
'IT Study > SQL' 카테고리의 다른 글
| [SQLD] 집합연산자 (0) | 2026.03.04 |
|---|---|
| [SQLD] 기타 함수들 (DBMS제공 내장함수) (0) | 2026.02.26 |
| [SQLD] JOIN 함수 관련 총정리 (0) | 2026.02.24 |
| [SQLD] SQL 기본 및 활용 (관리 구문) (0) | 2025.11.11 |
| [SQLD] 데이터베이스 이상현상 및 정규화/반정규화 (0) | 2025.11.03 |