관리 메뉴

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

서브쿼리 심화 1 - 동작하는 방식에 따른 서브쿼리 분류 1 : 연관 서브쿼리 본문

알고리즘 및 자료 관리/SQL

서브쿼리 심화 1 - 동작하는 방식에 따른 서브쿼리 분류 1 : 연관 서브쿼리

huenuri 2024. 10. 23. 17:26

3주 차 서브쿼리 학습을 시작해 본다. 벌써 4시 반이 되어서 오후 공부할 시간은 2시간 정도 남았다. 오늘부터는 요가도 다시 열심히 하기로 다짐했다. 매일 바쁘다는 핑계로 하루에 5분도 하기 힘들었다.

하지만 공부만큼 중요한 것은 건강 관리이다. 운동은 사실 중요하기는 하지만 급하지 않으니 미루지 쉽다. 하지만 정말 중요한 문제이다. 새벽 기상도 공부 습관, 정리 및 청소 습관, 식단 관리도 이젠 잘하게 되었으니 다음 단계인 운동을 습관으로 만드는 일에 전심을 기울이기로 했다.


 

 

 

 

이론 1 - 동작하는 방식에 따른 서브쿼리 분류 : 연관 서브쿼리

 

 

 

 

 

컬럼 자체가 조건절로 사용되면 연관 서브쿼리이다.

 

 

 

 

 

 

메인 서브쿼리 안에 들어가서 해당 값이 조회되면 연관 서브쿼리가 된다. 여기서는 DEPARTMENT_ID가 1인 사람 중에서 평균 연봉보다 높은 엘리스가 조회되었다.

 

 

 

 

 

 

 

 

 

비연관 서브쿼리는 메인 쿼리와 별로 연관성이 없다. 예시를 보면 서브쿼리에서 DEPARTMENT_ID가 1인 사람 중에서 ELICE를 조회하고 있다. 그런 다음 DEPARTMENT_ID가 1인 사람들의 평균 연봉을 구한다. 

이런 식으로 비연관 서브쿼리는 서브쿼리의 값이 메인 쿼리에 들어가지 않는 것을 말한다.


 

 

 

 

실습 1 - 동작하는 방식에 따른 서브쿼리 분류 1 : 연관 서브쿼리

 

 

 


 

 

1. 테이블 조회하기

 

 

직원들 중에서 자신의 관리자보다 급여가 높거나 같은 직원을 출력하려고 한다.


 

 

 

2. 자신의 관리자의 급여보다 높거나 같은 직원의 ID 출력하기

 

 

자신의 관리자보다 같거나 높은 연봉의 직원이 추출되었다. 사실 이 쿼리문은 잘 이해가 되지 않아서 몇 번을 반복 시청하고 생각하느라 시간이 오래 걸렸다.

아직 다는 이해하지 못했지만 어느 정도 알 것 같다. 서브쿼리에서 WHERE 조건문이 잘 이해가 되지 않았다.

 


 

 

 

 

 

실습 2 - 동작하는 방식에 따른 서브쿼리 분류 2 : 비연관 서브쿼리

 

 


 

 

 

1. 테이블 조회하기

 

 

급여가 8,000 미만인 직원의 관리자 ID와 급여를 출력하는 쿼리를 작성해 볼 것이다.


 

 

 

2. 급여가 8000 미만인 직원의 관리자 아이디와 급여 출력하기

 

IN 안에 급여가 8000 미만인 관리자 아이디가 들어가도록 쿼리를 작성했다. 

 

 


 

 

 

 

퀴즈 1 - 동작하는 방식에 따른 서브쿼리 분류

 

 

 


 

 

 

 

학습을 마치고

이번 단원은 정말 공부하기가 많이 힘들었다. 단순히 하기 싫은 문제는 아닌 것 같아서 천천히 하면서 무리가 가지 않도록 했다. 오늘로써 4일 연속 SQL만 공부하고 있는데 슬슬 질리고 빨리 끝내고 다음 과정을 하고 싶은 마음이 든다.

그래도 해야 하는 건 건너뛰지 말아야 한다.

지금은 힘들어도 지금의 이 힘든 시간들이 실력의 바탕이 되고 단단히 지지할 밑거름이 될 것이라 믿는다.