728x90
반응형
SMALL
안녕하세요, 친구들! 😊 오늘은 MySQL의 JOIN에 대해 이야기해볼게요. JOIN은 데이터베이스에서 테이블 간의 관계를 연결하여 데이터를 가져오는 방법이에요. 데이터베이스의 핵심 개념 중 하나라서 꼭 알아야 한답니다! 💪
🌟 JOIN이란?
JOIN은 여러 개의 테이블을 연결하거나 조합해서 관련 데이터를 하나의 결과로 가져오는 SQL 연산이에요.
테이블 간의 공통된 값(키)을 기준으로 데이터를 합치는 것이죠!
🛠 JOIN의 종류
MySQL에서는 다음과 같은 JOIN을 제공해요:
1️⃣ INNER JOIN
- 교집합처럼, 두 테이블에서 일치하는 데이터만 가져와요.
- 예: "주문"과 "고객" 테이블에서 고객 정보와 주문 내역 연결하기.
SELECT customers.name, orders.order_date
FROM customers
INNER JOIN orders
ON customers.customer_id = orders.customer_id;
👉 ON
뒤에 있는 조건(customers.customer_id = orders.customer_id
)으로 두 테이블을 연결해요.
2️⃣ LEFT JOIN (또는 LEFT OUTER JOIN)
- 왼쪽 테이블의 모든 데이터를 가져오고, 오른쪽 테이블에 매칭되는 데이터가 없으면
NULL
로 채워요. - 예: "모든 고객"과 "주문" 내역 연결, 주문이 없는 고객도 포함.
SELECT customers.name, orders.order_date
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;
3️⃣ RIGHT JOIN (또는 RIGHT OUTER JOIN)
- 오른쪽 테이블의 모든 데이터를 가져오고, 매칭되지 않는 왼쪽 테이블의 데이터는
NULL
로 표시해요. - 사용 빈도는 낮아요!
SELECT customers.name, orders.order_date
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;
4️⃣ FULL OUTER JOIN
- 양쪽 테이블의 모든 데이터를 가져오고, 일치하지 않는 데이터는
NULL
로 표시해요. - MySQL은 직접 지원하지 않아서 UNION으로 구현해야 해요.
SELECT customers.name, orders.order_date
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id
UNION
SELECT customers.name, orders.order_date
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;
😊 JOIN의 활용 예제
🎨 테이블 준비
customers 테이블
customer_id | name | city |
---|---|---|
1 | Alice | New York |
2 | Bob | London |
3 | Charlie | Paris |
orders 테이블
order_id | customer_id | order_date |
---|---|---|
101 | 1 | 2024-12-01 |
102 | 3 | 2024-12-05 |
🎯 INNER JOIN 결과
SELECT customers.name, orders.order_date
FROM customers
INNER JOIN orders
ON customers.customer_id = orders.customer_id;
name | order_date |
---|---|
Alice | 2024-12-01 |
Charlie | 2024-12-05 |
🎯 LEFT JOIN 결과
SELECT customers.name, orders.order_date
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;
name | order_date |
---|---|
Alice | 2024-12-01 |
Bob | NULL |
Charlie | 2024-12-05 |
🥳 정리
- INNER JOIN: 공통된 데이터만 가져와요.
- LEFT JOIN: 왼쪽 테이블의 모든 데이터를 포함해요.
- RIGHT JOIN: 오른쪽 테이블의 모든 데이터를 포함해요.
- FULL OUTER JOIN: 양쪽 테이블의 모든 데이터를 포함해요.
💪 포기하지 마세요!
처음에는 조금 복잡해 보일 수 있지만, JOIN은 데이터베이스를 정말 강력하게 만들어주는 도구예요. 차근차근 따라 해보세요. 여러분은 잘 해낼 수 있어요! 😊
반응형
SMALL
'데이터베이스 > MYSQL' 카테고리의 다른 글
MySQL Procedure와 Function: 초보자를 위한 쉬운 가이드 (0) | 2024.12.19 |
---|---|
MySQL에서 COUNT, SUM, AVG, MAX, MIN, GROUP_CONCAT() 완벽 가이드 (0) | 2024.12.19 |
MySQL 테이블 설계: PRIMARY KEY, FOREIGN KEY, DEFAULT 알아보기 (0) | 2024.12.19 |
MYSQL WHERE 절에서 조건 분기하기: CASE WHEN 활용 팁 (0) | 2024.12.19 |
MySQL에서 사용자 계정 관리하기: GRANT 실전 예제 (0) | 2024.12.19 |