+ 00 00 0000

Have any Questions?

11_Simple Coding – Subquery – 기본 요약

11_Simple Coding – Subquery – 기본 요약

📃 요약

전세계 기업시장에서 굉장히 활용 많이 하는 관계형 DB 로 오라클이 있음.
상용 가격은 굉장히 비싸고, 유지보수 비용도 굉장히 높은것으로 알려져 있음.
마이크로서비스가 활성화 되면서 예전과 달리 비싼 비용의 오라클보다 무료 DB 로 전환하는 사례도 나타나고 있음
주로 서비스업체 중심으로 Mysql / Maria DB 가 많이 활용되고 SI 프로젝트는 아직도 전통의 강자 오라클이 많이 사용되고 있음

요소 기술 :

– Basic : SQL

📃 기술 구현

스펙 :

- SQL Developer
- Oracle SQL

📃 서브쿼리 기초

- SQL 실행시 주로 원격으로 DB 서버에 접속해서 실행하므로 네트웍 지연으로 인해 1번의 명령문이 2번의 명렴문보다 대체적으로 빠름
- 서브쿼리는 조인과 유사하며 2개의 쿼리를 1개의 쿼리로 합치는 방법을 제공
- 쿼리문 성능향상에 목적이 있음

1. 서브쿼리

1) 서브쿼리 :

- 대상 : 단일행 서브쿼리(1건만 나옴)
- 방법 : 공통컬럼의 값이 일치한 데이터만 가져오게함(성능 향상)
사용법) 
    SELECT 컬럼명 FROM 테이블명
    WHERE 비교컬럼 > (SELECT 비교컬럼 FROM 테이블명)

-- 서브쿼리 : 단일행 서브쿼리(1건만 나옴)
-- 예제1) SCOTT 사원보다 급여를 많이 받는 사원을 찾기위한 SQL문을 작성하세요
SELECT ENAME, SALARY
FROM EMPLOYEE
WHERE SALARY > (SELECT SALARY
                FROM EMPLOYEE
                WHERE ENAME = 'SCOTT');

2) 부서별 최소 급여 구하기

사용법 : 

예 : 오라클
SELECT DNO, MIN(SALARY)
FROM EMPLOYEE
GROUP BY DNO
HAVING MIN(SALARY) > (SELECT MIN(SALARY)
                        FROM EMPLOYEE
                        WHERE DNO = 30);

3) 다중 행 서브쿼리(자식쿼리) :

- 여러 건이 나옴
사용법 : 

예 :
SELECT ENO, ENAME
FROM EMPLOYEE
WHERE SALARY IN (SELECT MIN(SALARY)
                FROM EMPLOYEE
                GROUP BY DNO);

4) 특수한 경우 아래처럼 사용도 가능

- Select 절에도 사용가능
- From 절에도 사용가능 : 인라인 뷰라고 함
사용법 : 

예 :
SELECT 2*3, (SELECT 4*3 FROM DUAL)
FROM DUAL;

예 :
SELECT EMP.ENAME, EMP.ENO
FROM (SELECT ENAME, ENO FROM EMPLOYEE) EMP;

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다