절차형 SQL
- 절차형 SQL은 일반적인 개발 언어처럼 SQL언어에서도 절차지향적인 프로그램이 가능하도록 하는 트랜잭션 언어이다.
- 프로시저
- procedure
- 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 구성
- 선언부
- Declare
- 프로시저의 명칭, 변수와 인수 그리고 그에 대한 데이터 타입을 정의하는 부분
- 시작/종료부
- begin/end
- 프로시저의 시작과 종료를 표현하며, begin/end 가 쌍임, 다수 실행을 제어하는 기본 단위, 프로세스를 구성
- 제어부
- control
- 기본적으로 순차적으로 처리, 조건문과 반복문을 이용하여 문장을 처리
- SQL
- DML 을 주로 사용
- 자주 사용되지 않지만 DDL 중 TRUNCATE사용
- 예외부
- EXCEPTION
- BEGIN/END 절에서 사용되는 SQL문이 실행될 때 예외 발생시 예외 처리 정의
- 실행부
- TRANSACTION
- 프로시저에서 수행된 DML 수행 내역의 DBMS의 적용 또는 취소 여부 결정 처리
- 사용자 정의 함수
- User-defined function
- 일련의 SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
- 사용자 직접 새로운 함수를 정의하여 사용하는 방법
- 구성
- 기본적인 사항은 프로시저와 동일하고 반환에서의 부분만 프로시저와 다르다
- 사용자 정의 함수의 호출을 통해 실행되며, 반환되는 단일 값을 조회 또는 삽입, 수정 작업에 이용하는 것이 일반적이다.
- 기본적인 개념 및 사용법, 문법 등을 프로시저와 동일하며 종료시 단일 값을 반환한다.
- 선언부
- 사용자 정의 함수의 명칭, 변수와 인수 그리고 그에 대한 데이터 타입을 정의하는 부
- 시작/종료부
- 사용자 정의 함수의 시작과 종료를 표현하는데 필수적이며, BEGIN/END가 쌍을 이루어 추가되므로 블록으로 구성
- 다수 실행을 제어하는 기본적 단위가 되며 논리적 프로세스를 구성
- 제어부
- 기본적으로 순차적으로 처리
- 비교 조건에 따라 블록 또는 문장을 실행
- 조건에 따라 반복 실행
- SQL
- 조회 용도로 SELECT 문을 사용
- 데이터를 조작하는 INSERT, DELETE, UPDATE는 사용 불가
- 예외부
- BEGIN-END 절에서 실행되는 SQL문이 실행될 때 예외 발생시 예외처리 방법을 정의하는 처리부
- 반환부
- 트리거
- Trigger
- 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때 마다 관련 작업이 자동으로 수행되는 절차형 SQL
- 목적
- 특정 테이블에 대한 데이터 변경을 시작점으로 설정하고, 그와 관련된 작업을 자동적으로 수행하기 위해 트리거를 사용한다.
- 일반적으로는 이벤트와 관련된 테이블의 데이터 삽입, 추가 삭제 작업을 DBMS가 자동적으로 실행시키는 데 활용한다.
- 데이터 무결성 유지 및 로그 메시지 출력 등의 별도 처리를 위해 트리거를 사용한다.
- 종류
- 종류