p.476~484
1) 절차형 SQL
- C, JAVA 등의 프로그래밍 언어와 같이 연속적인 실행이나 분기, 반복 등의 제어가 가능한 SQL
- 일반적인 프로그래밍 언어에 비해 효율이 떨어지지만, 연속적인 작업 처리 적합
- BEGIN ~ END 형식으로 작성되는 블록(Block) 구조로 기능별 모듈화 가능
2) 프로시저(Procedure) #디비컨SET
- 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업 수행, 처리 결과는 한 개 이상의 값 혹은 반환을 아예 하지 않음
- 시스템의 일일 마감 작업, 일괄(Batch) 작업 등에 주로 사용됨
DECLARE(필수): 프로시저의 명칭, 변수, 인수, 데이터 타입을 정의하는 선언부
BEGIN(필수): 프로시저의 시작을 의미, 실행부
CONTROL: 조건문 또는 반복문이 삽입되어 순차적으로 처리됨
SQL: DML, DCL이 삽입되어 데이터 관리를 위한 작업 수행 ★
EXCEPTION: BEGIN ~ END 안의 구문 실행 시 예외가 발생하면 이를 처리
TRANSACTION: 수행된 데이터 작업들을 DB에 적용할지 말지 결정하는 처리부
END(필수): 프로시저의 종료를 의미, BEGIN/END는 함께 다님
→ CREATE [OR REPLACE] PROCEDURE 프로시저명(파라미터) [지역변수 선언]
BEGIN
프로시저 BODY;
END;
* OR REPLACE: 선택적인 예약어, 동일한 프로시저 이름이 이미 존재하는 경우 기존의 프로시저를 대체할 수 있음
▶ EXECUTE, EXEC, CALL 프로시저명; / DROP PROCEDURE 프로시저명;
3) 트리거(Trigger) __ 3-2, 20년 1, 2회 기출문제 #디이비컨SE
- 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관력 작업을 자동 수행 ★
- 데이터베이스에 저장되며, 데이터 변경 및 무결성 유지, 로그 메시지 출력 등의 목적으로 사용됨
- DCL(데이터 제어어)을 사용할 수 없으며, DCL이 포함된 프로시저나 함수를 호출하는 경우에도 오류 발생
- 트리거에 오류가 있는 경우 트리거가 처리하는 데이터에도 영향을 미치므로 트리거를 생성할 때 세심한 주의가 필요
DECLARE(필수): 트리거의 명칭, 변수 및 상수, 데이터 타입을 정의하는 선언부
EVENT(필수): 트리거가 실행되는 조건을 명시
BEGIN(필수): 트리거의 시작을 의미, 실행부
CONTROL: 조건문 또는 반복문이 삽입되어 순차적으로 처리됨
SQL: DML문이 삽입되어 데이터 관리를 위한 작업 수행 ★
EXCEPTION: BEGIN ~ END 안의 구문 실행 시 예외가 발생하면 이를 처리
END(필수): 트리거의 종료를 의미, BEGIN/END는 함께 다님
→ CREATE [OR REPLACE] TRIGGER 트리거명 [동작시기 옵션][동작 옵션] ON 테이블명
REFERENCING[NEW | OLD] AS 테이블명
FOR EACH ROW [WHEN 조건식]
BEGIN
트리거 BODY;
END;
* 동작시기 옵션: AFTER(테이블이 변경된 후 트리거 실행), BEFORE(변경되기 전 실행)
* NEW | OLD: NEW(추가되거나 수정에 참여할 테이블), OLD(수정되거나 삭제 전 테이블)
* FOR EACH ROW: 각 튜플마다 트리거 적용
▶ DROP TRIGGER 트리거명;
3) 사용자 정의 함수 __ 3-5 #디비컨SER
- 프로시저와 유사하게 SQL을 사용해 일련의 작업을 연속적으로 처리
- 종료 시 예약어 RETURN을 사용해 처리 결과를 단일값으로 반환
- DML문(SELECT, INSERT, DELETE, UPDATE)의 호출에 의해 실행됨
- RETURN을 통해 값을 반환해, 출력(OUT) 파라미터가 없음
- INSERT, DELETE, UPDATE로 테이블 조작은 할 수 없고, SELECT로 조회만 할 수 있음
- 프로시저를 호출해 사용할 수 없음 ★
구분 |
프로시저 |
사용자 정의 함수 |
반환값 |
없거나 1개 이상 가능 |
1개(단일값) |
파라미터 |
입, 출력 가능(IN, OUT) |
입력만 가능(IN) |
사용 가능 명령문 |
DML, DCL |
SELECT |
호출 |
프로시저, 사용자 정의 함수 |
사용자 정의 함수 |
사용 방법 |
실행문 |
DML에 포함해서 사용 |
DECLARE(필수): 사용자 정의 함수의 명칭, 변수, 인수, 데이터 타입을 정의하는 선언부
BEGIN(필수): 사용자 정의 함수의 시작을 의미, 실행부
CONTROL: 조건문 또는 반복문이 삽입되어 순차적으로 처리됨
SQL: SELECT문이 삽입되어 데이터 관리를 위한 작업 수행 ★
EXCEPTION: BEGIN ~ END 안의 구문 실행 시 예외가 발생하면 이를 처리
RETURN(필수): 호출 프로그램에 반활할 값이나 변수를 정의 ★
END(필수): 사용자 정의 함수의 종료를 의미, BEGIN/END는 함께 다님
→ CREATE [OR REPLACE] FUNCTION 사용자 정의 함수명(파라미터) [지역변수 선언]
BEGIN
사용자 정의 함수 BODY;
RETURN 반환값;
END;
'정보처리기사 필기 총정리 > 3과목: 데이터베이스 구축' 카테고리의 다른 글
ORM(Object-Relational Mapping) ★ (0) | 2020.10.03 |
---|---|
DMBS 접속 기술 ★ (0) | 2020.10.03 |
SQL 응용 ★★★ (0) | 2020.10.03 |
논리 데이터 모델의 물리 데이터 모델 변환 및 품질 검토 ★ (0) | 2020.10.03 |
데이터베이스 보안 / 스토리지 ★★ (0) | 2020.10.03 |
댓글