DBeaver/실습

join 과 left join 이해와 실습

qoeka 2024. 12. 2. 23:26

join 이란 무엇인가?

-R(관계)DBMS : MSQL, Oracle, DB2, MS SAL Server
-NoSQL(분산처리/ 트위터/증가하는 데이터)

join은 RDBMS 와 같은 관계형 데이터이다

만약 쿠팡이 있다고 할때 고객이 상품을 주문하려한다면 고객데이터와 
그 고객이 주문한 상품의 데이터가 필요할것이다

이때 이 모든 정보를 하나의 테이블에 다 집어 넣는다면 중복 데이터가 있을시에 일일히 수정해야하며 
만약 물건을 취소했을경우 회원가입까지 없어져서 회원가입을 다시 해야하는 불상사가 발생할 수 있다.

우리는 이러한 사고를 방지하기 위해 테이블을 쪼개서 쓰는 것이고 이러한 관계가 관계형베이스 데이타라고 한다

그리고 아래는 두개의 데이터를 묶는 과정을 설명한 것이다

즉 join은 교집합을 보여준다 생각하면 된다

 

 

 

일단은 join을 위해 두 컬럼을 묶어주는것 부터 성명하겠다.

 

 

foreian keys(연결) 에 들어간 다음 오른쪽 마우스 맨위를 클릭하면 아래와 같은 페이지가 뜬다

 

 

 

연결하고자하는 테이블을 선택후 , 맨 앞에 <new> 옆 화살표를 누르면 위와 같이 컬럼명을 지정할 수 있다. 

연결이 완료가 되면 ER Diagram 에서 확인하면 되는데 위와 같이 연결이 됬다면 성공한것이다

 

 

 

 

 

join 을 쓴다는 의미는 두개읙 공통된 컬럼을 묶어서 가져오게 된다는 의미이다.(교집합)

 

join은 공통된 두가지를 묶는 것이다 라는건 id를 보면 같은 번호끼리 나열된것으로 확인 함으로써 어떻게 나열되는지 확인 할 수 있다.

 

 

join의 경우는 같은 값을 같이 붙여서 가져왔을 뿐 같지 않은 것은 가져오지 않은 상태이다

 

하지만

left join 은 포함되지 않은 왼쪽 컬럼의 정보까지 추가로 나타내주는 것이다

그렇기에 위에 보면  중간부터  정보 값이 없는 컬럼들은 null 이 떠있는것이다

 

 

결론적으로 알아보기 쉽게 정리하면 이렇게 되는것이다

 

JOIN (INNER JOIN)

정의: JOIN 또는 INNER JOIN은 두 테이블에서 일치하는 레코드만 반환합니다. 
      즉, 두 테이블 간의 조건에 맞는 데이터만 포함됩니다.
      
결과: 두 테이블 모두에서 공통적으로 존재하는 데이터만 포함되며, 일치하지 않는 데이터는 제외됩니다.

LEFT JOIN (LEFT OUTER JOIN)

정의: LEFT JOIN은 왼쪽 테이블의 모든 레코드를 반환하며, 
오른쪽 테이블에서 일치하는 레코드가 있으면 그 데이터를 포함합니다. 
오른쪽 테이블에 일치하는 데이터가 없으면 NULL로 채워집니다.

결과: 왼쪽 테이블의 모든 데이터가 포함되며, 오른쪽 테이블의 일치하지 않는 데이터는 NULL로 표시됩니다.

 

-특징JOIN (INNER JOIN)LEFT JOIN (LEFT OUTER JOIN)

반환되는 데이터 일치하는 레코드만 포함 왼쪽 테이블의 모든 레코드 포함
NULL 처리 NULL 값 없음 일치하지 않는 경우 NULL 값 반환
사용 예 두 테이블 간의 관계가 명확할 때 사용 왼쪽 테이블의 모든 데이터를 필요로 할 때 사용

 

LEFT JOIN의 이해도를 높이는 과정