관리 메뉴

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

서브쿼리 1 - 서브쿼리에 대하여 본문

알고리즘 및 자료 관리/SQL

서브쿼리 1 - 서브쿼리에 대하여

huenuri 2024. 10. 13. 19:18

SQL 기초 과정의 마지막 주차 학습이다. 여기까지만 하고 오후 공부를 마치려고 한다. 심화 과정은 지금은 꼭 필요한 공부는 아닌 것 같아 할지 말지 고민이 된다. 어쨌든 5주차 공부를 시작해본다.


 

 

 

이론 1 - 서브쿼리

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

실습 1 - 단행 서브쿼리 1

 

 

 

단일행은 서브쿼리의 결과가 한 개의 행으로 나타나는 것이다.

 

 

 

전체 테이블을 조회하면 다음과 같다. 먼저 서브쿼리와 메인 쿼리에 있어야 할 조건을 정한다.

 

 

 

 

사원 번호가 7인 사람을 서브쿼리로 작성하였다.

 

 

7인 사람은 생년월일이 1981년 6월 9일이다. 나이가 어리려면  메인 쿼리의 생년월일이 더 커야 한다.

 

 

 

 

이렇게 7번 사원보다 어린 사원이 출력되었다.

 


 

 

 

실습 2 - 단일 행 서브쿼리 2

 

 


 

 

이 문제에서는 전 사원의 급여 평균보다 낮은 급여를 받는 사원을 조회해야 한다. 급여는 sal이 된다.

 

 

 

 

먼저 서브쿼리를 작성해보았다. 여기서는 특별한 조건이 필요하지 않아 where를 쓰지 않았다. emp 테이블에서 전 사원의 평균을 구했다. 전 사원의 평균 급여는 2030이다.

이제 메인쿼리도 작성해보기로 하자.

 

 

 

 

전 사원의 급여 평균보다 작은 사원들이 잘 출력되었다.

 


 

 

 

 

실습 3 - 단일 행 서브쿼리 3

 

 

 

 

먼저 서브쿼리와 메인쿼리로 만들 조건을 정하고, 서브쿼리를 작성해본다.

 

 

 

부서 번호가 40인 사원들의 급여 평균을 조회해보았다.

 

 

 

그런 다음 메인 쿼리를 작성한다. 모든 컬럼과 나이를 조회해야 하는데 나이는 여기 조건에 주어졌으므로 이 코드를 복사해서 붙여 넣었다.

 

 

이제 메인 쿼리 안에 서브쿼리를 넣어본다.

 

 

 

이제 사원 번호가 40보다 더 높게 받는 직원이 출력되었다.

 

 

 

40보다 더 작게 받는 직원들을 출력해보았다.

 

40과 같은 급여를 받는 직원은 아무도 없어서 나타나지 않았다.


 

 

 

 

 

퀴즈 1 - 서브쿼리

 

 

 

이 문제는 조금 헤깔렸다. 메인 쿼리가 실행되기 이전에 실행되는 것은 맞지만, 한 문장에서 여러 번 사용이 가능하다.

 


 

 

 

학습을 마치고

5주차 첫번째 공부를 이렇게 마쳐본다. 저녁 먹기 전에 여기까지는 끝내고 싶었는데 목표를 달성해서 정말 기쁘다. 서브 쿼리는 분량이 많지 않아 금방 끝날 것 같다.

만약에 조금 전에 공부했던 MySQL이 잘 실행이 되면 나머지 공부를 이어서 하고, 그래도 안 되면 SQL 심화 학습을 진행해보려고 한다.