프로시저 (Procedure)
프로시저(Procedure)란,
- DB에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한 것 -> (Stored Procedure) 라고도 불림
- 어떠한 업무를 수행하기 위한 절차를 의미
- 절차형 SQL을 활용하여 특정 기능을 수행할 수 있는 트랜잭션 언어(TCL)
함수란?
- 하나의 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합
- 함수가 작업을 위한 기능이라면, 프로시저는 작업을 정리한 절차
프로시저 생성
CREATE PROCEDURE 프로시저_명
(
파라미터_명 MODE 데이터_타입
)
IS
변수 선언
CREATE OR REPLACE PROCEDURE 프로시저_명
(
파라미터_명 MODE 데이터_타입
)
AS
변수 선언
# 주의
(1) 프로시저 Header의 끝에는 IS
프로시저 vs 함수
| 프로시저 | 함수 |
| 특정한 작업을 수행 | 특정한 계산을 수행 |
| 리턴값 있을 수도 있고, 없을 수도 있다 | 리턴값 반드시 가져야 한다 |
| 리턴값을 여러개 가질 수 있다 | 오직 하나의 리턴 값을 갖는다 |
| 서버(DB) 에서 기술 | 화면(Client)에서 기술 |
| 수식 내에서 사용이 불가능 | 수식 내에서만 사용이 가능 |
| 단독으로 문장 구성 가능 | 단독으로 문장 구성 불가능 |
프로시저 vs 트리거
2024.03.13 - [CS/DB] - DB 면접 대비 - 트리거(Trigger)
DB 면접 대비 - 트리거(Trigger)
트리거(Trigger)에 대해 설명해주세요 트리거(Trigger)란, 테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 의미한다. 특정 테이블에 INSERT, DELETE, UPDATE 같은 DML 문이 수행될 때, 데이터베이
koreankdj.tistory.com
공통점 : 데이터베이스에 저장하며 DECLARE, BEGIN, END를 필수로 가져야 한다.
차이점
- 트리거는 이벤트가 발생할 때 자동으로 호출. 프로시저는 필요할 때마다 호출
- 트리거 내부에서 프로시저 정의 가능. 프로시저 내부에서 트리거 정의 불가
- 트리거는 매개 변수 값이나 코드를 반환할 수 없음. 프로시저는 매개 변수 값이나 코드 반환할 수 있음.
'CS > DB' 카테고리의 다른 글
| DB 면접 대비 - 트랜잭션(Transaction) (0) | 2024.03.14 |
|---|---|
| DB 면접 대비 - 정규화 & 이상현상 (Normalization & Anomaly) (0) | 2024.03.13 |
| DB 면접 대비 - 인덱스(index) (0) | 2024.03.13 |
| DB 면접 대비 - 트리거(Trigger) (0) | 2024.03.13 |