Subquery가 뭔가요?
Subquery는 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 말한다.
Subquery를 사용할 때에는 다음과 같은 사항을 유의하자.
서브쿼리를 괄호로 감싸서 사용한다.
서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 할 수 있다. 단일 행 비교 연산자는 서브쿼리의 결과가 반드시 1건 이하여야 하고 복수 행 비교 연산자는 서브쿼리의 결과 건수와 상관이 없다.
서브쿼리에서는 ORDER BY를 사용할 수 없다.
서브쿼리는 메인 테이블에 접근 할 수 있지만 메인테이블은 서브 쿼리에서 사용된 테이블에 접근 할 수 없다.
서브 쿼리 종류 | 설명 |
---|---|
Un-Correlated | 서브쿼리가 메인쿼리의 칼럼을 가지고 있지 않음 |
Correlated | 서브쿼리가 메인쿼리 칼럼을 가지고 있음. 메인 쿼리를 먼저 수행한 후 서브 쿼리에서 조건이 맞는지 확인 하고자 할 때 주로 사용된다. |
서브 쿼리 종류 | 설명 |
---|---|
Single Row | 결과가 1건 이하 |
Multi Row | 결과가 2건 이상이다. 즉, 다중행 |
서브 쿼리 종류 | 설명 |
---|---|
Multi Column | 여러 개의 Column을 반환 메인 쿼리의 조건절에 여러 칼럼을 동시에 비교 가능 |
서브 쿼리 이름 | 설명 |
---|---|
Scalar Subquery | 결과값이 1개 (1 Row 1 Col) 인 서브 쿼리 |
Inline View | 결과값이 1개 (1 Row 1 Col) 인 서브 쿼리 |