백수왕 2024. 4. 4. 15:40

Join(조인)

영어사전에서 조인이란 연결하다, 잇다 라고 표현하는데 뜻에서 알 수 있듯 하나가 아닌 둘 이상을 잇는 것을 의미한다.

데이터베이스에서의 조인도 비슷한데,

한 테이블의 행을 다른 테이블의 행에 연결하여 두 개 이상의 테이블을 결합하는 것이다.

 

조금 정직하게 설명하면

  • 한 데이터베이스 내의 여러 테이블의 레코드를 조합하여 하나의 열로 표현한 것.
  • 테이블로서 저장되거나, 그 자체로 이용할 수 있는 결과 셋을 만든다.

 

조인의 필요성

서로 관계있는 데이터가 여러 테이블로 나뉘어 저장되므로 각 테이블에 저장된 데이터를 효과적으로 검색하기 위해 필요하다.

ex) MEMBER 테이블과 TEAM 테이블, STUDENT 테이블과 CLASS 테이블 

 

 

Join의 종류

 

 

FOOD_A
FOOD_B

  • INNER JOIN : 두 테이블 간의 일치하는 행을 반환.
    • SELECT * FROM FOOD_A A INNER JOIN FOOD_B B ON A.FOOD_NAME = B.FOOD_NAME;

  • LEFT OUTER JOIN : 기준 테이블의 모든 행과 join 테이블의 일치하는 행을 반환하며, join 테이블에 일치하는 행이 없는 경우에는 NULL 값을 사용하여 조인한다.
    • SELECT * FROM FOOD_A A. LEFT OUTER JOIN FOOD_B B ON A.FOOD_NAME = B.FOOD_NAME;

  • RIGHT OUTER JOIN : LEFT OUTER JOIN과 비슷하지만, 기준이 오른쪽이고 join 테이블이 왼쪽인 경우입니다.
    • SELECT * FROM FOOD_A A RIGHT OUTER JOIN FOOD_B B ON A.FOOD_NAME = B.FOOD_NAME;

  • FULL OUTER JOIN : 양쪽 테이블의 모든 행을 반환하고 일치하는 행이 없는 경우 NULL 값을 사용하여 조인한다.
    • SELECT * FROM FOOD_A union SELECT * FROM FOOD_B B;

  • CROSS JOIN : 두 테이블의 각 행이 다른 테이블의 각 행과 결합됩니다. 
    • SELECT * FROM FOOD_A CROSS JOIN FOOD_B;
    • SELECT * FROM FOOD_A JOIN FOOD_B;
    • SELECT * FROM FOOD_A, FOOD_B