일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 딥러닝
- pandas
- 텍스트마이닝
- 정보처리기사실기
- 컴퓨터구조
- numpy/pandas
- CNN
- 정보처리기사필기
- 영어공부
- 연습문제
- 데이터베이스
- 머신러닝
- 중학수학
- 코딩테스트
- C++
- 파이썬라이브러리
- CSS
- 중학1-1
- html/css
- 정수와유리수
- 파이썬
- SQL
- JSP/Servlet
- 운영체제
- 자바 실습
- 데이터분석
- 자바
- 혼공머신
- 데이터입출력구현
- 컴퓨터비전
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
JOIN 심화 4 - FROM 절 JOIN 형태 3~4 : CROSS JOIN, OUTER JOIN 본문
JOIN 심화 4 - FROM 절 JOIN 형태 3~4 : CROSS JOIN, OUTER JOIN
huenuri 2024. 10. 23. 11:04수학 공부도 마쳤고 이제 10시 반이 다 되었지만 3시간 동안 열심히 아침 공부를 해볼 것이다. 가능하면 1주 차 학습을 모두 마치고 싶지만 아직 많은 공부가 남아서 할 수 있을지는 모르겠다. 그래도 최대한 빠르게 학습을 진행할 것이다.
그리고 오후에는 서브쿼리에 대해서 공부를 마쳐야 진도를 맞출 수 있다.
이론 4 - FROM 절 JOIN 형태 3 : CROSS JOIN
USER와 CLASS 테이블의 모든 데이터와 조합해서 결과값이 출력되고 있다.
INNER JOIN에서처럼 CROSS JOIN도 CROSS를 생략할 수 있다. 그러면 INNER와 CROSS를 어떻게 구별할까? INNER에는 ON 조건절이 반드시 들어가야 한다. 또는 USING이 올 수도 있고 그 외에 NATURAL JOIN이 오게 된다.
하지만 이러한 것을 사용하지 않으면 이 자체가 CROSS JOIN이 된다.
이 데이터는 2 X 3 = 6개의 데이터가 생긴다.
실습 5 - FROM 절 JOIN 형태 : CROSS JOIN
1. 두 데이블의 모든 정보 출력하기
2. 크로스 조인으로 성과 이름이 나올 수 있는 모든 경우 출력하기
CROSS JOIN은 조건이 없기 때문에 두 테이블의 위치를 바꾸어도 결과에는 영향을 주지 않는다.
문제를 잘 풀었다.
이론 5 - FROM 절 JOIN 형태 4 : OUTER JOIN
왼쪽에 있기 때문에 LEFT OUTER JOIN으로 생각하면 된다. USER 테이블에 대해서 모든 데이터를 조회한다. CLASS_ID의 003 값은 들어오지 않았기 때문에 NULL 값으로 존재한다.
OUTER를 생략할 수도 있지만 일반적으로는 명시하는 것이 관례이다. 만약 일반 JOIN이었다면 1003은 출력되지 않고 그 앞에까지 출력이 될 것이다. 하지만 LEFT OUTER JOIN이므로 USER 테이블의 모든 데이터가 출력되어 이러한 정보가 나온다.
RIGHT OUTER JOIN은 반대로 CLASS 테이블의 모든 데이터가 출력되고, CLASS 테이블의 USER 테이블 값이 없더라도 NULL로 채워진다.
- USER RIGHT JOIN CLASS
- CLASS LEFT JOIN USER
이 두 테이블의 결과값은 같다. 즉 LEFT와 RIGHT는 방향만 바뀐 것이다. 일반적으로 실무에서는 LEFT OUTER JOIN을 많이 사용한다.
LEFT와 RIGHT OUTER JOIN이 모두 출력된 결과이다. 1003의 CLASS_ID 값이 없기 때문에 NULL로, 004도 CLASS 테이블에만 있기 때문에 NULL이 출력된다. 003만 출력되는 것은 RIGHT OUTER JOIN이고, 004만 출력되는 것은 LEFT OUTER JOIN이다.
UNION이기 때문에 중복된 것은 제외하고, LEFT OUTER JOIN과 RIGHT OUTER JOIN 결과가 나온다.
학습을 마치고
CROSS JOIN과 OUTER JOIN에 대해서 공부해 보았다. OUTER JOIN은 전에는 이해하기 힘든 개념이었으나 이제는 무엇인지 확실히 이해했다. 문제를 풀면서 더 자세히 알아볼 수 있을 것 같다.
LEFT와 RIGHT의 방향에 주의하며 어떤 것이 NULL값으로 채워지는지 잘 확인해야 한다.
'알고리즘 및 자료 관리 > SQL' 카테고리의 다른 글
JOIN 심화 6 - FROM 절 JOIN 형태 6 : JOIN with WHERE 1 <이론 학습 및 실습 문제 풀기> (0) | 2024.10.23 |
---|---|
JOIN 심화 5 - FROM 절 JOIN 형태 5 : JOIN 비교 (1) | 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 |
JOIN 심화 1 - JOIN에 대하여 (0) | 2024.10.22 |