[내일배움캠프] 자바 Spring_SQL(4)JOIN_230112

2023. 1. 12. 22:02·스파르타 부트캠프(spring)

4일차: JOIN

 

JOIN이란?

: 두 개의 테이블을 서로 묶어서 하나의 결과를 만들어 내는 것.

 

기본 형태

     SELECT (테이블.컬럼, 테이블.컬럼)

     FROM 테이블1, 테이블2
   

     WHERE
(조건)

 

 

 

내부 조인(Inner join)

: 기준 테이블과 조인 테이블 모두에 조인컬럼 데이터가 존재해야 조회 됨.

내부 조인의 형식

   SELECT 조회할 컬럼 

   FROM 테이블1

   (INNER) JOIN 테이블2 --INNER JOIN은 'INNER' 생략 가능

   ON 테이블1.컬럼 = 테이블2.컬럼--JOIN될 조건


   WHERE  추가 조건;

 

SQL

  SELECT buy.mem_id, member.mem_name, buy.prod_name, member.addr

  FROM buy

  JOIN member

  ON buy.mem_id = member.mem_id;


-------- 테이블 이름에 별칭을 붙이면
  SELECT B.mem_id, M.mem_name, B.prod_name, M.addr

  FROM buy B

  JOIN member M

  ON B.mem_id = M.mem_id;

 

외부 조인(Outer join)

: 두 테이블을 조인할 때 필요한 내용이 한쪽 테이블에만 있어도 결과를 추출할 수 있다.

 

외부 조인의 형식

     SELECT  조회할 컬럼

     FROM 테이블1(LEFT테이블)

     <LEFT / RIGHT / FULL> OUTER JOIN 테이블2 (RIGHT테이블)

     ON 조건문


     [WHERE 검색 조건];
  • 두 테이블 전부 값을 유지 -> FULL OUTER JOIN
  • 왼쪽 테이블 값만 유지 -> LEFT OUTER JOIN
  • 오른쪽 테이블 값만 유지 -> RIGHT OUTER JOIN

 

SQL

  SELECT M.mem_id, M.mem_name, B.prod_name, M.addr
 
  FROM member M
 
  LEFT OUTER JOIN buy B
 
  ON M.mem_id = B.mem_id
 
  ORDER BY M.mem_id;

 

 

그 밖의 조인

상호 조인(cross join)

: 두 테이블의 데이터의 모든 조합 (곱집합, 테이블1 row * 테이블2 row의 개수 만큼 row를 가진 테이블 생성)

상호 조인의 형식

     SELECT 조회할 컬럼

     FROM 테이블1 

     CROSS JOIN 테이블2 

 

 

자체 조인(self join)

: 1개의 테이블에 가상으로 1 , 2 라는 별칭을 부여하여 2개의 테이블처럼 간주한 뒤 조인하는 것.

기본 형태

     SELECT 조회할 컬럼 
     
     FROM 테이블.별칭A

     INNER JOIN 테이블 별칭B
     ON 조인될 조건

    [ WHERE (검색
조건)]
  • SELF JOIN도 INNER JOIN, OUTER JOIN으로 문제 유형에 따라 다르게 수행 가능.

'스파르타 부트캠프(spring)' 카테고리의 다른 글

[내일배움캠프_Spring] 자바 Spring 입문_예약어_230116  (0) 2023.01.16
[내일배움캠프] 자바 Spring_SQL(5)제약조건_230113  (0) 2023.01.16
[내일배움캠프] 자바 Spring_SQL(3)CAST, CONVERT_230111  (0) 2023.01.12
[내일배움캠프] 자바 Spring_SQL(2)삽입, 수정, 삭제_230110  (0) 2023.01.10
[내일배움캠프] 자바 Spring_SQL_230109  (0) 2023.01.09
'스파르타 부트캠프(spring)' 카테고리의 다른 글
  • [내일배움캠프_Spring] 자바 Spring 입문_예약어_230116
  • [내일배움캠프] 자바 Spring_SQL(5)제약조건_230113
  • [내일배움캠프] 자바 Spring_SQL(3)CAST, CONVERT_230111
  • [내일배움캠프] 자바 Spring_SQL(2)삽입, 수정, 삭제_230110
yeah구리
yeah구리
백엔드를 공부하는 초심자입니다.
  • yeah구리
    개발일지_헤맨만큼 내땅이다
    yeah구리
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • 스파르타 부트캠프(spring) (75)
      • 스파르타 기술면접 (10)
      • 코딩연습 (0)
      • 항해 (10)
      • 개발일지 (4)
        • 개인 회고 (1)
        • 개발로그 (실무) (2)
      • 공부노트 (0)
      • 코딩테스트 (0)
        • 프로그래머스 (0)
        • 백준 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    X(Twitter) API #캐싱 #트러블슈팅 #개발
    비전공개발자 #개발로그 #커리어
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
yeah구리
[내일배움캠프] 자바 Spring_SQL(4)JOIN_230112
상단으로

티스토리툴바