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 문들이 포함된 저장 프로시저나 함수를 한번만 호출함으로서

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


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


* 단점


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


* 테이블

 

 

 

* 오라클 저장 프로시저​


 



*  저장 프로시저 호출

 

 


* 오라클 함수

 

 

​* 함수 호출

 

Java Web 실무과정] 페이징과 관련된 클래스 및 JSP

Java Web 실무과정] 페이징과 관련된 클래스 및 JSP


 


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



페이징과 관련된 클래스 및 JSP


* util.Pager

- 페이징과 관련된 정보 초기화
- Eclipse에서 소스 확인

* common/include/pager.jsp

- 페이저모양을 표현
- Eclipse에서 소스 확인

<소스>

* ​Pager 클래스
 

 



* pager.jsp



 

* JSP에서 리스트 표현



 

Java Web 실무과정] 페이징 처리

Java Web 실무과정] 페이징 처리


 

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



페이징 처리


* 페이징(Paging)


- 전체 행을 몇 개의 행으로 구성된 페이지로 나누는 것


* 페이징에 관련된 정보


- 전체 행 수
- 전체 페이지 수
- 전체 그룹 수
- 페이지당 행 수(rowsPerPage)
- 현재 페이지(currentPage)
- 그룹당 페이지 수

 

 


* 현재 페이지의 리스트 검색 SQL


- Oracle
   select *
   from
   (
      select rownum rnum, *
      from
      (
       >> select * 
       >> from board
       >> order by bno desc
      )
      where rownum <= (rowsPerPage*currentPage)
)
where rnum > (rowsPerPage*(currentPage-1))


- MySql
    select *
    from freeboard
    Where 조건
    order by 정렬
    limit rowsPerPage*(currentPage-1), rowsPerPage;


* DAO의 페이지 리스트 검색 메서드

 




 

Java Web 실무과정] DTO/DAO 클래스 작성

Java Web 실무과정] DTO/DAO 클래스 작성


 

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



DTO/DAO 클래스 작성


* DTO 클래스 작성

- public class DB테이블명


- 각 컬럼


: 프로퍼티로 정의
  - private 필드
  - public gettter,setter 메서드


- 참조 테이블(매핑B타입)


: ArrayList형의 프로퍼티로 정의


* DAO 클래스 작성

- public class DbtableNameDAO


- 기본 메서드


: int insert(param, …) / int insert(objDTO)
: int delete(param, …) / int delete(objDTO)
: int updateXXX(param, …) / int updateXXX(objDTO)
: ArrayList getList([param, …])
: long getCount([param, …])


- 기타 메서드 
 

Java Web 실무과정] DAO/DTO

Java Web 실무과정] DAO/DTO


 


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



DAO/DTO


* DAO (Data Access Object)

- DB에 데이터를 검색/삽입/수정/삭제를 담당하는 개체
- MVC 모델에서 Model 영역에서 사용
- 일반적으로 DAO와 DB 테이블은 1:1, 1:n 매핑


* DTO (Data Transfer Object)


- DAO에서 메서드의 매개변수 또는 반환형으로 사용
- MVC간의 데이터 전달 목적으로 사용되는 객체
- 일반적으로 DTO와 DB 테이블는 1:1 매핑


* DAO/DTO 테이블 매핑A


- Table1과 Table2가 이종의 데이터일 경우
  
예: 고객과 상품 주문


- PK로서 대량의 FK를 검색할 경우



 

* DAO/DTO 테이블 매핑B


- Table2가 Table1의 확장 데이터일 경우
  
예: 고객과 고객 취미


- PK로서 소량의 FK를 검색할 경우
 

 

SQL 기초 및 PLSQL 실무 강좌 자료] 일반 함수 CASE 함수


SQL 기초 및 PLSQL 실무 강좌 자료] 일반 함수 CASE 함수


 


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



일반 함수 CASE 함수


* CASE 함수


- CASE 함수는 DECODE 함수의 기능을 확장한 함수


- DECODE 함수는 표현식 또는 칼럼 값이 ‘=‘ 비교를 통해 조건과 일치하는 경우에만 다른 값으로 대치할 수 있지만,

CASE 함수에서는 산술 연산, 관계 연산, 논리 연산과 같은 다양한 비교가 가능


- 또한 WHEN 절에서 표현식을 다양하게 정의


- 8.1.7에서부터 지원되었으며, 9i에서 SQL, PL/SQL에서 완벽히 지원


- DECODE 함수에 비해 직관적인 문법체계와 다양한 비교 표현식 사용


* 사용법

 

 

* 사용 예

​- 교수 테이블에서 소속 학과에 따라 보너스를 다르게 계산하여 출력하여라. 학과 번호별로 보너스는 다음과 같이 계산한다. 학과 번호가 101이면 보너스는 급여의 10%, 102이면 20%, 201이면 30%, 나머지 학과는 0%이다.

 



 


SQL 기초 및 PLSQL 실무 강좌 자료] 일반 함수 DECODE 함수


SQL 기초 및 PLSQL 실무 강좌 자료] 일반 함수 DECODE 함수


 


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



일반 함수 DECODE 함수


* DECODE 함수


- DECODE 함수는 기존 프로그래밍 언어에서 IF문이나 CASE 문으로 표현되는 복잡한 알고리즘을 하나의

SQL 명령문으로 간단하게 표현할 수 있는 유용한 기능


- DECODE 함수에서 비교 연산자는 ‘=‘만 가능


* 사용법

 

 


- 표현식 또는 칼럼의 값이 SEARCH1 값과 일치하면 RESULT1값을 반환, SEARCH2값과 일치하면 RESULT2 값 반환


- 일치하는 값이 없거나 NULL인 경우에는 기본값 반환


- 기본값이 없는 경우에는 NULL 반환


* DECODE 함수의 개념을 도식적으로 표현한 것이다.

 

 

* 사용 예

- 교수 테이블에서 교수의 소속 학과 번호를 학과 이름으로 변환하여 출력하여라. 학과 번호가 101이면 ‘컴퓨터공학과’, 102이면 ‘멀티미디어학과’, 201이면 ‘전자공학과’, 나머지 학과 번호는 ‘기계공학과’(default)로 변환한다.

 



 



+ Recent posts