서브쿼리
서브쿼리는 SQL문을 실행하는 데 데이터를 추가 조회하기 위해 SQL문 내부에 사용하는 SELECT문이다. 서브쿼리의 기본형식은 아래와 같다.
파란색 박스가 칠해져 있는 곳은 '메인쿼리', 빨간색 박스가 칠해져 있는 곳은 '서브쿼리'라 부른다. 간단한 예제로 서브쿼리의 사용을 확인해보자. 사원 이름이 JONES인 사원의 급여를 출력하면 아래와 같다.
SELECT SAL
FROM EMP
WHERE ENAME = 'JONES';
사원 이름 JONES의 급여가 '2975'인걸 주목하자. 만약 사원의 급여가 2975 이상인 사원 데이터를 출력한다면 아래와 같은 쿼리문이 출력 될거다.
SELECT *
FROM EMP
WHERE SAL > 2975;
앞서 JONES의 급여가 '2975'인 것에 주목하자고 했다. JONES와 급여의 값 2975 둘이 같다라면 2975 대신 JONES의 급여를 구하는 쿼리문을 짤 수 있다.
급여 값(2957) 대신 입력된 SELECT문(빨간 박스 쳐져있는 곳)을 서브쿼리라 한다. 서브쿼리는 4가지의 특징을 가지고 있는데 특징들을 나열하면 아래와 같다.
- 괄호 ()로 묶어서 사용한다.
- ORDER BY절을 사용할 수 없다.
- 서브쿼리에 명시한 열은 메인쿼리의 비교 대상과 같은 자료형과 같은 개수로 지정해야한다.
- 서브쿼리에 있는 SELECT문의 결과 행 수는 함께 사용하는 메인쿼리의 연산자 종류와 호환 가능해야한다.
출처:Do it! 오라클로 배우는 데이터베이스 입문(저자:이지훈 출판사:이지스퍼블리싱)
'DB > Oracle' 카테고리의 다른 글
[서브쿼리] 다중행 서브쿼리 (0) | 2022.02.15 |
---|---|
[서브쿼리] 단일행 서브쿼리 (0) | 2022.02.14 |
[다중행 함수] 결과 값을 원하는 열로 묶어 출력하는 GROUP BY절 (0) | 2022.02.11 |
[다중행 함수] 하나의 열에 출력 결과를 담는 다중행 함수 (0) | 2022.02.10 |
[오라클 함수] 상황에 따라 다른 데이터를 반환하는 DECODE 함수와 CASE문 (0) | 2022.02.10 |