일단 해보는 코딩/Oracle SQL

[오라클/SQL] Subqueries(서브쿼리) 종류와 규칙

eun_zoey2 2022. 6. 12. 22:23
728x90

1. Subqueries(서브쿼리)란?

서브쿼리란 한 SQL 문장 안에서 보조로 사용되는 또 다른 SELECT문을 의미한다.

최종 결과를 출력하는 쿼리를 메인 쿼리라고 한다면, 이를 위한 중간 단계 혹은 보조 역할을 하는 SELECT문을 서브쿼리라고 한다.

 

2. Subqueries(서브쿼리)의 규칙

    - 연산자를 사용한 비교나 조회대상의 오른쪽에 놓이며 서브 쿼리문을 묶는다 .

    - 특수한 몇몇 경우를 제외하고 대부분 서브 쿼리 절에는 ORDER BY절을 사용할 수 없다.
    - 서브 쿼리의  select절에 명시된 열은 메인쿼리의 비교대상과 같은 자료형과 같은 개수로 지정한다.
    - 서브 쿼리에 있는 select 문의 수행결과로 나오는 행의 수는 메인 쿼리의 연산자 종류와 호환되어야 한다 

 

3. Subqueries(서브쿼리)의 분류

 

- 다중행(Multi Row) 서브쿼리

다중행 서브쿼리 종류  설명
IN (서브쿼리) 결과에 존재하는 임의의 값과 동일한 조건. 
, 모든 결과값에 대해 각각 일치하는 값이 있는지 확인
ANY (서브쿼리) 결과에 존재하는 어느 하나의 값이라도 만족하는 조건 
ALL (서브쿼리) 결과에 존재하는 모든 값을 만족하는 조건 (비교연산처리)
EXISTS(서브쿼리) 결과를 만족하는 값이 존재하는지 여부를 확인
조건을 만족하는 건이 여러건이라도 1건만 찾으면 종료

 

 

 

- 단일행 (Single Row) 서브쿼리

    서브쿼리의 수행결과가 오직 하나의 행과 열을 검색하는 문장이다.

    하나의 결과를 가지고 메인쿼리는 비교연산자를 통해 쿼리를 수행할 수 있다.

    단일 행 연산자는 오른쪽에 기술한다.

select last_name, salary from employees where salary > (select avg(salary) from employees)