본문 바로가기
[커리어] 에디터의 자기계발/[도전] 비전공자 코딩 학습기록

[코딩 공부] 엘리스 SQL강의 수강일지 1강 5장 - 서브쿼리

by 시루나 2022. 3. 1.
반응형

수업기록 5차. 

01. 서브쿼리 (Sub-Query) : 하나의 쿼리 안에 포함된 또 하나의 쿼리. 

 1) 서브쿼리의 특징

 - 알려지지 않은 기준을 이용한 검색에 유용 ex. 연봉이 상위 5%인 여성 직원

 - 메인 쿼리가 실행되기 이전에 한 번만 실행됨. 한 문장에서 여러 번 사용 가능.

 - 오로지 select문으로만 작성할 수 있으며 괄호와 함께 사용. order by절은 사용 불가.

위 쿼리는 'elice'보다 급여가 큰 직원을 찾으라는 의미. 셋째줄 서브쿼리 전체가 '급여 >'의 기준이 된다.

   ⭐ 메인쿼리 / (SELECT 컬럼 FROM 테이블 WHRER 조건='');

   ex. 사원번호가 7인 사원보다 나이가 어린 사원의 모든 퀄럼을 조회하려면?

   => SELECT *

       FROM emp

       where birthdate > 

       (select * from emp where emp_no=7);

 2) 단일행 서브쿼리 : 결과가 1개만 나오는 서브쿼리

   ex. 사원번호가 1인 사람보다 급여가 높은 사람의 컬럼은? = 1명뿐

   => SELECT *

         FROM employee

         WHERE sal > 

       (SELECT sal FROM employee WHERE emp_no=1);

  주의 : >와 =를 같이 써야할 때는 반드시 =가 뒤에 온다.

 3) 다중행 서브쿼리 : 결과가 2개 이상 나오는 서브쿼리

   ex. 반에서 키가 160cm가 넘는 학생의 데이터? = 여러명이 있을 수 있음.

  ex. 각 부서에서 급여를 제일 많이 받는 사원을 조회하는 쿼리 

  => SELECT *

         FROM emp

         WHERE sal =any (하나라도 만족하는 사람은 다 출력)

        (SELECT MAX(sal) FROM emp GROUP BY deptno);

 

all과 any의 차이 비교

< any -> 최대값

< all -> 최소값 

 

 4) 스칼라 서브쿼리 : SELECT 절에서 사용하는 서브쿼리. 오로지 한 행만 반환한다.

    -> JOIN과 비슷한 결과가 나타나지만, 더 빠르게 데이터를 추출할 수 있어서 사용

위 : 스칼라 서브쿼리의 위치 / 아래 : 일반적인 서브쿼리의 위치

    SELECT 테이블 / (SELECT 컬럼1 FROM 테이블 WHRER 조건=''); / AS 별명 FROM 테이블

   [TIP] 테이블명이 길 경우 별명을 지어줄 수 있다 -> as 별명

    ex. 아래 캡쳐 참조


드디어 1강 마지막 수업까지 완강! 마지막의 서브쿼리는 좀 명령어가 길어서 어려웠다 ㅠㅠ 풀이영상 없이는 제출을 못했을 과제도 좀 있었다. 학습한 내용을 잊어버리지 않도록 좀 더 활용할 수 있는 방법이 있을까, 를 고민하게 된다. 기세를 몰아 바로 2강을 향해 :-)

 

👇엘리스 코딩교육이 궁금하다면👇

https://bit.ly/3J84saF

 

엘리스 내일 패스, 가볍게 코딩 시작

엘리스 내일 패스를 통해 파이썬, SQL을 활용한 데이터 분석부터 웹개발, R 등 핫한 개발 주제들을 쉽고 편하게 수강할 수 있습니다.

kdc-elice.imweb.me

 

반응형

댓글