SQL/MySQL

MySQL 관계형 데이터베이스(RDB), 테이블 JOIN 기초 설명 예시

진리뷰 2023. 8. 24. 09:00
반응형

 

 

MySQL-관계형데이터베이스-JOIN-기초-설명-예시-썸네일
RDB, JOIN 기초 설명 예시

 

 

 

관계형 데이터베이스(RDB)

 

관계형 데이터베이스는 Relational DataBase(RDB)입니다.

relational에서 알 수 있듯, 여러 테이블을 결합해서 중복을 줄이고 저장된 데이터를 쉽게 파악하는 것이 RDB입니다.

 

 

테이블(표, table)

특정 요인/주제 등에 대한 데이터=행+열, 스프레드시트와 비슷합니다.

테이블 예시: Customer 정보(id, name...)를 담은 Customer 테이블
Customer
id name phone number date of birth
1 Kim 010-1111-1111 1990-01-01
2 Park 010-2222-2222 2000-02-02
3 Lee 010-3333-3333 2010-03-03

 

 

MySQL 테이블 예시

MySQL에서 테이블이 어떻게 보이는지 확인하겠습니다.

'author'라는 테이블이 있으며, 이에 대한 컬럼(열)은 id, name, profile이 보입니다.

MySQL-SHOW-TABLESMySQL-SELECT-FROM
MySQL에서 테이블 확인

 

 

JOIN

 

두 개 이상 분리된 테이블들의 (공통적인) column을 연결하여  한 테이블처럼 표현. 즉, 테이블들의 '결합'입니다.

JOIN은 INNER, LEFT, RIGHT, CROSS 유형으로 분류됩니다.

이 글에서는 LEFT JOIN 예시를 보여드릴 것입니다.

 

LEFT JOIN 문법

SELECT 컬럼1, 컬럼2,..., 컬럼N
FROM 테이블1
LEFT JOIN 테이블2
ON 테이블1.컬럼 = 테이블2.컬럼;

 

*더 자세한 JOIN 관련 글 추천

MySQL INNER JOIN(내부 조인) 다양한 문법과 예시

MySQL 다중 내부 조인(INNER JOIN 여러 개) 문법, 예시

MySQL 외부 조인(LEFT, RIGHT, FULL JOIN, UNION, UNION ALL) 문법 예시

 

MySQL JOIN 예시

분리된 두 개의 테이블 author, topic입니다. 'topic의 athor_id'는 'author의 id'와 같은 대상들을 지칭합니다.

하지만 'topic의 author_id'가 누구인지 확인하고자, author테이블을 매번 번갈아 보기 힘듭니다.

특히 데이터 양이 많다면 더욱 어려워질 것입니다.

MySQL-SAMPLE-TABLE-topicMySQL-SAMPLE-TABLE-author
MySQL sample tables

 

 

그래서 중복되는 topic의 author_id, author의 id를 한 테이블처럼 보이도록 결합(JOIN) 문을 입력합니다.

저는 LEFT JOIN을 입력하겠습니다.

 

>>topic 테이블에 author 테이블을 결합해 줘. topic테이블의 author_id, author테이블의 id는 같아. 모든 데이터를 보여줘.

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

 

아래 초록 박스를 보면, 'topic.author_id = author.id' 때문에 같은 번호끼리 매칭되어 정렬되었습니다.

또한 두 테이블이 하나의 테이블로 보입니다. 

MySQL-LEFT-JOIN-ON
LEFT JOIN

 

 

이번에는 별칭으로 중복을 없애보겠습니다.

SELECT topic.id as topic_id, title, description, created, name, profile 
FROM topic
LEFT JOIN author
ON topic.author_id=author.id;

 

1. topic테이블의 auhor_id, author테이블의 id가 사라졌습니다.

2. 별칭을 활용하여, 중복 이름인 topic테이블의 id를 'topic_id'로 바꿨습니다.

*별칭 관련 추천 글 MySQL 별칭 ALIAS 사용 방법, 규칙, 차이점

 

이로써 두 테이블의 데이터를 조금 더 보기 쉽게 중복 없이 정리했습니다.

MySQL-AS-산출물-예시
MySQL AS 산출물

반응형
top