ksouth9

JOIN(조인) 본문

Database

JOIN(조인)

ksouth9 2022. 11. 16. 23:28

JOIN(조인)이란, 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것.

 

조인을 쓰면 두 개의 테이블을 엮어서 원하는 데이터를 추출할 수 있다.

두 테이블의 조인을 위해서는 기본키(PRIMARY KEY, PK)외래키(FOREIGN KEY, FK) 관계로 맺어져야 하고, 이를 1대다 관계라고 한다.

 

  • JOIN은 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것을 말한다.
  • INNER JOIN(내부조인) - 두 테이블을 조인할 때, 두 테이블에 모두 지정한 열의 데이터가 있어야한다.
  • OUTER JOIN(외부조인) - 두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 조회된다.
  • CROS JOIN(상호조인) - 한쪽 테이블의 모든 행과 다른 쪽 테이블의 모든 행을 조인하는 기능.
  • SELF JOIN(자체조인) - 자신이 자신과 조인한다 라는 의미로, 1개의 테이블을 사용한다.

INNER JOIN(내부 조인)


조인 중에서 가장 많이 사용되는 조인이다. 일반적으로 JOIN이라고 얘기하는 것이 INNER JOIN을 지칭하는 것이다.

SELECT 컬럼
FROM 첫 번째 테이블
INNER JOIN 두 번째 테이블
ON 조인될 조건
[WHERE 검색조건];

위의 형식에서 INNER JOIN을 그냥 JOIN이라고 작성해도 INNER JOIN으로 인식한다. WHERE 조건 문은 없어도 상관 없다.

 

OUTER JOIN(외부 조인)


  • LEFT OUTER JOIN - 왼쪽 테이블의 모든 값이 출력된다.
  • RIGHT OUTER JOIN - 오른쪽 테이블의 모든 값이 출력된다.
  • FULL OUTER JOIN - 왼쪽 또는 오른쪽 테이블의 모든 값이 출력된다.

두 테이블을 조인할 때, 1개의 테이블에만 데이터가 있어도 조회된다.

SELECT 컬럼
FROM 첫 번째 테이블(LEFT 테이블)
<LEFT,RIGHT,FULL> OUTER JOIN 두 번째 테이블(RIGTH 테이블)
ON 조인될 조건
[WHERE 검색조건];

LEFT OUTER JOIN을 줄여서 LEFT JOIN으로 사용할 수 있다.

 

CROSS JOIN(상호 조인)


한쪽 테이블의 모든 행들과 다른 쪽 테이블의 모든 행을 조인시킨다. 그래서 CROSS JOIN의 결과 개수는 두 테이블 개수를 곱한 개수가 된다.

 

  • CROSS JOIN에는 ON 구문을 사용할 수 없다.
SELECT *
FROM 첫 번째 테이블
CROSS JOIN 두 번째 테이블;

 

SELF JOIN(자체 조인)


SELF JOIN은 별도의 구문이 있는 것이 아니라 자기 자신과 자기 자신이 조인한다는 의미이다.

 

SELECT 컬럼
FROM 테이블
INNER JOIN 테이블
ON 조인될 조건
[WHERE 검색조건];

 

'Database' 카테고리의 다른 글

데이터 모델링  (0) 2022.09.29
SQL(Structured Query Language)  (0) 2022.05.09
데이터베이스(Database) - 기초  (0) 2022.05.09