오늘은 단순 용어적인 부분이 많다 ㅎ

계층형 질의

  • 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해 사용

SATRT WITH

  • 계층 구조 전개의 시작 위치 지정

CONNECT BY

  • 다음에 전개될 자식 데이터 지정

PRIOR

  • CONNECT BY 절에 사용되며, 현재 읽은 컬럼을 지정한다.
    PRIOR 자식 = 부모 형태를 사용하면 계층구조에서 부모 데이터에서 자식 데이터(부모-> 자식) 방향으로 전개하는 순방향 전개를 한다. 반대는 역방향 전개

NOCYCLE

  • 동일한 데이터가 전개되지 않음

ORDER SIBLINGS BY

  • 형제 노드간의 정렬 수행

WHERE

  • 모든 전개를 수행한 후에 지정된 조건을 만족하는 데이터만 추출한다.(필터링)

LEVEL : 루트 데이터이면 1, 그 하위 데이터면 2, 리 프 데이터까지 1씩 증가
CONNECT_BY_ISLEAF : 해당 데이터가 리프 데이터면 1, 그렇지 않으면 0
CONNECT_BY_ISCYCLE : 해당 데이터가 조상이면 1, 아니면 0 (CYCLE 옵션 사용 했을때만 사용 가능)
SYS_CONNECT_BY_PATH : 루트 데이터부터 현재 전개할 데이터까지의 경로를 표시한다. CONNECT_BY_ROOT : 현재 전개할 데이터의 루트 데이터를 표시한다. 단항 연산자이다.

셀프 조인

동일 테이블 사이의 조인, FROM 절에 동일 테이블이 2번 이상 나타난다. 반드시 테이블 별칭을 사용해야 함

서브쿼리

하나의 SQL문 안에 포함되어 있는 또다른 SQL문, 알려지지 않은 기준을 이용한 검색에 사용

🚨 서브쿼리 사용시 주의사항 🚨

  • 서브쿼리를 괄호로 감싸서 사용한다.
  • 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능하다. 단일 행 비교 연산자는 서브쿼리의 결과가 반드시 1건 이하여야 하고 복수행 비교 연산자는 결과 건수와 상관없다.
  • 서브쿼리에서는 ORDER BY를 사용하지 못한다!
  • SELECT, FROM, WHERE, HAVING, ORDER BY, INSERT-VALUES, UPDATE-SET 절에 사용 가능
profile
민주입니다

0개의 댓글

Powered by GraphCDN, the GraphQL CDN