IT STUDY LOG
[Oracle] 서브쿼리 본문
# 서브쿼리의 정의
- RDB > SQL > 쿼리 명령어
- 하나의 SQL문 안에 포함된 또 다른 SQL문
- 서브쿼리는 단일행 함수를 사용하는 것처럼 한 번만 실행되는 것이 아니라 메인쿼리 매 행마다 실행 (성능 저하 가능성)
# 서브쿼리의 종류
- 단일 행 서브쿼리
- 다중 행 서브쿼리
- 다중 열 서브쿼리
- 상관관계 서브쿼리
- INLINE VIEW
# 참고
스캔 방법
- FULL SCAN : 전체 테이블 스캔
- INDEX SCAN : WHERE절의 컬럼 위치를 인덱스 테이블에서 확인 후 ROWID로 테이블 내 위치를 찾음
허수 컬럼
- ROWID
- ROWNUM : ROWNUM에서 쓰일 수 있는 연산자는 <=, <, =. 일종의 STOP KEY 역할 수행하므로, 즉 해당 조건이 만족되면 종료하므로 성능 향상에 효과적
SELECT empno, ename, deptno, sal, ROWID, ROWNUM
FROM emp
WHERE ROWNUM <= 3;
SELECT empno, ename, deptno, sal, ROWID, ROWNUM
FROM emp
WHERE deptno = 30
AND ROWNUM = 3; -- ROWNUM이 동등연산자와 쓰일 때는 1밖에 올 수 없음(∵ROWNUM은 리턴되는 행에 넘버링되는 것이므로)
# 서브쿼리가 사용되는 위치
- SELECT문
- SELECT
- FROM
- WHERE
- HAVING
- ORDER BY
- UPDATE문의 SET절
- INSERT문의 INTO절
'computer science > database' 카테고리의 다른 글
[Oracle] 서브쿼리 - 다중행/다중열/상호연관 서브쿼리 및 기타 서브쿼리 (0) | 2023.09.01 |
---|---|
[Oracle] 서브쿼리 - 단일행/단일열 서브쿼리 (0) | 2023.09.01 |
[Oracle] 그룹함수 - GROUP BY의 확장 (0) | 2023.08.31 |
[Oracle] SET 연산자 (0) | 2023.08.31 |
[Oracle] JOIN - ANSI 조인 문장 (0) | 2023.08.31 |
Comments