- 2019/08/06 function 과 trigger2019년 08월 06일
- 조별하
- 작성자
- 2019.08.06.:18
[전 수업] 프로시저를 이용해서 데이터 값을 조회해 보았다
[본 수업] 프로시저와 같은 function 함수와 trigger를 배워보자
[함수(Function)]
-갑을 계산하고 결과값을 반환하기 위해서 사용
-저장프로시저와의 차이점
->입력 매개변수만 사용할 수 있고
->리턴 타입을 반드시 지정해야 함 (필수)
-형식)
create or replace function 함수이름
매개변수
return 리턴자료형
is
변수선언
begin
문장
end;
/
1. 문)sungjuk 테이블에서 국어 점수의 평균을 구하시오.
select round(avg(kor),0) from sungjuk; --65
--행추가
insert into sungjuk(sno,uname,kor,eng,mat,addr)
values (sungjuk_seq.nextval,'이순신',40,60,85,'Busan');
select round(avg(kor),0) from sungjuk; --63
--행수정
update sungjuk set kor=95 where sno=123;
select round(avg(kor),0) from sungjuk; --67
--행삭제
delete from sungjuk where sno=123;
select round(avg(kor),0) from sungjuk; --65이렇게 행이 추가되고 수정,삭제 될때 마다 kor의 평균값이 바뀐다 2. sno= 124 의 국어점수 (40) 을 50 점 추가하는 함수 생성
create or replace function fn_update_kor
( v_sno number )
return number
is
v_kor number;
begin
update sungjuk set kor=kor+50 where sno=v_sno;
select kor into v_kor
from sungjuk where sno=v_sno;
return v_kor;--인상도니 국어점수(90)
end;
/fn_update_kor 국어점수를 50점 추가하는 함수 생성 var korea number;
execute :korea := fn_update_kor(124);print korea; sqlplus에 서버 접속을 한후,
위의 코드를 입력하면
korea점수를 확인하면 50점이 추가되어있는것을 확인할 수 있다
[트리거 trigger]
방아쇠,데이터베이스에서의 연쇄적인 동작을 정의함
-insert update delete문이 실행될때
묵시적으로 수행되는 프로시저이다
-형식
create or replace trigger 트리거 이름
before 또는 after
트리거이벤트 on 테이블명
declare
변수선언;
begin
실행할 명령어;
end;
/
1. 콘솔창 출력을 위한 명령어
set serveroutput on; 2. trigger 생성
create or replace trigger kor_trigger
after
insert or update or delete on sungjuk
declare
avg_kor number;
begin
select avg(kor) into avg_kor from sungjuk;
dbms_output.put_line ('국어평균: ' || avg_kor);
end;3. trigger 생성 TEST
insert into sungjuk(sno,uname,kor,eng,mat,addr)
values (sungjuk_seq.nextval,'가을비',90,80,85,'Jeju');행추가를 하면 trigger 로 생성하였던 이벤트가 발생 update sungjuk set kor=95 where sno=125; 행수정 하면 trigger로 생성했던
'국어점수가 몇점인지 출력하는' 이벤트가 발생'JAVA 교육 > Sql' 카테고리의 다른 글
2019/09/13 Oracle DB 설치 & 사용자 계정 (0) 2019.09.13 2019/08/07 백업 및 복원 (0) 2019.08.07 2019/08/05 프로시저를 이용한 C.R.U.D (0) 2019.08.05 2019/08/05 프로시저를 이용 (0) 2019.08.05 2019/07/31 CSV변환 (0) 2019.07.31 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)