SQL 기초 과정의 마지막 주차 학습이다. 여기까지만 하고 오후 공부를 마치려고 한다. 심화 과정은 지금은 꼭 필요한 공부는 아닌 것 같아 할지 말지 고민이 된다. 어쨌든 5주 차 공부를 시작해 본다.
이론 1 - 서브쿼리
실습 1 - 단행 서브쿼리 1
단일행은 서브쿼리의 결과가 한 개의 행으로 나타나는 것이다.
1. 출력 결과 확인하기
전체 테이블을 조회하면 다음과 같다. 먼저 서브쿼리와 메인 쿼리에 있어야 할 조건을 정한다.
2. 사원번호가 7인 사람 서브쿼리로 조회하기
사원 번호가 7인 사람을 서브쿼리로 작성하였다.
7인 사람은 생년월일이 1981년 6월 9일이다. 나이가 어리려면 메인 쿼리의 생년월일이 더 커야 한다.
3. 조건에 맞게 코드 추가하기
이렇게 7번 사원보다 어린 사원이 출력되었다.
실습 2 - 단일 행 서브쿼리 2
1. 테이블 조회하기
이 문제에서는 전 사원의 급여 평균보다 낮은 급여를 받는 사원을 조회해야 한다. 급여는 sal이 된다.
2. 서브쿼리 작성하기
먼저 서브쿼리를 작성해 보았다. 여기서는 특별한 조건이 필요하지 않아 where를 쓰지 않았다. emp 테이블에서 전 사원의 평균을 구했다. 전 사원의 평균 급여는 2030이다.
이제 메인쿼리도 작성해 보기로 하자.
3. 메인쿼리 작성하기
전 사원의 급여 평균보다 작은 사원들이 잘 출력되었다.
실습 3 - 단일 행 서브쿼리 3
1. 서브쿼리 작성하기
먼저 서브쿼리와 메인쿼리로 만들 조건을 정하고, 서브쿼리를 작성해 본다.
부서 번호가 40인 사원들의 급여 평균을 조회해 보았다.
그런 다음 메인 쿼리를 작성한다. 모든 컬럼과 나이를 조회해야 하는데 나이는 여기 조건에 주어졌으므로 이 코드를 복사해서 붙여 넣었다.
2. 메인쿼리 작성하기
이제 메인 쿼리 안에 서브쿼리를 넣어본다.
이제 사원 번호가 40보다 더 높게 받는 직원이 출력되었다.
3. 추가 조건 조회하기
40보다 더 작게 받는 직원들을 출력해 보았다.
40과 같은 급여를 받는 직원은 아무도 없어서 나타나지 않았다.
퀴즈 1 - 서브쿼리
이 문제는 조금 헷갈렸다. 메인 쿼리가 실행되기 이전에 실행되는 것은 맞지만, 한 문장에서 여러 번 사용이 가능하다.
학습을 마치고
5주 차 첫 번째 공부를 이렇게 마쳐본다. 저녁 먹기 전에 여기까지는 끝내고 싶었는데 목표를 달성해서 정말 기쁘다. 서브 쿼리는 분량이 많지 않아 금방 끝날 것 같다.
만약에 조금 전에 공부했던 MySQL이 잘 실행이 되면 나머지 공부를 이어서 하고, 그래도 안 되면 SQL 심화 학습을 진행해보려고 한다.
'알고리즘 및 자료 관리 > SQL' 카테고리의 다른 글
서브쿼리 3 - 반환에 따른 분류 2 : 다중행 서브쿼리 실습해보기 (0) | 2024.10.13 |
---|---|
서브쿼리 2 - 반환에 따른 분류 1 : 단일 행 서브쿼리와 다중 행 서브쿼리 (0) | 2024.10.13 |
다수의 테이블 제어하기 7 - 미션 문제 풀기 및 단원 정리 (0) | 2024.10.13 |
다수의 테이블 조회하기 6 - RIGHT JOIN (0) | 2024.10.13 |
다수의 테이블 조회하기 5 - LEFT JOIN (0) | 2024.10.13 |