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

여러 테이블을 하나의 테이블처럼 사용하는 조인 3 - 단원 마무리 연습문제 풀기 본문

알고리즘 및 자료 관리/데이터베이스

여러 테이블을 하나의 테이블처럼 사용하는 조인 3 - 단원 마무리 연습문제 풀기

huenuri 2024. 8. 21. 17:26

이제 마지막으로 연습문제를 푸는 일만 남아있다. 이 단원도 배울 게 정말 많았다. 수업도 들어야 하니 한 단원 당 평균 3시간 반 이상은 걸리는 것 같다.
총 4문제인데 이번 문제도 정말 어려워보인다. 한 문제도 맞추지 못할 것 같지만 풀 수 있는데까지 풀어보고 정답과 비교하며 이해해볼 것이다!

 

학습 목표

연습문제 4문제 풀어보기

학습 시간

아침 7시 40분 ~ 8시 반


 

 

 

단원 마무리 연습문제 풀기

 

문제 1번

 

어떻게 책을 뒤적이며 풀긴 풀었는데 중복이 되고 말았다.

 

 

JOIN으로 묶어주었으니 SELECT에 E.EMPNO를 하나 더 써주어야 했다. 그리고 FROM에는 불러올 자료의 테이블을 지정하고, WHERE을 쓸 때 자세한 조건을 AND로 묶어주면 된다.
이제 JOIN을 어떻게 사용할지 조금 알 것 같다.

SQL-99 방식은 다음과 같이 풀 수 있다.

 

 

조금 더 간단하지만 난 이전 방식이 이해하기 더 쉬운 것 같다.


 

 

 

문제 2번

 

이 문제는 많이 어려워서 정답을 보면서 풀었는데도 잘 안되는 부분이 있다. 7장에서 풀었던 문제와 아주 유사한데 아직 잘 이해가 되지 않는지 보지 않고서는 풀 수가 없다.

 

 

많이 어렵다. 다음에 다시 풀어야 할 것 같다.

 

 

 

 

 

99버전으로도 이렇게 풀 수 있다.


 

 

 

 

문제 3번

 

이 문제를 많이 어렵지 않았다. LEFT OUTTER JOIN을 사용해 + 기호로 묶어주었다.
문제를 다 풀고 나니 조금 의문이 드는 부분이 있다. 오른쪽이 NULL이니 RIGHT 연산인 것 같다. 근데 왜 왼쪽에 + 기호가 오는지 확인해봐야겠다.

 

 

 

 


 

 

 

 

문제 4번

 

이 문제는 지금 내 수준에서 결코 이해할 수 있는 문제가 아니라서 어떤 문제인지 확인만 해보았다. 3개의 테이블을 묶는 건데 아주 고난이도 문제이다.
이 문제는 조인뿐 아니라 DB에 대한 이해가 어느 정도 깊어야 풀 수 있을 것 같다.

 

 

 

 

 

어쨌든 문제는 모두 풀어보았다. 모두 내 진짜 실력은 아니고 답을 참고하며 풀었지만 지금은 공부할 시간이 많이 부족해서 이렇게 하는 것이 더 효율적인 것 같다.


 

 

 

학습을 마치고

오늘 새벽에 3시간 반 동안 조인에 대해서 공부했다. 책과 강의, 자료를 뒤적이며 문제를 풀고 정말 바쁘게 보냈는데 너무나도 뿌듯하다. 어젯밤에 늦은 시간이었지만 자바의 배열과 정처기 공부도 조금 하길 잘했다는 생각이 든다.
이제 8시 반이 다 되어서 오늘도 아침을 먹기는 틀린 것 같다. 아침 시간이 너무나도 바쁘다. 그래도 어제 샤워도 다 해서 바로 챙기고 나가면 되겠다. 오늘 하루도 화이팅을 외치며 열공해볼 것이다~

그리고 저녁에 와서 서브 쿼리와 새로운 단원 학습에 들어가야지.