[교육] SQL 교육

버버니야·2022년 3월 27일
0

릴레이션

1 대 N으로 가정
하나의 주문으 녀얼 개의 상품을 가질 수 잇다.
하나의 주문 상품은 반드시 하나의 주문을 가질 수 있다.

하나의 결재는 여러 개의 결재 이력을 가질 수 있다.
하나의 결재이력은 하나의 결재를 포함할 수 있다.

CORSS JOIN

  1. 개념
    조인되는 테이블의 모든 행을 연결하여 카티션 곱을 생성

  2. sql 형식
    select c.cust id c.cust name, p.prod cd and p.prod name
    form cust c, prod p (or FROM cust c CROSS JOIN prod p)

ANSI 표준은 괄호 안의 표현 다른 디비에서도 사용가능

INNER JOIN

  1. 개념
  • 조인 대상 테이블 사이의 칼럼 값 Equal(=) 비교를 통해 같은 값을 가진 행끼리 연결
  1. SQL 형식
    FROM A,B WHERE A.key = B.key
    FROM A INNER JOIN B ON B.key = A.key
  • FROM A NATURAL JOIN B (조건 없이) 동일한 이름을 가지는 칼럼은 모두 조인
  • FROM A INNER JOIN B USING (A.key) 지정된 칼럼과 같은 이름의 칼럼 조인
  1. 실행계획
    1:1일 때 eq ref, 1:N 일때 1이 driving이면 ref, N이 driving이면 eq.ref

    ref - 여러 개가 있을 수 있음
    eq.ref -

    1:N 관계에서 [=] 조건을 만족하는 N의 건수가 최종 건수 (N만큼 1의 데이터가 복제)

    1.3 OUTER JOIN

    C는 조인에 포함되지 않지만 결과셋에 포함시킬 수 잇음


    N LEFT는 inner join이랑 같은결과 - 옵티마이저가 보정해줌

    교재

    퍼스트 매치 옵티마이저


    materialization 세미조인의 기법
    임시 테이블을 생성해 메모리에 올려서 JOIN해 실행 속도를 향상시킬 수 있다.


dupliacated without (잡초 뽑기) 속아내기 결과를 만들고 중복을 제거하는 방법
이 방법은 오버헤드가 많이 발생하는 단점이 있다.

어떤 방법을 사용해 중복을 제거할지는 옵티마이저가 결정하기 때문에 신경쓰지 않아도된다.

Anti join 의 부정형
Not in
not exists

profile
안녕하세요

0개의 댓글