병호의 IT새싹키우기

MySQL JOIN 본문

SQL

MySQL JOIN

병호네 2024. 6. 5. 11:40

💡조인(Join) 이란?💡

데이터베이스에서 조인(Join) 은 두 개 이상의 테이블에서 관련된 데이터를 결합하여 새로운 결과를 생성할 때 사용하는 중요한 연산입니다.

 

💡Join이 필요한 이유?💡

데이터베이스에서 정보는 중복을 최소화하고 효율적으로 저장하기 위해 여러 테이블에 분산되어 저장. 실제로 정보를 사용할 때는 여러 테이블에 흩어져 있는 데이터를 통합해야 할 필요가 발생. 예를 들면 어떤 학생이 어떤 수업을 듣고 있는지 알고 싶을 때, '학생' 테이블과 '수업' 테이블을 결합해야만 필요한 정보를 얻을 수 있습니다. 복잡한 질의를 수행하기 위해서는 종종 여러 테이블의 데이터를 결합하고 비교해야 합니다. 조인을 사용하면 이러한 요구사항을 효과적으로 처리할 수 있습니다.

 

조인은 데이터베이스에서 분산된 정보를 효과적으로 통합하여 사용자가 원하는 특정 정보를 얻기 위한 강력한 도구입니다.

 

 

항상 먼저 접근하는 테이블이 기준이 되고, 위의 그림에서 왼쪽 동그라미에 해당한다.

  • JOIN은 크게 INNER JOIN과 OUTER JOIN으로 분류된다.
  • INNER JOIN은 조건에 해당하는 데이터만 뽑아낸다.
  • OUTER JOIN 에는 다음과 같이 분류되지만, MySQL에서는 FULL OUTER JOIN을 지원하지 않는다.
    • LEFT OUTER JOIN
    • RIGHT OUTER JOIN
    • FULL OUTER JOIN (MySQL에서는 지원 X)

 

시나리오 코드1

 

 

 

💡주의💡

MySQL에서 JOIN, CROSS JOIN, INNER JOIN은 구문적으로 동등하다. 결과가 같고, 서로 대체 가능하다. (표준 SQL에서는 동일하지 않다. 보통 INNER JOIN은 ON절과 함께 쓰이고, CROSS JOIN은 다르게 사용된다. CROSS JOIN이란 한 쪽 테이블의 행 하나에 다른 쪽 테이블의 행을 각각 조인시키는 걸 말한다.)

ON 조건 없이 사용하게 되면 CROSS JOIN의 결과가 나오고, ON 조건을 사용하게 되면 조건을 건 컬럼의 값이 같은 데이터들을 합친 결과가 나온다.

 

MySQL에서는 JOIN 또는 INNER JOIN을 할 때, ON 으로 조건을 지정해주지 않으면 CROSS JOIN의 결과가 나온다.

 

 

 

 

OUTER JOIN

LEFT JOIN(= LEFT OUTER JOIN)

  • 왼쪽 테이블을 기준으로 합치며, ON 절에 있는 조건 컬럼의 값이 같은 데이터를 합친다. 오른쪽 테이블에 값이 같은 데이터가 없다면, NULL이 삽입된다.

 

 

LEFT JOIN 먼저 접근하는 테이블이 기준 테이블이 된다 .

 

RIGHT JOIN(= RIGHT OUTER JOIN)

  • 오른쪽 테이블을 기준으로 합치며, 나머지 부분은 LEFT JOIN과 같다.

'SQL' 카테고리의 다른 글

MySQL Function  (1) 2024.06.10
테이블 복사 및 데이터 추가  (0) 2024.06.05
관계 차수란?  (1) 2024.06.04
MySQL에서 인덱스(index)란  (1) 2024.06.04
UNIQUE 제약에 이해  (0) 2024.06.04