Programming/SQL

[SQL] 저장프로시저와 사용자정의함수

reeme 2020. 12. 18. 17:32

프로시저

-- 자주 자용되는 질의문들을 하나로 묶어서 저장해두고 필요할 때마다 명령문처럼 실행할 수 있도록 해주는 것

    선택적으로 매개변수를 받아 일련의 질의문을 실행시켜 결과를 돌려주는 것

    범용 언어의 프로시저 ⇨ 함수와 유사한 개념

 

일반 질의문과의 차이점

일반 질의  프로시저
사용자 또는 응용 프로그램이 실행하고자 하는 SQL 문을 DBMS  전송하고 그 결과를 받음 프로시저 내용은 DBMS  포함되어 있고 실행 방안도 미리 작성되어 있음
대량의 복잡한 질의문들이 반복적으로 입력되면 그만큼 시스템에 부담이  사용자나 응용 프로그램은 프로시저 이름과 매개변수  ( 필요  ) 만을 전송하면 -> 복잡한 SQL 문의 단순화
DBMS 에도 처리해야 하는 일이 늘어남  

 

프로시저 생성 구문

CREATE [PROCEDURE|PROC] 프로시저이름 AS
BEGIN SQL 문 END -- BEGIN END 는 SQL 문이 하나만 있다면 생략 가능

 

프로시저 실행 구문

EXEC 프로시저이름 ;

 

프로시저 수정 구문 

ALTER PROCEDURE 프로시저이름 
AS SQL문;



단순 프로시저 생성 및 호출


예) DB 에 employ 테이블에서 사번이 109 인 사원의 이름 , 직급 , 급여를 검색하는 emp_pro 프로시저 생성하기

create procedure emp_pro 
as 
select ename, job, salary 
from employee  
where eno=109; 

 

emp_pro 호출하기

exec emp_pro ;

 

emp_pro프로시저를 수정하여 사원번호 110번의 정보 검색하기

alter procedure emp_pro as select ename, job, salary from employee where eno=110; 
exec emp_pro;