데이터베이스/Oracle

오라클 서브쿼리(Subquery)

ksge7 2021. 2. 1. 00:31

서브쿼리란?

일종의 조회문(SELECT) 안의 조회문(SELECT)이라고 설명하는 것이 이해하기 쉬울 것이다.

 

오라클을 이용하다보면 다양한 조건으로 자료들을 조회(SELECT)하게 된다.

 

이러한 조회 방법 중 하나가 서브 쿼리다.

 

물론 서브쿼리는 조회 뿐 아니라 다른 데서도 쓰지만 이해하기 쉽게 SELECT 위주로 쓴다.

 

예를 들어서 'TEST_TABLE'이란 이름을 가진 위와 같은 테이블이 있다고 가정해보자.

 

여기서 서브쿼리를 이용해서 데이터를 조회해보자.

 

 

위 쿼리는 서브쿼리를 적용해서 전주에 사는 사람만 골라낸 SELECT 문이다.

 

결과는 아래와 같다.

 

 

결과를 보면 알겠지만 서브쿼리를 이용한 그 결과물은 메인 쿼리 조회의 데이터 소스가 된다.

 

즉 서브쿼리가 적용된 SELECT 문은 서브 쿼리에서 내용을 걸러주고

 

메인 쿼리는 그 쿼리에서 데이터를 바탕으로 조회를 하는 것이다.

 

 

이번에는 위 쿼리문처럼 서브 쿼리 조건을 바꿔보자.

 

결과는 다음과 같다.

 

 

서브쿼리에서 데이터를 조회시 JOB을 제외하고 NAME, AREA만 조회했기 때문에

 

메인쿼리도 JOB을 제외한 데이터만 조회할 수 있다.

 

이와 같이 서브쿼리는 메인 쿼리의 SOURCE가 되어준다.

 

서브쿼리를 사용하는 문법은 아래와 같이 FROM 부분에 괄호를 치고 그 안에 서브쿼리를 넣으면 된다.

 

SELECT * FROM (SELECT * FROM 테이블명) ;