KIM HEESANG dexaboud3@naver.com PL/SQL 2 KIM HEESANG dexaboud3@naver.com
성적관리 프로그램 Procedure SELECT ~ INSERT INTO ~ UPDATE ~ DELETE ~ Table name: SCORE Name(PK) kor eng math total Average varchar(20) int
SELECT Procedure화
PROCEDURE 정규식 CREATE [OR REPLACE] PROCEDURE procedure_name [ (parameter [,parameter]) ] --변수 IS [declaration_section] -- 선언부 BEGIN executable_section -- 실행부 [EXCEPTION exception_section] --예외처리부 END;
IN, OUT, IN OUT 매개변수 IN 매개변수는 참조만 가능하며 값을 할당 할 수 없다.
Select Score Procedure SELCT * FROM Score의 내용을 Procedure화 하여 커서를 이용해 처리
DatabaseManager Select부분 변경 (getScore 부분)
Delete Score Procedure DELETE FROM Score WHERE name = ? 를 변수를 받아 Procedure에서 처리
DatabaseManager delete부분 변경 (deleteScore 부분)
과제 1 INSERT INTO, UPDATE SQL을 프로시저화하시오.
오라클 내장함수 DECODE CASE
DECODE 조건에 따라 데이터를 다른 값이나 컬럼으로 추출하는 것 DECODE(value, if1, then1, if2 then2, …, default) VALUE 값이 IF1일 경우에 THEN1 값을 반환하고, VALUE 값이 IF2일 경우에는 THEN2 값을 반환 if에 모든 조건을 만족하지 않을 경우 default 반환
DECODE SELECT BOOKNAME, DECODE(PUBLISHER, '굿스포츠', '굿스포츠', '그 외') PUBLISHER FROM tbl_book; 굿스포츠 이외에 ‘그 외’를 반환
DECODE 출판사 별 책의 총 가격을 구하려면?
DECODE 출판사 별 책의 총 가격을 구하려면?
CASE DECODE보다 확장된 기능을 제공 CASE WHEN 조건1 THEN 결과1 WHEN 조건2 THEN 결과2 WHEN 조건3 THEN 결과3 ELSE 결과 END 값 비교만이 아닌 범위 비교가능
CASE CASE문을 이용한 금액별 분류 PRICE 10000 이하 저가 PRICE 10000 ~ 15000 중저가
과제 2 selectScoreProcedure와 프로그램을 수정하여, 아래와 같이 나올 수 있도록 하세 요. 평균 100 ~ 90 A 평균 89 ~ 80 B 평균 79 ~ 70 C 평균 69 ~ 60 D 평균 59 ~ 0 F
SCORE 데이터 입력 DELETE FROM SCORE; INSERT INTO SCORE VALUES('연아', 100, 90, 90, 280, 93); INSERT INTO SCORE VALUES('현진', 80, 80, 80, 240, 80); INSERT INTO SCORE VALUES('장훈', 100, 65, 50, 215, 71); INSERT INTO SCORE VALUES('지성', 70, 70, 70, 210, 70); INSERT INTO SCORE VALUES('연경', 50, 80, 55, 185, 61); INSERT INTO SCORE VALUES('흥민', 50, 50, 55, 155, 51);