티스토리 뷰

DATABASE/SQL

[SQL] JOIN

진심스테이크 2018. 4. 20. 10:38

 

Join : 한개 이상의 테이블에서 데이터를 조회하기 위해 사용

 

 

조인 형태

1. Cross Join : 2개 이상의 테이블이 조인될 때 WHERE절에 의해 공통되는 칼럼에 의한 결합이 발생되지 않는 경우

- 테이블에 존재하는 모든 데이터가 검색 결과로 나타남

- 특별한 키워드 없이 사용

- 기본 형태

SELECT * FROM 테이블명;

 

2. Equi Join : 조인 대상이 되는 두 테이블에서 공통적으로 존재하는 칼럼의 값이 일치되는 행을 연결하여 결과를 생성

- 가장 많이 사용하는 조인 방법 

- 기본 형태

SELECT * FROM 테이블1, 테이블2 WHERE 테이블1.칼럼명 = 테이블2.칼럼명;

   #WHERE뒤에 선언한 칼럼명은 두개의 테이블에서 동일한 칼럼명을 호출한것

 

3. Non-Equi Join : 조인한 테이블 사이에 칼럼 값이 직접적으로 일치하지 않을 때 사용하는 조인

- = 연산자를 사용

- 컬럼명의 모호성 : 두 테이블에서 동일한 칼럼명을 사용하면 어느 테이블 소속인지 불분명하기 때문에 애매해진다

  -> 칼럼을 호출할 때 테이블명.칼럼명 형태로 호출

- 테이블 별명 : FROM 테이블명 별명 형태로 지정

 

4. Self Join : 자기 자신과 조인을 맺음

 

5. Outer Join : 조인 조건에 만족하는 데이터 뿐만 아니라 어느 한쪽 테이블에 조인 조건에 명시된 칼럼에 값이 없거나 해당 로우가 아예 없더라도 데이터를 모두 추출

- 일반 조인 확상한 개념

- NULL 값도 행의 결과에 포함 가능

- + 기호를 사용해서 조인 조건에 정보가 부족한 칼럼 이름 뒤에 덧붙힘

- 조인 조건에 만족하지 못하더라도 해당 로우를 나타내고 싶을 때 사용

 

6. ANSI Join : SQL 문법을 사용한 조인

▶ ANSI Inner Join

- 기본 형태

SELECT * FROM 테이블명1 INNER JOIN 테이블명2 ON 조인조건 WHERE 조건문;

- 조인조건

  - using : 두 테이블에 각 조인을 정의한 이름이 동일할 때 사용 -> 간단하게 표현

    SELECT * FROM 테이블명1 INNER JOIN 테이블명2 USING 공통칼럼;

  - natural join : using문을 쓰지 않음 -> 공통 칼럼을 알아서 조인시켜줌

    SELECT * FROM 테이블1 NATURAL JOIN 테이블명2

▶ ANSI Outer Join

- Left Outer Join : 왼쪽에 선언한 테이블이 기준

  - 기본 형테

SELECT * FROM 테이블명1 LEFT OUTER JOIN 테이블명2 USING 테이블명1.칼럼명 = 테이블명2.칼럼명;

    #테이블명1 한테만 칼럼이 존재

- Right Outer Join : 오른쪽에 선언한 테이블이 기준

  - 기본 형태

SELECT * FROM 테이블명1 RIGHT OUTER JOIN 테이블명2 USING 테이블명1.칼럼명 = 테이블명2.칼럼명;

    #테이블명2 한테만 칼럼이 존재

- Full Outer Join : Left Outer Join + Right Outer Join

  - 기본 형태

SELECT * FROM 테이블명1 FULL OUTER JOIN 테이블명2 USING 공통칼럼명;

 

 

'DATABASE > SQL' 카테고리의 다른 글

[SQL] INDEX  (0) 2018.04.20
[SQL] SUBQUERY  (0) 2018.04.20
[SQL] VIEW  (0) 2018.04.19
[SQL] SCHEMA - 스키마  (0) 2018.04.19
[SQL] 데이터 무결성  (1) 2018.04.19
댓글