관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

JOIN 심화 3 - FROM 절 JOIN 형태 2 : INNER JOIN/ USING/ NATURAL JOIN 본문

알고리즘 및 자료 관리/SQL

JOIN 심화 3 - FROM 절 JOIN 형태 2 : INNER JOIN/ USING/ NATURAL JOIN

huenuri 2024. 10. 23. 06:27

이어서 여러가지 조인에 대해서 학습해보겠다.


 
 
 
 

이론 3 - FROM 절 JOIN 형태 2 : INNER JOIN/ USING/ NATURAL JOIN

 

ON을 쓸 필요없이 USING만 쓰면 된다.
 
 

USING 보다 더 편리하게 사용할 수 있다.
 
 
 
 
 

 
동일한 컬럼을 갖는 모든 컬럼에 대해서 등가 조인을 한다. 여기서 동일한 컬럼은 CLASS_ID이므로 이들로 조인이 진행된다. 실무에서는 NATURAL JOIN은 많이 사용하지는 않는다.
동일한 이름을 갖는 컬럼이 많이 때문이다. 


 
 
 
 
 

실습 3 - FROM 절 JOIN 형태 : INNER JOIN/ USING

 

 


 
 

1. 세 개의 테이블 전체 정보 조회하기

 

 
CLASS_REQUEST 테이블과 STUDENT, CLASS 테이블과 결합하여 신청번호, 학생이름을 조회해볼 것이다. 문제가 많이 복잡하니 지시사항을 하나씩 따라가며 코드를 작성해볼 것이다.


 
 
 

2. CLASS_REQUEST 테이블과 STUDENT 테이블을 결합하여 신청번호와 학생이름 조회하기

 
STUDENT_ID를 기준으로 두 테이블을 연결했다.


 
 
 

3. CLASS_REQUEST 테이블과 CLASS 테이블을 결합하여 신청번호와 과목이름 조회하기

 
CLASS_ID를 기준으로 두 테이블을 연결했다.


 

 
 

4. CLASS_REQUEST 테이블과 STUDENT, CLASS 테이블을 결합하여 신청번호, 학생이름, 과목이름 조회하기

이번에는 모든 조건을 다 결합하는 것이다.
 

 

 
INNER JOIN을 두 개와 결합해서 이와 같은 데이터를 출력할 수 있었다.
 

 
문제가 정말 어려웠다. 다음에 이 문제는 다시 풀어보는 것이 좋을 것 같다.


 
 
 
 
 

실습 4 - FROM 절 JOIN 형태 : NATURAL JOIN

 

 


 
 
 

1. 두 테이블의 모든 정보 조회하기

 
LOGIN_HISTORY 테이블에서 빠져있는 member_name을, MEMBER 테이블에는 빠져있는 login_date를 출력해야 한다.


 
 
 

2. NATURAL JOIN을 사용하여 로그인 이력 ID, 멤버 이름, 멈버 이메일, 로그인 시각 조회하기

 
NATURAL JOIN에서는 동일한 이름으로 기준으로 조회하기 때문에 조건을 명시하지 않아도 된다.
 

 
모두 잘 작성하였다.


 
 
 
 

퀴즈 3 - FROM 절 JOIN 형태 1

 

 

 


 
 
 

학습을 마치고

이 단원은 많이 어려운 내용이었다. 그래도 실습 문제를 풀면서 INNER, USING, NATURAL JOIN의 차이점을 이해할 수 있었다. 3시간 반 동안의 SQL 공부를 마치고 이제 수학 공부를 하는 시간을 갖기로 했다.
오늘은 풀 문제가 많아서 아침 공부 시간에 이어서 풀어야 할지도 모르겠다.