📃 요약
전세계 기업시장에서 굉장히 활용 많이 하는 관계형 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;