[Oracle 기본사용법][08] 표(table) JOIN
"생활코딩 Oracle"을 개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.
목표
- 관계형 데이터베이스 조인(JOIN)이 무엇인지에 대해 이해합니다.
- 사용방법은 다른 포스팅을 통해 공부합니다.
목차
- JOIN
JOIN
앞의 포스팅([07]표 분리의 필요성)에서 표(table)를 분리하였을 때 편리한 점에 대해 공부하였습니다. 표를 분리하였을 때 데이터를 관리하기가 압도적으로 편리합니다. 하지만 사람이 표의 데이터를 보기엔 한눈에 볼 수 없는 불편한 점이 있습니다. 정리하면 표(table)를 개념 단위로 쪼개는 것은 데이터를 쓰고 관리하는 데는 편리하지만 데이터를 읽는 것은 힘듭니다. 이렇게 표가 나뉘어 있을 때 데이터를 읽기 힘든 점을 보완해주는 기능이 '조인(JOIN)'이라는 기능입니다.
조인(JOIN)은 분리된 표(table)를 필요에 따라 조립해서 마치 이러한 표가 있었던과 같은 환상을 만듭니다. 예를 통해 설명을 이해해보겠습니다. topic이라는 테이블과 author라는 테이블이 있다고 가정하겠습니다.
topic | ||||
id | title | description | created | author_id |
1 | ORACLE | ORACLE is... | 2020-04-15 | 1 |
2 | MySQL | MySQL is.. | 2020-04-16 | 1 |
3 | SQL Server | SQL Server is... | 2020-04-17 | 2 |
author | ||
id | name | profile |
1 | vampa | developer |
2 | duru | DBA |
3 | jin | data scientist |
4 | vampa | developer |
두표를 보면 데이터가 잘 나뉘어 관리가 되고 있지만 데이터가 한눈에 들어오지 않습니다. 예를 들어서 title을 ORACLE을 가진 id 1의 작가(author name)를 확인하기 위해선 먼저 자신의 author_id를 확인한 후 그 번호와 일치하는 author테이블의 id를 찾아서 name을 확인해야 합니다. 읽기엔 매우 번고 롭습니다. 하지만 관계형 데이터베이스는 조인(Join)이라는 기능을 통해 한눈에 보기 쉽게 표를 만들 수 있습니다.
topic테이블과 author테이블을 명령어를 통해 합쳐보겠습니다. 조인기능을 실행시키기 위해 다음의 SQL 명령어를 실행시킨다면 합쳐진 테이블이 나올 것입니다. 아래는 실행시킬 명령어와 그 결과표(table)입니다.
SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;
topic | |||||||
id | title | description | created | author_id | id | name | profile |
1 | ORACLE | ORACLE is... | 2020-04-15 | 1 | 1 | vampa | developer |
2 | MySQL | MySQL is.. | 2020-04-16 | 1 | 1 | vampa | developer |
3 | SQL Server | SQL Server is... | 2020-04-17 | 2 | 2 | duru | DBA |
결과물 표를 보면 이전 분리되었을 때보다 데이터를 읽고 이해하기가 훨씬 쉬워졌습니다. 하지만 이 결과물 표(table)는 실제 존재하는 테이블이 아닙니다. 단지 명령어를 통해 필요에 따라 조립된 읽기 위해서만 존재하는 표일 뿐입니다. 실제 데이터는 topic, author 테이블 나뉘어서 관리됩니다.
이번 포스팅에선 조인이 무엇인지 이해하고 그 사례를 살펴 보았습니다. 조인을 사용하는 자세한 방법은 다른 포스팅으로 적겠습니다.
Reference
Date
- 2020.04.15 작성