IT STUDY LOG

[Oracle] 서브쿼리 본문

computer science/database

[Oracle] 서브쿼리

roheerumi 2023. 8. 31. 16:41

# 서브쿼리의 정의 

  • 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절 
Comments