SQL 기초 및 PLSQL 실무 강좌 자료] 실무에서 서브쿼리 사용시 주의사항


SQL 기초 및 PLSQL 실무 강좌 자료] 실무에서 서브쿼리 사용시 주의사항


 


실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



실무에서 서브쿼리 사용시 주의사항


- 서브쿼리의 결과가 NULL인 경우


- 사용 예
: 2002년에 입사한 교수의 평균 급여보다 많은 급여를 받는 교수의 교수 번호, 이름, 급여를 출력하여라.

 

- 실습​

: Blake와 같은 부서에 있는 모든 사원에 대해서 사원 이름과 입사일을 디스플레이하라.

 

: 평균 급여 이상을 받는 모든 사원에 대해서 사원 번호와 이름을 디스플레이하는 질의문을 생성하라. 단 출력은 급여 내림차순 정렬하라.

 

: 부서 번호와 급여가 보너스를 받는 어떤 사원의 부서 번호와 급여에 일치하는 사원의 이름,

부서 번호 그리고 급여를 디스플레이하라.


 

SQL 기초 및 PLSQL 실무 강좌 자료] 실무에서 서브쿼리 사용시 주의사항


SQL 기초 및 PLSQL 실무 강좌 자료] 실무에서 서브쿼리 사용시 주의사항


 


실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다



실무에서 서브쿼리 사용시 주의사항


* 단일행 서브쿼리에서 오류가 발생하는 경우

- 복수 행 값을 반환하는 서브쿼리와 단일행 비교연산자 함께 사용하는 경우
- 반환되는 칼럼의 수와 메인쿼리에서 비교되는 칼럼 수가 일치하지 않는 경우
- 복수행을 출력하는 서브쿼리와 ‘=‘단일행 연산자로 비교하는 경우

 


 

기초 JAVA 교육과정 ]JDK(SDK)란?

 

기초 JAVA 교육과정 ]JDK(SDK)란?

 

 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

JDK(SDK)란?

 

 

■JDK

    ​□Java development kit
    □자바 프로그램 개발도구
    □개발을 위한 클래스, 컴파일러, 실행 및 배포도구를 포함 등 개발을 위 한 전반적인 환경을 제공
    □JDK(자바 플랫폼)  =
        ㅁJava Virtual  Machine + Java API
        ㅁJava Virtual  Machine = Hotspot VM(2017/1/11 현재 jdk 8u112)
        ㅁJava API(java application programming interface) = Library 

기초 JAVA 교육과정 ]자바의 특징

 

기초 JAVA 교육과정 ]자바의 특징 

 

 

 

 

 

실무개발자를 위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

 

자바의 특징

 

단순하다.

객체지향(Object-oriented)적이다.

분산(Distributed)환경에 적합하다.

인터프리터에(Interpreter)에 의해 실행된다.
견고(Robust)한 기능을 제공한다.
안전(Secure)하다.
구조중립(Architecture-neutral)적이고 이식성(Potable)이 높다.
높은 성능(High-performance)을 제공한다.
다중 쓰레드(Multithreaded)를 제공한다.
동적(Dynamic)이다. 

 

 

기초 JAVA 교육과정] 자바(Java)

 

기초 JAVA 교육과정] 자바(Java) 

 

 

실무개발자를 위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.

 

 

 

바(Java)

 

*자바는 썬마이크로시스템즈(Sun MicroSystems)에서 기획, 개발한 플랫폼이자 객체지향프로그래밍언어이다.

 

*자바는 보통 플랫폼을 의미하기도 하고, 플랫폼의 기본언어인 자바언어를 의미하기도 하는데, 일반적으로 자바라고 하면 그 활용범위가 광범위하여 자바 플랫폼으로 해석되고 있다.

 

*다양한 운영체제 환경 아래에서 다양한 CPU에 의해서 실행되는 코드를 생성한다.
 

​*네트워크상에서 쓸 수 있도록 미국 선 마이크로시스템(Sun Microsystems)사에서 개발한 객체 지향 프로그래밍 언어. ※현재 자바 소스 코드관리는 오라클(Oracle)
 

 

SQL 기초 및 PLSQL 실무 강좌 자료] DECODE 사용시 주의사항


SQL 기초 및 PLSQL 실무 강좌 자료] DECODE 사용시 주의사항


 


실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



DECODE 사용시 주의사항


* 펼칠 컬럼이 너무 많을때는 먼저 GROUP BY 한 후 처리하라.
  


▶   select dept_no,
         sum(decode(substr(wk_dt,7,2),’01’,amt)) d1,
         sum(decode(substr(wk_dt,7,2),’02’,amt)) d2,
         sum(decode(substr(wk_dt,7,2),’03’,amt)) d3,
         sum(decode(substr(wk_dt,7,2),’04’,amt)) d2,
         ,,,
         sum(decode(substr(wk_dt,7,2),’31’,amt)) d31

▶   select dept_no,
         sum(decode(dd,’01’,amt)) d1,
         sum(decode(dd,’02’,amt)) d2,
         sum(decode(dd,’03’,amt)) d3,
         sum(decode(dd,’04’,amt)) d4, 
         ,,,,
         sum(decode(dd,’31’,amt)) d31
     from ( select dept_no, substr(wk_dt,7,2) dd, sum(amt) amt
            from tab1
            where wk_dt like ‘200401%’
          )
     group by dept_no


▶ COUNT, SUM의 비교
      ① sum(decode(col1,’A’,1,0))
      ② sum(decode(col1,’A’,1))
      ③ count(decode(col1,’A’,1,0))
      ④ count(decode(col1,’A’,1))
      ⑤ count(decode(col1,’A’,’C’))


 ①, ②, ④, ⑤ 는 동일하다.

 ③ 의 결과는 count(*) 과 동일하다.

 ①은 ②보다 불리하다(불필요한 0 연산)

 ②는 ④, ⑤ 보다 불리

 ④, ⑤ 는 동일하다.


 SUM은 COUNT에 비해 30~50% 불리함

 COUNT는 not null 인 경우에만 처리

 COUNT를 사용할 수 있다면 SUM을 사용하지 마라.



* DECODE


□ DECODE 함수와 CASE 문

DECODE 함수 내부에서 DECODE문을 사용하는 경우에는 성능저하 발생
 UNION ALL를 사용할 경우 동일 테이블에 대한 인덱스 스캔이나 테이블 스캔 반복발생으로 성능저하
 Concat(‘||’) 함수로 비교대상컬럼를 묶어서 DECODE 함수의 중복사용을 줄이고, CASE 문으로 비교하는 방식 추천

    (INDEX 주의)


 

SQL 기초 및 PLSQL 실무 강좌 자료] DECODE 사용시 주의사항


SQL 기초 및 PLSQL 실무 강좌 자료] DECODE 사용시 주의사항


 


실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



DECODE 사용시 주의사항


* ELSE 없는 IF를 사용하라.
        select sum(decode(col1, 1, qty, 0)),…..
     → select sum(decode(col1, 1, qty)),…..


* 가능한 그룹함수내에서 nvl을 사용하지 마라
       select sum(decode(col1, 1, nvl(qty,0))),…  
   →  select nvl(sum(decode(col1, 1,qty)),0),…


* 가능한 반복해서 DECODE를 사용하지 마라
    
- 컬럼결합법
       select sum(decode(market,'D',
                      decode(type,'1',
                           decode(unit,'A',0.2 * col,
                                       'B',0.5 * col,…

    → select sum(decode(market || type || unit, 'D1A', 0.2,
                                                 'D1B', 0.5,…)) * col


- case문으로 대체 1

 

 

- case문으로 대체 2

 


- case문으로 대체 3

 


- case문으로 대체 4

 


 

Java Web 실무과정] 저장 프로시저와 함수 호출


Java Web 실무과정] 저장 프로시저와 함수 호출


 

실무개발자를위한 실무교육 전문교육센터학원
www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



저장 프로시저와 함수 호출



* 저장 프로시저(Stored Procedure)와 함수(Function) 


- 호출방식으로 실행가능한 SQL 코드 블록
- DBMS에서 컴파일하여 저장한 후, 호출 실행하는 방식


* 저장 프로시저와 함수의 차이점은 함수는 호출자에게 단일값(single value)를 반환함.


* 각 DBMS마다 작성 방법이 조금씩 다름


- Oracle : PL/SQL
- SQL Server: TSQL


* 장점


- 네트워크 통신량 절감 및 성능 향상
:
클라이언트에서 여러가지의 SQL문을 보내는 것 보다, 이들 SQL 문들이 포함된 저장 프로시저나 함수를 한번만 호출함으로서

통신량 절감 (컴파일이 미리 되어 있으므로, 재 컴파일 과정이 필요없음)


- 데이터의 무결성 강화
: 테이블의 데이터를 저장 프로시저 또는 함수로만 제어하므로 무결성이 강화되고, 보안에 유리


* 단점


- 저장 프로시저와 함수 작성 방법이 다소 어려움


* 테이블

 

 

 

* 오라클 저장 프로시저​


 



*  저장 프로시저 호출

 

 


* 오라클 함수

 

 

​* 함수 호출

 

+ Recent posts