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)
'일단 해보는 코딩 > Oracle SQL' 카테고리의 다른 글
[오라클/SQL] PL/SQL 실행 (0) | 2022.06.13 |
---|---|
[오라클/SQL] SYNONYM (동의어), MERGE(머지), Data Dictionary(딕셔너리) (0) | 2022.06.13 |
[오라클/SQL] Sequence 생성/삭제, Role 권한 위임 (0) | 2022.06.10 |
[오라클/SQL] INDEX 생성/조회/삭제/통계정보 (0) | 2022.06.10 |
[오라클/SQL] 스크립트 작성 및 SQL 파일 실행하기 (0) | 2022.06.10 |