하나의 SQL문 안에 포함되어 있는 또 다른 SQL문
종류 | 설명 |
---|---|
Un-Correlated(비연관) 서브쿼리 | - 서브쿼리가 메인쿼리 칼럼을 갖고 있지 않은 형태 - 메인쿼리에 값을 제공하기 위한 목적으로 주로 사용 |
Correlated(연관) 서브쿼리 | - 서브쿼리가 메인쿼리 칼럼을 가지고 있는 형태 - 메인쿼리가 먼저 수행되어 읽혀진 데이터를 서브쿼리에서 조건이 맞는지 확인하고자 할 때 주로 사용 |
종류 | 설명 |
---|---|
Single Row(단일 행) 서브쿼리 | - 서브쿼리 결과가 항상 1건 이하인 서브쿼리 - 단일 행 비교 연산자와 함께 사용 (등호, 부등호) |
Mulit Row(다중 행) 서브쿼리 | - 실행 결과가 여러 건인 서브쿼리 다중 행 비교 연산자와 함께 사용 (IN, ALL, ANY, SOME, EXISTS 등) |
Multi Column(다중 컬럼) 서브쿼리 | - 실행 결과로 여러 컬럼을 반환 - 메인쿼리의 조건절에 여러 칼럼을 동시에 비교 가능 - 서브쿼리와 메인쿼리에서 비교하고자 하는 칼럼 개수와 위치가 동일해야 함 |
한 행, 한 칼럼만을 반환하는 서브쿼리
테이블 명이 올 수 있는 곳에 사용, ORDER BY 사용 가능
테이블은 실제로 데이터를 가지고 있는 반면, 뷰는 실제 데이터를 가지고 있지 않다. 가상 테이블이라고도 함
장점 | 설명 |
---|---|
독립성 | 테이블 구조가 변경되어도 뷰를 사용하는 응용 플그램은 변경하지 않아도 됨 |
편리성 | 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성 가능 |
보안성 | 직원의 급여정보와 같이 숨기고 싶은 정보가 존재할 때 사용 |
CREATE VIEW V_PLAYER_TEAM AS
DROP VIEW V_PLAYER_TEAM;
하나의 SQL로 테이블을 한 번만 읽어서 빠르게 원하는 리포트를 작성
Subtotal을 생성하기 위해 사용하며 GROUP BY로 묶인 칼럼의 소계 계산
표현식 | 출력값 |
---|---|
GROUP BY ROLLUP(E1,E2) | E1과 E2별 소계 / E1별 소계 / 총합계 |
조합 가능한 모든 값에 대해 다차원 집계
표현식 | 출력값 |
---|---|
GROUP BY CUBE (E1,E2) | E1과 E2별 소계 / E1별 소계 / E2별 소계 / 총합계 |
특정 항목에 대한 소계 계산
표현식 | 출력값 |
---|---|
GROUP BY GROUPING SETS (E1,E2) | E1별 소계 / E2별 소계 |