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의 이해도를 높이는 과정




'DBeaver > 실습' 카테고리의 다른 글
화면기획서를 보고 SQL문을 작성해보자! (2) | 2024.12.04 |
---|---|
foreing keys 연결과 여러 테이블 join , left join실습 (0) | 2024.12.03 |
날짜 함수 실습(datediff,date_add,dayname,dayweek..등) (1) | 2024.12.02 |
defaylt 값을 활용한 시간 입력 (0) | 2024.12.02 |
if(),case_end,날짜 관련함수 실습 (0) | 2024.11.29 |