[SQLD] SQL 기본 및 활용 문제풀이-1

·2023년 5월 22일
0

SQLD

목록 보기
12/18
post-thumbnail
post-custom-banner
  • 순수 관계 연산자 : SELECT, PROJECT, JOIN, DIVIDE

EXISTS, NOT EXISTS

  1. EXISTS B : B에 해당하는 값
  2. NOT EXISTS B : B에 해당하지 않는 값

LEFT(RIGHT) OUTER JOIN

기준 테이블(LEFT:좌, RIGHT:우)에 데이터를 다 출력하고 일치하지 않는 값은 NULL로 치환

카티시안 곱

발생 가능한 모든 경우의 수의 행이 출력되는 것을 의미하며, N개의 행을 가진 테이블과 M개의 행을 가진 테이블의 카타시안 곱은 N * M이다.

카티시안 곱이 발생하는 경우

  • 조인 조건을 생략하는 경우
  • 조인 조건이 부적합할 경우

CROSS JOIN

테이블 간 JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합을 말한다.
결과는 양쪽 집합의 M*N건의 데이터 조합이 발생.

💡 오라클에서 (+) 표시는 OUTER JOIN을 의미하며 ON 조건절이 필수적으로 필요

차집합

차집합은 NOT IN 또는 NOT EXISTS로 대체하여 처리 가능

1:1 관계에서의 JOIN

  • 1:1 관계는 양쪽 필수 관계를 시스템적으로 보장한다.
  • 1:1 관계를 가진 두 엔티티간의 차집합의 결과는 항상 공집합이다.
  • 1:1 관계에서 UNIONUNION ALL의 결과는 다르다.

START WITH 조건식

: 조건식에 해당하는 값부터 추출을 시작한다. -> ROOT DATA이며 LEVEL은 1이다.

CONNECT BY PRIOR 조건식

  • PRIOR의 의미는 이전이다.
    CONNECT BY PRIOR A = B 일 경우, 이전에 추출한 데이터의 A의 값과 같은 값을 가진 B를 찾아 추출하라는 의미이다.
  • 같은 레벨의 형제 노드는 각각의 CONNECT BY절을 실행한다.

💡 PRIOR절은 CONNECT BY절 뿐만 아니라 SELECT, WHERE절에서도 사용이 가능하다.

profile
🧑‍💻백엔드 개발자, 조금씩 꾸준하게
post-custom-banner

0개의 댓글