*서브쿼리
- 하나의 SQL 문 안에 포함된 또 다른 SELECT 문
- 메인 SQL문을 위해 보조 역할을 하는 쿼리
*서브쿼리의 구분
단일행, 다중행, 다중열 등의 서브쿼리를 분류하는 기준은 결과값의 형태이다.
구체적으로 서브쿼리가 반환하는 행(가로)의 수와 열(세로)의 수를 기준으로 나눈다.
1. 단일행 서브쿼리
- 서브쿼리의 결과가 한 개의 행과 한 개의 열인경우, 일반적으로 비교연산자(=, <, >)와 함께 사용됨
서브쿼리(SELECT AVG(SALARY) FROM EMPLOYEE) 는 전체 직원의 평균 급여를 반환함.
결과는 단일 값이며, 이를 SALARY 와 비교함.
2. 다중행 서브쿼리
서브쿼리의 결과가 여러 행이지만, 한개의 열로 반환되는 경우, 다중행 비교 연산자(IN, ANY, ALL)과 함께 사용됨
서브쿼리 (SELECT SALARY FROM EMPLOYEE WHERE DEPT_CODE = 'IT') 는 IT 부서 직원들의 급여를 반환함
메인 쿼리는 직원들의 이름과 이름코드를 EMPLOYEE 테이블에서 가져오는데, 이때 IT 부서 직원들의 급여중 가장 큰 값을 조회함.
3. 다중열 서브쿼리
서브쿼리의 결과가 한 행이지만, 여러 열로 반환되는 경우, 비교연산자를 사용할때(컬럼1, 컬럼2, ...) 형태로 다중 열을 처리함
추가) ANY, IN, ALL 의 차이점
- ANY: 조건을 부분적으로 만족하면 충분한 경우.
- IN: 값이 서브쿼리 결과에 포함되어 있는지 확인할 때.
- ALL: 조건을 모두 만족해야 하는 경우.
'SQL ORACLE' 카테고리의 다른 글
JOIN / ORACLE 과 ANSI 의 차이점 (1) | 2024.12.20 |
---|---|
2024.12.18(수) / 3일차 / GROUP_BY, HAVING (0) | 2024.12.18 |
SQL Developer 설치 및 계정 생성하는 방법 (0) | 2024.12.17 |
2024.12.17(화) / 2일차 연산자와 함수(2) (0) | 2024.12.17 |
2024.12.17(화) / 2일차 연산자와 함수 (1) (1) | 2024.12.17 |