계층형 질의

2023. 8. 11. 09:48· 자격증/SQLD자격증
목차
  1. 계층형 질의
  2. 셀프 조인
  3. 서브 쿼리
  4. 뷰
반응형

계층형 질의

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

 

START WITH : 계층 구조 전개의 시작 위치에 지정

CONNECT BY : 다음에 전개될 자식 데이터 지정

PRIOR : CONNECT BY 절에 사용되며 현재 읽은 칼럼을 지정한다. PORIOR 자석 = 부모 형태를 데이터(부모 -> 자식) 방향으로 전개하는 순방향 전개를 한다. 반대는 역방향 전개

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

ORDER SIBLINGS BY : 형제 노드 간의 정렬 수행

WHERE : 모든 전개를 수행한 후에 지정된 조건을 만족하는 데이터만 추출한다.

 

LEVEL : 루프데이터이면 1, 그 하위 데이터이면2, 리프 데이터까지 1씩 추가

CONNECT_BY_ISLEAF : 해당 데이터가 리프데이터이면 1, 그렇지 않으면 0

SYS_CONNECT_BY_PATH : 해당 데이터가 조상이면1, 아니면 0 (CYCLE 옵션을 사용했을 때만 사용 가능)

CONNECT_BY_ROOT : 현재 전개할 데이터의 루트 데이터를 표시한다. 단항 연산자이다.

 

 

셀프 조인

한 테이블 내 두 칼럼이 연관 관계가 있을 때 동일 테이블 사이의 조인, FROM절에 동일 테이블이 2번 이상 나타난다. 반드시 테이블 별칭을 사용해야 함.

 

 

서브 쿼리

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

 

서브쿼리 사용 시 주의 사항

- 서브쿼리를 괄호로 감싸서 사용한다.

- 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능하다. 단일 행 비교 연산자는 서브쿼리의 결과가 반드시 1건 이하이어야 하고 복수 행 비교 연산자는 서브쿼리의 결과 건수와 상관없다.

- 서브쿼리에서는 OREDER BY를 사용하지 못한다.

- 서브쿼리가 사용 가능한 곳

SELECT, FROM, WHERE, HAVING, ORDER BY, INSERT문의 VALUES, UPDATE문의 SET

 

 

서브쿼리의 분류

동작하는 방식에 따른 서브쿼리 분류

- 비 연관 서브쿼리 : 서브쿼리가 메인쿼리 칼럼을 가지지 않음, 메인쿼리에 값을 제공하기 위한 목적

- 연관 서브쿼리 : 서브쿼리가 메인쿼리 칼럼을 가지고 있음, 읽힌 데이터를 서브쿼리에 조건이 맞는지 확인

 

반환 데이터에 따른 서브쿼리 분류

- 단일 행 서브쿼리 : 실행 결과가 항상 1건 이하인 서브쿼리, 비교 연산자와 함께 사용 (=, <, >, <=, >=,...)

- 다중 행 서브쿼리 : 실행 결과가 여러 건인 서브쿼리, 다중 행 비교 연산자와 함께 사용 (IN, ALL, ANY, SOME, EXISTS)

- 다중 커럼 서브쿼리 : 실행 결과가 여러 칼럼, 메인 쿼리의 조건절에 여러 칼럼을 동시에 비교할 수 없다. 비교하고자 하는 칼럼의 개수와 칼럼의 위치가 동일해야 한다.

 

 

뷰

테이블은 실제로 데이터를 가지고 있는 반면, 뷰는 실제 데이터를 가지고 있지 않다. 가상 테이블이라고 함.

실행 시점에 SQL 재작성하여 수행됨.

 

인라인 뷰

FROM 절에서 사용되는 서브쿼리, ORDER BY를 사용 가능

 

뷰 사용 장점

1. 독립성 : 테이블 구조가 변경되어도 뷰를 사용하는 응용 프로그램은 변경하지 않아도 된다.

2. 편리성 : 복잡한 질의를 뷰로 생성함으로써 관련 질의를 단순하게 작성할 수 있다.

3. 보안성 : 직원의 급여 정보와 같이 숨기고 싶은 정보가 존재할 때 사용한다.

 

CREATE VIEW V_PLAYER AS SELECT...;

DROP VIEW V_PLAYER_TEAM


참고 사이트

요약 정리본 : https://yurimac.tistory.com/40

 

SQL) SQLD 이론 요약 정리 PDF

13페이지 분량의 SQLD 이론 요점 정리 PDF 파일을 공유합니다. 원본에서 필요하다 생각된 부분들을 추가, 삭제했습니다. 나름 오래 걸렸네요.. 🥲 2장 3절인 SQL 최적화 부분은 개정판부터 제거됐다

yurimac.tistory.com

DATE ON-AIR: https://dataonair.or.kr/db-tech-reference/d-guide/sql/?pageid=5&mod=list 

 

SQL – DATA ON-AIR

 

dataonair.or.kr

 

반응형
저작자표시 (새창열림)

'자격증 > SQLD자격증' 카테고리의 다른 글

DCL  (0) 2023.08.11
그룹 함수, 윈도우 함수  (0) 2023.08.11
표준 조인  (0) 2023.08.10
조인 (JOIN)  (0) 2023.08.08
함수 (FUNCTION)  (0) 2023.08.08
  1. 계층형 질의
  2. 셀프 조인
  3. 서브 쿼리
  4. 뷰
'자격증/SQLD자격증' 카테고리의 다른 글
  • DCL
  • 그룹 함수, 윈도우 함수
  • 표준 조인
  • 조인 (JOIN)
Jong_seoung
Jong_seoung
기록하자, 머리는 생각하는 곳이지 저장장치가 아니다.
반응형
Jong_seoung
Today_developStory
Jong_seoung
전체
오늘
어제

블로그 메뉴

  • Home
  • Git Hub
  • 분류 전체보기 (351)
    • Theory (16)
    • Java (3)
      • 알고리즘 (2)
      • 문법 (0)
    • Spring (7)
      • 스프링 입문 (6)
      • PickTalk (0)
      • 에러처리 (1)
    • Python (80)
      • 알고리즘 - 이론 (17)
      • 알고리즘 - 내장함수, 라이브러리 등등 (3)
      • 알고리즘 - 백준 (53)
      • 나도코딩 정리 (2)
      • 기타 (5)
    • Django (159)
      • DRF (105)
      • 인프라 (46)
      • DataBases (2)
      • API Docs (6)
    • FrontEnd (22)
      • htmx (2)
      • React (8)
      • 자바스크립트 (12)
    • GIT (16)
    • 기타 (8)
      • 정리 (2)
      • Flutter (1)
      • 마이크로프로세서 - ATmega128 (2)
      • 개발환경 세팅 (3)
    • 자격증 (37)
      • 정보처리기사 (19)
      • SQLD자격증 (18)

인기 글

최근 글

태그

  • alarm
  • BFS
  • CSRF
  • Django
  • django channels
  • django sse
  • django tutorial
  • django 배포
  • django 스웨거 적용
  • Django 이미지 저장

최근 댓글

hELLO · Designed By 정상우.v4.3.0
Jong_seoung
계층형 질의
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.