본문 바로가기
정보처리기사 실기/데이터베이스

SQL - JOIN

by 밍구몬 2018. 9. 12.

SQL - JOIN

 

  • 2개의 테이블에 대해 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션을 반환.
  • JOIN 크게 INNER JOIN OUTER JOIN으로 구분됨
  • JOIN 일반적으로 FROM 절에 기술하지만, 릴레이션이 사용되는 어느 곳에나 사용 있음.

 

INNER JOIN

 

  • 일반적으로 EQUI JOIN NON-EQUI JOIN으로 구분됨.

 

EQUI조인

  • JOIN대상 테이블에서 공통 속성을 기준으로 =(equal) 비교에 의해 같은 값을 가지는 행을 연결하여 결과를 생성하는 JOIN방법.
  • EQUI JOIN에서 JOIN  조건이 '=' 동일한 속성이 나타나게 되는데, 중복된 속성을 제거하여 같은 속성을 번만 표기하는 방법을 NATURAL JOIN이라 .
  • SELECT 속성명,… FROM 테이블1, 테이블2 WHERE 테이블1.속성 = 테이블2.속성
  • SELECT 테이블.속성, 테이블2.속성 FROM 테이블1 NATURAL JOIN 테이블2
  • SELECT 테이블.속성, 테이블2.속성 FROM 테이블1 JOIN 테이블명2 USING(속성명)

 

NON-EQUI JOIN

  • JOIN조건에 '='조건이 아닌 나머지 비교 연산자를 사용하는 조인
    ex) >, <, <=, >=, <>
  • SELECT 속성1,속성2 FROM t1, t2 WHERE t1.속성1 BETWEEN 1 AND 10

 

OUTER JOIN

 

 

  • OUTER JOIN 릴레이션에서 JOIN조건에 만족하지 않는 튜플도 결과로 출력하기 위한 JOIN 방법으로,LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN 있다.

 

LEFT OUTER JOIN

 

  • INNER JOIN 결과를 구한 , 우측 릴레이션의 어떤 투플과도 맞지 않는 좌측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여서 INNER JOIN 결과에 추가
  • 왼쪽에 있는 값은 모두 나옴
  • FROM 테이블1 LEFT OUTER JOIN 테이블2
    ON 테이블1.속성 = 테이블2.속성
  • FROM 테이블1, 테이블2
    WHERE 테이블1.속성 = 테이블2.속성(+)

 

 

RIGHT OUTER JOIN

 

  • INNER JOIN 결과를 구한 , 좌측 릴레이션의 어떤 튜플과도 맞지 않는 우측 항의 릴레이션에 있는 튜플들에 NULL 값을 붙여서 INNER JOIN 결과에 추가
  • , 오른쪽 테이블값은 나옴
  • FROM 테이블1 RIGHT OUTER JOIN 테이블2
    ON 테이블1.속성 = 테이블2.속성
  • FROM 테이블1, 테이블2
    WHERE 테이블1.속성(+) = 테이블2.속성

 

 

FULL OUTER JOIN

 

  • LEFT OUTER JOIN RIGHT OUTER JOIN 합쳐 놓은
  • FROM t1 FULL  OUTER JOIN t2
    ON t1.
    속성 = t2.속성

 

SELF JOIN

 

  • 같은 테이블에서 2개의 속성을 연결하여 EQUI JOIN 하는 JOIN 방법
  • SELECT 별칭1.속성,별칭2.속성
    FROM
    테이블1 [AS] 별칭1 join 테이블2 [AS] 별칭2
    ON
    별칭1.속성 = 별칭2.속성

 

 

 

 


'정보처리기사 실기 > 데이터베이스' 카테고리의 다른 글

SQL - DCL  (0) 2018.09.12
SQL - DML  (0) 2018.09.12
SQL - SELECT  (0) 2018.09.12
SQL - DDL  (0) 2018.09.12
데이터베이스  (0) 2018.09.10