일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 정보처리기사실기
- 파이썬
- 운영체제
- 머신러닝
- numpy/pandas
- 중학1-1
- 정수와유리수
- 데이터베이스
- 중학수학
- C++
- 데이터입출력구현
- 자바 실습
- 컴퓨터비전
- 정보처리기사필기
- 자바
- CSS
- 혼공머신
- JSP/Servlet
- 코딩테스트
- 컴퓨터구조
- SQL
- html/css
- 딥러닝
- pandas
- 데이터분석
- 연습문제
- 영어공부
- CNN
- 텍스트마이닝
- 파이썬라이브러리
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
JOIN 심화 5 - FROM 절 JOIN 형태 5 : JOIN 비교 본문
여러 가지 조인을 비교해 보는 학습을 진행해 볼 것이다.
이론 6 - FROM 절 JOIN 형태 5 : JOIN 비교
직접 필기하면서 답을 적어보았다. 조인별로 출력되는 행이 다른데 아직도 잘 구분이 안 되는 것도 있다. 실습 문제를 통해 개념을 확장해 보기로 하자.
실습 6 - FROM 절 JOIN 형태 : LEFT OUTER JOIN
1. 두 테이블의 정보 조회하기
MEMBER 테이블에는 member_id가 존재하지만 MEMBER_EMAIL 테이블에는 없는 member_id가 존재한다. 이들은 LEFT OUTER JOIN을 활용해 묶어줄 것이다.
2. LEFT OUTER JOIN을 사용해서 member_name과 email 결합하여 조회하기
이메일이 없는 사람은 NULL로 잘 채워졌다.
실습 7 - FROM 절 JOIN 형태 : RIGHT OUTER JOIN
1. 두 테이블 조회하기
REQUEST 테이블에서 response_id는 존재하지만 응답 내용이 없는 데이터가 존재한다. 이러한 경우 응답 내용은 NULL로 출력하려고 한다. 이럴 때는 RIGHT OUTER JOIN을 사용하는 것이 좋다.
2. 응답 ID를 기준으로 요청 ID, 요청 멤버 ID, 응답 내용을 조회하기
오른쪽의 데이터가 NULL로 채워졌다.
실습 8 - FROM 절 JOIN 형태 : FULL OUTER JOIN
1. 두 테이블의 모든 정보 조회하기
FRONT에는 존재하지만 BACK에는 존재하지 않는 version_id와 version_content_back이 있고, 그 반대의 경우도 있다. 이 부분을 하나씩 코드로 작성해 볼 것이다.
2. LEFT OUTER JOIN을 사용하여 버전 ID를 결합하여 버전 ID, 프론트 버전 내용, 백 버전 내용을 조회하기
이렇게 코드를 작성하면 오류가 뜨는데 vision_id가 어느 테이블의 컬럼인지 알 수 없기 때문이다.
테이블 명을 명시해주자 출력이 잘 되었다. version_id에 version_content_back에는 없는 값은 NULL로 출력되었다.
3. RIGHT OUTER JOIN을 사용하여 버전 ID를 결합하여 버전 ID, 프론트 버전 내용, 백 버전 내용을 조회하기
4. 중복을 제거하는 집합 연산자를 사용하여 두 개의 쿼리 결합하기
두 개의 쿼리가 결합된 형태로 잘 출력되었다.
퀴즈 4 - FROM 절 JOIN 형태 2
문제를 틀렸다. 다시 한번 잘 생각해서 풀어보자.
+ 기호가 왼쪽에 있으면 LEFT JOIN 같지만 RIGHT JOIN이다. 오른쪽에 있는 모든 값을 조인하고 왼쪽에 있는 것은 값을 없을 때는 NULL로 표시한다.
학습을 마치고
조금 어려웠던 LEFT, RIGHT, FULL OUTER JOIN에 대해서 실습해볼 수 있었다. 내가 생각했던 것보다 학습 시간이 좀 더 많이 걸렸다. 그래도 충분히 이해하고 넘어가고 싶었다.
아직 배워야 할 개념이 몇 개 더 남았다.
'알고리즘 및 자료 관리 > SQL' 카테고리의 다른 글
JOIN 심화 7 - FROM 절 JOIN 형태 6 : JOIN with WHERE 2 <실습 문제 및 퀴즈 문제 풀기> (0) | 2024.10.23 |
---|---|
JOIN 심화 6 - FROM 절 JOIN 형태 6 : JOIN with WHERE 1 <이론 학습 및 실습 문제 풀기> (0) | 2024.10.23 |
JOIN 심화 4 - FROM 절 JOIN 형태 3~4 : CROSS JOIN, OUTER JOIN (0) | 2024.10.23 |
JOIN 심화 3 - FROM 절 JOIN 형태 2 : INNER JOIN/ USING/ NATURAL JOIN (0) | 2024.10.23 |
JOIN 심화 2 - FROM 절 JOIN 형태 1 : INNOR JOIN/ ON (0) | 2024.10.22 |