cbw1030
기록하는 공간
cbw1030
전체 방문자
오늘
어제
  • 전체보기 (101)
    • Programming (99)
      • Java (19)
      • Servlet (10)
      • Spring Framework (13)
      • Javascript (22)
      • AWS (2)
      • 네트워크 (8)
      • 데이터베이스 (13)
      • 리눅스 (3)
      • 블록체인 (7)
      • 용어 정리 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Brightics
  • 브라이틱스
  • 삼성SDS 브라이틱스
  • 데이터 사이언스
  • 인공지능
  • react
  • 머신러닝
  • 차원축소
  • Brightics AI
  • 데이터분석
  • 생활코딩
  • 크롤링
  • beautifulsoup
  • 브라이틱스 스튜디오 사용법
  • 브라이틱스 스튜디오
  • javascript
  • Brightics Studio
  • 삼성SDS
  • web
  • 브라이틱스 튜토리얼

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
cbw1030

기록하는 공간

[오라클 데이터베이스] 이너 조인(INNER JOIN)이란? (ANSI)
Programming/데이터베이스

[오라클 데이터베이스] 이너 조인(INNER JOIN)이란? (ANSI)

2020. 8. 12. 10:02
반응형

* 오라클 자체 조인문이 아닌 ANSI 쿼리문으로 진행했습니다.


조인은 두 개 이상의 테이블을 서로 묶어 하나의 결과 집합으로 만들어 내는 것을 의미한다.

조인의 종류에는 INNER JOIN, LEFT/RIGHT/FULL OUTER JOIN, SELF JOIN 등이 있는데 이번 포스팅에서는 INNER JOIN에 대해 알아보겠습니다.

 

아래와 같은 테이블 두 개가 있다고 가정하자.

 

예시

왼쪽은 MEMBER 테이블이고 오른쪽은 NOTICE 테이블이다.

NOTICE 테이블의 WRITER_ID 컬럼은 MEMBER 테이블의 ID 컬럼을 참조하고 있는 상태이다.

MEMBER 테이블은 NOTICE 테이블을 만들어냈기 때문에 '부모 테이블'이라고 한다.

 

MEMBER 테이블과 NOTICE 테이블을 시각적으로 합치기 위한 방법은 어떻게 될까?

테이블을 서로 합치기 위해서는 두 개의 테이블의 튜플의 개수가 같아야만 한다.

그래서 MEMBER 테이블의 튜블의 개수를 가상으로 NOTICE 테이블과 맞춘다.

 

서로의 튜플의 수를 맞추고 조인을 진행한 결과

 

위의 이너 조인을 진행하기 위해서는 쿼리문은 다음과 같다.

SELECT MEMBER.ID, MEMBER.NAME, NOTICE.ID, NOTICE.TITLE, NOTICE.WRITER_ID
FROM MEMBER INNER JOIN NOTICE ON MEMBER.ID = NOTICE.WRITER_ID;

 

만약 테이블 명이 길어 가독성이 떨어진다면, 각 테이블에 별칭(Alias)을 주어 다음과 같은 쿼리문을 작성할 수도 있다.

SELECT M.ID, M.NAME, N.ID, N.TITLE, N.WRITER_ID
FROM MEMBER M INNER JOIN NOTICE N ON M.ID = N.WRITER_ID;

 

Q. 공통적이지 않은 부분이 존재하는 테이블끼리 이너 조인을 한다면?

이너 조인은 두 개의 테이블이 공통된 부분만(즉, 참조되는 것들) 합치는 것을 의미한다.

그렇다면 아래와 같은 테이블(MEMBER, NOTICE)이 존재한다면 어떻게 해야할까?

 

 

간단하게 생각하면 된다.

이너 조인은 '공통된 부분'만 합치기 때문에 현재 참조되지 않거나 참조하지 않는 것들(YJS, JUNG, KANG, DRAGON)은 배제하고 조인을 진행한다.

공통적이지 않은 것들을 배제한 이후 조인을 진행한 결과

 

 

이번 포스팅은 youtu.be/BZPX-arrwHI을 바탕으로 진행했습니다.

반응형
저작자표시 (새창열림)

'Programming > 데이터베이스' 카테고리의 다른 글

[MySQL] 제약조건을 무시하고 FOREIGN KEY 삭제하기  (0) 2021.05.13
[오라클 데이터베이스] 아우터 조인(OUTER JOIN)이란?  (0) 2020.12.12
[오라클 데이터베이스] ROW_NUMBER()을 통해 ROWNUM을 추출해보자(Feat. 서브쿼리, 윈도우 함수, 순위 함수)  (0) 2020.08.12
[오라클 데이터베이스] - 트랜잭션 처리를 위한 COMMIT과 ROLLBACK  (0) 2019.10.30
[오라클 데이터베이스] NULL 관련 함수 (NVL/NVL2/NULLIF)와 DECODE 함수  (1) 2019.10.13
    'Programming/데이터베이스' 카테고리의 다른 글
    • [MySQL] 제약조건을 무시하고 FOREIGN KEY 삭제하기
    • [오라클 데이터베이스] 아우터 조인(OUTER JOIN)이란?
    • [오라클 데이터베이스] ROW_NUMBER()을 통해 ROWNUM을 추출해보자(Feat. 서브쿼리, 윈도우 함수, 순위 함수)
    • [오라클 데이터베이스] - 트랜잭션 처리를 위한 COMMIT과 ROLLBACK
    cbw1030
    cbw1030

    티스토리툴바