본문 바로가기

SQL/SQL Developer

테이블 분해/ 조립 - 조립 실행하기(JOIN)

 

topic 테이블의 데이터를 가져온 화면

TOPIC 테이블의 데이터의 끝에 AUTHOR_ID라 해서

 

AUTHOR 테이블의 ID column,

즉. Primary Key값을 AUTHOR_ID에 적어 놓은 것을 알 수 있다.

 

저렇게 연관된 다른 테이블의 Primary Key 값을 적어놓은

저런 column을 외국인 할때  foreign.

 

Foriegn Key 라고  부른다.

 

물론 Foriegn Key라는 기능이 있기도 했지만

개념적으로 봤을 때 Foriegn Key라고 부르는 것이다.

 


 

그럼 이걸 가지고 어떻게 할 것 인가?

 

TOPIC 테이블을 왼쪽으로 놓고,

TOPIC을 기준으로 해서 오른쪽에다가 AUTHOR 테이블을 붙여보려고 하는것이다.

 

 

무슨 말일까?

 

이해가 안간다면 다시 이미지도 그릴 겸 다시 한번 보고 오자

fakegrowthup.tistory.com/235?category=959189

 

테이블의 분해 조립 - 조립하기

표를 분해하기 전의 표는 보기에는 좋지만 수정이나 삭제, 추가작업을 할때는 굉장히 나쁘다. 하지만 표를 분해하면 수정하고 싶으면 해당하는 번호에 참조하고 있는 것이 한번에 바뀌는 폭발

fakegrowthup.tistory.com

 

 

 

그럼 다시!

 

TOPIC 테이블의 행을 기준으로 해서 AUTHOR 테이블의 행을 옆에다 붙여보자.

 

SELECT * FROM topic
    LEFT JOIN author ON topic.author_id = author.id
;

TOPIC 테이블을 왼쪽에 두고 JOIN을 한다.

 

어디랑 해요?

 

 

AUTHOR 테이블과 한다.

 

 

근데 그때 어떻게 한다?

 

 

TOPIC 테이블의 AUTHOR ID가 AUTHOR 테이블의 ID가 같다. 라고  기준을 정해주어야 한다.

 

그러면 이 기준에 따라서 AUTHOR 테이블의 ID(Primary Key)와  일치하는 행을 옆에다가 붙여주는 것이다.

 

그리고 실행을 해보면 다음과 같이 된다.

 

JOIN된 화면

JOIN은  관계형 데이터베이스의 사용의 핵심이라고 할 수 있다.

 

SELECT T.id TOPIC_ID,
       title,
       name
FROM topic T
    LEFT JOIN author A
    ON T.author_id = A.id
WHERE
    T.id = 1
;

 

TOPIC_ID는 별명 

표의 이름에 대한 별명도 정해줄 수 있다.

topic T라고 하면 이 구문에서 T는 topic이 된다.

 

author  A도 똑같이 정해 줄 수 있다.

 

만약에 내가 TOPIC_ID가 1인 행만 가지고 오고 싶다 했을 때는  WHERE을 사용하면 된다.

 

 

 

 

 

오늘도 이고잉님께 감사한 마음으로 공부

짝짝짝!👏👏👏

 

 

'SQL > SQL Developer' 카테고리의 다른 글

FULL OUTER JOIN  (0) 2021.04.05
INNER JOIN  (0) 2021.04.05
JOIN - LEFT OUTER JOIN(LEFT JOIN) 실습OIN - LEFT OUTER JOIN(LEFT JOIN) 실습  (0) 2021.04.04
테이블 분해/조립 - 분해 실행하기  (0) 2021.04.03
SQL Developer  (0) 2021.04.03