[LG유레카] SubQuery
서브 쿼리(Subquery)
- 서브 쿼리(subquery)란 다른 쿼리 내부에 포함되어 있는 SELECT문을 의미한다.
- 서브 쿼리를 포함하고 있는 쿼리를 외부 쿼리(outer query) 또는 메인 쿼리라고 부르며, 서브 쿼리는 내부 쿼리(inner query)라고도 부른다.
- 서브 쿼리는 비교 연산자의 오른쪽에 기술해야하고 반드시 괄호’()’로 감싸져 있어야만 한다.
서브 쿼리 종류
-
중첩 서브 쿼리 WHERE 문에 작성하는 서브 쿼리
-
단일 행 Nested Subquery
서브 쿼리의 결과가 단일행을 리턴
-
복수(다중) 행
- 서브 쿼리의 결과가 다중행을 리턴: IN, ANY, ALL
- 적어도 하나만 만족하면 true. IN(등호와 사용), ANY(부등호와사용)
- 모두 만족하면 true. ALL
-
다중 컬럼
-
-
인라인 뷰(Inline View) -FROM문에 작성하는 서브쿼리
-
FROM절에 사용되는 서브 쿼리를 인라인 뷰라 한다.
-
서브 쿼리가 FROM절에 사용되면 뷰(view)처럼 결과가 동적으로 생성된 테이블로 사용 가능
-
임시적인 뷰이기 때문에 데이터베이스에는 저장되지 않는다.
-
동적으로 생성된 테이블이기 때문에 column을 자유롭게 참조 가능
create view Name as select empno, ename, deptno from emp where deptno =30;
-
-
스칼라 서브 쿼리(Scalar Subquery) - SELECT 문에 작성하는 서브 쿼리
- SELECT 절에 있는 서브 쿼리
- 한 개의 행만 반환
주의 사항
-
서브 쿼리는 반드시 ()로 감싸야한다.
-
서브 쿼리는 단일 행 또는 다중 행 비교 연산자와 함께 사용된다.
서브 쿼리가 사용이 가능한 곳
- SELECT
- FROM
- WHERE
- HAVING
- ORDER BY
- INSERT 문의 VALUES
- UPDATE문의 SET
댓글남기기