Single Row 서브쿼리 : 서브 쿼리 실행 결과가 항상 1건 이하인 서브쿼리를 말한다. (단일 행 비교 연산자와 함께 사용된다.)
- 단일 행 비교 연산자 : =, <, <=, >, >=, <>
Multi Row 서브쿼리 : 서브 쿼리 실행 결과가 여러 건인 서브쿼리를 말한다. (다중 행 비교 연산자와 함께 사용된다.)
- 다중 행 비교 연산자 : IN, ALL, ANY, SOME, EXISTS
Multi Column 서브쿼리 : 서브 쿼리 실행 결과가 여러 컬럼을 반환한다. 메인쿼리의 조건절에 여러 컬럼 동시 비교할 수 있다.
(서브쿼리와 메인쿼리에서 비교하고자 하는 컬럼 개수와 컬럼의 위치가 동일해야 한다.)
뷰는 단지 정의만을 가지고 있으며, 실행 시점에 질의를 재작성하여 수행한다.
실제 데이터를 저장하고 있는 뷰를 생성하는 기능을 지원하는 DBMS도 존재한다.
독립성 : 테이블 구조가 변경 되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다.
편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성할 수 있다. 또한 해당 형태의 SQL문을 자주 사용할 때 뷰를 이용하면 편리하게 사용할 수 있다.
보안성 : 숨기고 싶은 정보가 존재한다면, 뷰를 생성할 때 해당 컬럼을 빼고 생성함으로써 뷰를 보는 사용자에게 정보를 감출 수 있다.
서브쿼리의 결과가 마치 실행 시에 동적으로 생성된 테이블인 것처럼 사용할 수 있다.
인라인 뷰는 sql문이 실행될 때만 임시적으로 생성되는 동적인 뷰이기 때문에 DB에 정보가 저장되지 않는다.
SELECT A.id, B.id
FROM TBL1 A, (SELECT id FROM TBL2) B;