본문 바로가기
프로그래밍 언어/SQL - MySQL

[MySQL] SELECT - 조인 (join)

by UltraLowTemp-Physics 2021. 8. 1.
728x90

조인이란 ?

두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것 

데이터 베이스의 테이블들은 중복 및 공간 낭비를 피하고 데이터 무결성을 위해 여러 개의 테이블로 분리하여 저장함. 그리고 이러한 테이블들은 서로 관계를 맺고 있으며, 가장 보편적인 관계는 1대다 관계이다. 

내부조인 및 외부 조인

1) 내부 조인: 테이블들 간의 교집합 
   - 두 테이블에 공통으로 존재하는 키값이 되는 모든 행을 나타냄 
   - 조인 조건을 지정하지 않은 채 두 테이블을 조인하면 곱집합이 된다. 
     이 경우, 반환되는 행의 수는 첫번째 테이블과 두번째 테이블의 행의 수를 곱한 수가 됨 
2) 외부 조인 
   - 조인의 조건에 만족되지 않는 행까지도 포함시키는 것 
   - 외부 조인은 left outer join, right outer join, full join으로 나누어짐 
      (a) LEFT OUTER JOIN: 왼쪽 테이블의 것이 모두 출력되어야 함 
      (b) RIGHT OUTER JOIN: 오른쪽 테이블의 것이 모두 출력되어야 함 
      (c) FULL OUTER JOIN: 왼쪽 및 오른쪽 테이블 값이 모두 출력 

 

내부 조인 형식 

SELECT <열 목록>
FROM	<첫번째 테이블>
    INNER JOIN <두 번째 테이블>
    ON <조인 조건>
[WHERE 검색 조건]

 

외부 조인

1) LEFT OUTER JOIN
- 테이블 1(왼쪽)의 모든 값을 나타내고, 테이블 1(왼쪽)을 기준으로 테이블 2(오른쪽)를 붙이는 것 

SELECT <별칭1>.<열이름1>, <별칭2>.<열이름2>
FROM <테이블명1> AS <별칭1> LEFT OUTER JOIN <테이블명2> AS <별칭2>
ON 별칭1.KEY = 별칭2.KEY

 

2) RIGHT OUTER JOIN 
- 테이블 1을 기준으로, 테이블 1은 오른쪽에 위치하며, 테이블 2를 왼쪽으로 붙이는 것 

SELECT <별칭1>.<열이름1>, <별칭2>.<열이름2>
FROM <테이블명1> AS <별칭1> RIGHT OUTER JOIN <테이블명2> AS <별칭2>
ON 별칭1.KEY = 별칭2.KEY

 

728x90

댓글