SQL의 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN은 테이블 간 데이터를 조합할 때 사용되는 조인 유형들입니다. 각각의 차이점과 동작 방식을 간단히 정리하면 아래와 같습니다.
1. INNER JOIN
- 설명: 두 테이블의 공통된 값이 있는 행만 반환합니다.
- 결과: 교집합.
- 사용 구조:
SELECT * FROM 테이블A INNER JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블과 성적 테이블을 조인해, 공통된 학생 ID가 있는 데이터만 가져옴.
2. LEFT JOIN (또는 LEFT OUTER JOIN)
- 설명: 왼쪽 테이블(첫 번째 테이블)의 모든 행을 반환하며, 오른쪽 테이블(두 번째 테이블)의 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 왼쪽 테이블 중심.
- 사용 구조:
SELECT * FROM 테이블A LEFT JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블에 있는 모든 학생 데이터를 가져오되, 성적이 없는 학생의 데이터도 포함하고, 성적 값은 NULL로 표시.
3. RIGHT JOIN (또는 RIGHT OUTER JOIN)
- 설명: 오른쪽 테이블(두 번째 테이블)의 모든 행을 반환하며, 왼쪽 테이블의 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 오른쪽 테이블 중심.
- 사용 구조:
SELECT * FROM 테이블A RIGHT JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 성적 테이블에 있는 모든 성적 데이터를 가져오되, 성적과 매칭되지 않는 학생은 NULL로 표시.
4. FULL OUTER JOIN
- 설명: 왼쪽 및 오른쪽 테이블의 모든 행을 반환하며, 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 합집합 (교집합 + 차집합).
- 사용 구조:
SELECT * FROM 테이블A FULL OUTER JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블과 성적 테이블의 모든 데이터를 가져오되, 공통된 데이터는 병합, 매칭되지 않은 데이터는 NULL로 표시.
요약 표
JOIN 종류 포함되는 데이터
INNER JOIN | 두 테이블의 공통된 값 (교집합). |
LEFT JOIN | 왼쪽 테이블의 모든 값 + 매칭되지 않는 오른쪽 값은 NULL. |
RIGHT JOIN | 오른쪽 테이블의 모든 값 + 매칭되지 않는 왼쪽 값은 NULL. |
FULL OUTER JOIN | 두 테이블의 모든 값 + 매칭되지 않는 값은 NULL. |
예제 테이블
학생 테이블
학생ID 이름
1 | 홍길동 |
2 | 이순신 |
3 | 강감찬 |
성적 테이블
학생ID 성적
2 | 85 |
3 | 90 |
4 | 95 |
INNER JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
INNER JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
LEFT JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
LEFT JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
1 | 홍길동 | NULL |
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
RIGHT JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
RIGHT JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
4 | NULL | 95 |
FULL OUTER JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
FULL OUTER JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
1 | 홍길동 | NULL |
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
4 | NULL | 95 |
이처럼 조인의 종류에 따라 결과가 달라지며, 분석 목적에 맞는 조인 방식을 선택하면 됩니다! 😊
SQL의 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN은 테이블 간 데이터를 조합할 때 사용되는 조인 유형들입니다. 각각의 차이점과 동작 방식을 간단히 정리하면 아래와 같습니다.
1. INNER JOIN
- 설명: 두 테이블의 공통된 값이 있는 행만 반환합니다.
- 결과: 교집합.
- 사용 구조:
SELECT * FROM 테이블A INNER JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블과 성적 테이블을 조인해, 공통된 학생 ID가 있는 데이터만 가져옴.
2. LEFT JOIN (또는 LEFT OUTER JOIN)
- 설명: 왼쪽 테이블(첫 번째 테이블)의 모든 행을 반환하며, 오른쪽 테이블(두 번째 테이블)의 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 왼쪽 테이블 중심.
- 사용 구조:
SELECT * FROM 테이블A LEFT JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블에 있는 모든 학생 데이터를 가져오되, 성적이 없는 학생의 데이터도 포함하고, 성적 값은 NULL로 표시.
3. RIGHT JOIN (또는 RIGHT OUTER JOIN)
- 설명: 오른쪽 테이블(두 번째 테이블)의 모든 행을 반환하며, 왼쪽 테이블의 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 오른쪽 테이블 중심.
- 사용 구조:
SELECT * FROM 테이블A RIGHT JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 성적 테이블에 있는 모든 성적 데이터를 가져오되, 성적과 매칭되지 않는 학생은 NULL로 표시.
4. FULL OUTER JOIN
- 설명: 왼쪽 및 오른쪽 테이블의 모든 행을 반환하며, 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 합집합 (교집합 + 차집합).
- 사용 구조:
SELECT * FROM 테이블A FULL OUTER JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블과 성적 테이블의 모든 데이터를 가져오되, 공통된 데이터는 병합, 매칭되지 않은 데이터는 NULL로 표시.
시각화로 이해하기
1. INNER JOIN
2. LEFT JOIN
3. RIGHT JOIN
4. FULL OUTER JOIN
요약 표
JOIN 종류 포함되는 데이터
INNER JOIN | 두 테이블의 공통된 값 (교집합). |
LEFT JOIN | 왼쪽 테이블의 모든 값 + 매칭되지 않는 오른쪽 값은 NULL. |
RIGHT JOIN | 오른쪽 테이블의 모든 값 + 매칭되지 않는 왼쪽 값은 NULL. |
FULL OUTER JOIN | 두 테이블의 모든 값 + 매칭되지 않는 값은 NULL. |
예제 테이블
학생 테이블
학생ID 이름
1 | 홍길동 |
2 | 이순신 |
3 | 강감찬 |
성적 테이블
학생ID 성적
2 | 85 |
3 | 90 |
4 | 95 |
INNER JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
INNER JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
LEFT JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
LEFT JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
1 | 홍길동 | NULL |
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
RIGHT JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
RIGHT JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
4 | NULL | 95 |
FULL OUTER JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
FULL OUTER JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
1 | 홍길동 | NULL |
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
4 | NULL | 95 |
이처럼 조인의 종류에 따라 결과가 달라지며, 분석 목적에 맞는 조인 방식을 선택하면 됩니다! 😊
SQL의 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN은 테이블 간 데이터를 조합할 때 사용되는 조인 유형들입니다. 각각의 차이점과 동작 방식을 간단히 정리하면 아래와 같습니다.
1. INNER JOIN
- 설명: 두 테이블의 공통된 값이 있는 행만 반환합니다.
- 결과: 교집합.
- 사용 구조:
SELECT * FROM 테이블A INNER JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블과 성적 테이블을 조인해, 공통된 학생 ID가 있는 데이터만 가져옴.
2. LEFT JOIN (또는 LEFT OUTER JOIN)
- 설명: 왼쪽 테이블(첫 번째 테이블)의 모든 행을 반환하며, 오른쪽 테이블(두 번째 테이블)의 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 왼쪽 테이블 중심.
- 사용 구조:
SELECT * FROM 테이블A LEFT JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블에 있는 모든 학생 데이터를 가져오되, 성적이 없는 학생의 데이터도 포함하고, 성적 값은 NULL로 표시.
3. RIGHT JOIN (또는 RIGHT OUTER JOIN)
- 설명: 오른쪽 테이블(두 번째 테이블)의 모든 행을 반환하며, 왼쪽 테이블의 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 오른쪽 테이블 중심.
- 사용 구조:
SELECT * FROM 테이블A RIGHT JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 성적 테이블에 있는 모든 성적 데이터를 가져오되, 성적과 매칭되지 않는 학생은 NULL로 표시.
4. FULL OUTER JOIN
- 설명: 왼쪽 및 오른쪽 테이블의 모든 행을 반환하며, 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 합집합 (교집합 + 차집합).
- 사용 구조:
SELECT * FROM 테이블A FULL OUTER JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블과 성적 테이블의 모든 데이터를 가져오되, 공통된 데이터는 병합, 매칭되지 않은 데이터는 NULL로 표시.
시각화로 이해하기
1. INNER JOIN
2. LEFT JOIN
3. RIGHT JOIN
4. FULL OUTER JOIN
요약 표
JOIN 종류 포함되는 데이터
INNER JOIN | 두 테이블의 공통된 값 (교집합). |
LEFT JOIN | 왼쪽 테이블의 모든 값 + 매칭되지 않는 오른쪽 값은 NULL. |
RIGHT JOIN | 오른쪽 테이블의 모든 값 + 매칭되지 않는 왼쪽 값은 NULL. |
FULL OUTER JOIN | 두 테이블의 모든 값 + 매칭되지 않는 값은 NULL. |
예제 테이블
학생 테이블
학생ID 이름
1 | 홍길동 |
2 | 이순신 |
3 | 강감찬 |
성적 테이블
학생ID 성적
2 | 85 |
3 | 90 |
4 | 95 |
INNER JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
INNER JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
LEFT JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
LEFT JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
1 | 홍길동 | NULL |
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
RIGHT JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
RIGHT JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
4 | NULL | 95 |
FULL OUTER JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
FULL OUTER JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
1 | 홍길동 | NULL |
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
4 | NULL | 95 |
이처럼 조인의 종류에 따라 결과가 달라지며, 분석 목적에 맞는 조인 방식을 선택하면 됩니다! 😊
SQL의 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN은 테이블 간 데이터를 조합할 때 사용되는 조인 유형들입니다. 각각의 차이점과 동작 방식을 간단히 정리하면 아래와 같습니다.
1. INNER JOIN
- 설명: 두 테이블의 공통된 값이 있는 행만 반환합니다.
- 결과: 교집합.
- 사용 구조:
SELECT * FROM 테이블A INNER JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블과 성적 테이블을 조인해, 공통된 학생 ID가 있는 데이터만 가져옴.
2. LEFT JOIN (또는 LEFT OUTER JOIN)
- 설명: 왼쪽 테이블(첫 번째 테이블)의 모든 행을 반환하며, 오른쪽 테이블(두 번째 테이블)의 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 왼쪽 테이블 중심.
- 사용 구조:
SELECT * FROM 테이블A LEFT JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블에 있는 모든 학생 데이터를 가져오되, 성적이 없는 학생의 데이터도 포함하고, 성적 값은 NULL로 표시.
3. RIGHT JOIN (또는 RIGHT OUTER JOIN)
- 설명: 오른쪽 테이블(두 번째 테이블)의 모든 행을 반환하며, 왼쪽 테이블의 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 오른쪽 테이블 중심.
- 사용 구조:
SELECT * FROM 테이블A RIGHT JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 성적 테이블에 있는 모든 성적 데이터를 가져오되, 성적과 매칭되지 않는 학생은 NULL로 표시.
4. FULL OUTER JOIN
- 설명: 왼쪽 및 오른쪽 테이블의 모든 행을 반환하며, 매칭되지 않는 값은 NULL로 표시됩니다.
- 결과: 합집합 (교집합 + 차집합).
- 사용 구조:
SELECT * FROM 테이블A FULL OUTER JOIN 테이블B ON 테이블A.공통열 = 테이블B.공통열;
- 예시:
- 학생 테이블과 성적 테이블의 모든 데이터를 가져오되, 공통된 데이터는 병합, 매칭되지 않은 데이터는 NULL로 표시.
시각화로 이해하기
1. INNER JOIN
2. LEFT JOIN
3. RIGHT JOIN
4. FULL OUTER JOIN
요약 표
JOIN 종류 포함되는 데이터
INNER JOIN | 두 테이블의 공통된 값 (교집합). |
LEFT JOIN | 왼쪽 테이블의 모든 값 + 매칭되지 않는 오른쪽 값은 NULL. |
RIGHT JOIN | 오른쪽 테이블의 모든 값 + 매칭되지 않는 왼쪽 값은 NULL. |
FULL OUTER JOIN | 두 테이블의 모든 값 + 매칭되지 않는 값은 NULL. |
예제 테이블
학생 테이블
학생ID 이름
1 | 홍길동 |
2 | 이순신 |
3 | 강감찬 |
성적 테이블
학생ID 성적
2 | 85 |
3 | 90 |
4 | 95 |
INNER JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
INNER JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
LEFT JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
LEFT JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
1 | 홍길동 | NULL |
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
RIGHT JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
RIGHT JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
4 | NULL | 95 |
FULL OUTER JOIN 실행 결과
SELECT 학생.학생ID, 학생.이름, 성적.성적
FROM 학생
FULL OUTER JOIN 성적
ON 학생.학생ID = 성적.학생ID;
학생ID 이름 성적
1 | 홍길동 | NULL |
2 | 이순신 | 85 |
3 | 강감찬 | 90 |
4 | NULL | 95 |
이처럼 조인의 종류에 따라 결과가 달라지며, 분석 목적에 맞는 조인 방식을 선택하면 됩니다! 😊
'🖥️ IT, 컴퓨터 > 🏁 SQL・빅쿼리' 카테고리의 다른 글
[SQL] LAG란? (0) | 2024.11.24 |
---|---|
[SQL] 윈도우 함수(Window Function)란? (0) | 2024.11.24 |
[SQL] LIKE란? (0) | 2024.11.24 |
[SQL] HAVING 절이란? (0) | 2024.11.24 |
[SQL] `CASE WHEN` 구문이란? (0) | 2024.11.24 |
댓글